Softimage SDK Programmer's Guide > Customizing Softimage using the SDK > Building and Deploying Customizations > Add-on Packages >

# What's in an Add-on Package?

The Autodesk Softimage SDK allows you package and distribute your customizations by letting you create your own add-on package, or install and uninstall existing add-on packages. Add-on packages can contain:

- Layouts—any custom layout defined in a *.xsily file in the Application/layouts folder under your factory, user, workgroup, factory add-on, user add-on or workgroup add-on location(s).

- Old Toolbars—any custom toolbar created with a version of Softimage prior to v4.0. These toolbars are defined in binary files which generally appear in the Data/Preferences/Toolbars folder under your factory add-on, user add-on or workgroup add-on location(s).

- Shelves/Toolbars—any custom toolbar or shelf defined in a *.xsitb file in the Application/toolbars folder under your factory, user, workgroup, factory add-on, user add-on or workgroup add-on location(s).

- Custom Commands—any custom command implemented as a v1.0 plug-in (where the command is explicitly installed in Softimage instead of implemented as part of a self-installing plug-in module).

- Libraries—any library files which contain the implementation of self-installing plug-in modules or v1.0 plug-in items.

- Scripts—any script files which contain the implementation of self-installing plug-in modules or v1.0 plug-in items.

- Events—any implementation files used for custom events.

- Plug-ins—custom elements implemented as a self-installing plug-in module (see What is a Self-Installing Plug-in?).

- Other—any file not falling under one of the above categories, such as a device description file (*.xsidevice), a help file (*.html, *.hlp, *.chm, etc.) or an image file (*.bmp, *.jpg, etc.)

Note

The difference between an add-on and a plug-in is that an add-on is a set of plug-ins packaged together for easy installation, and a plug-in is a single item that extends the functionality of Softimage, such as a shader, a script, or a compiled operator.

## Versioning

Add-ons currently have no built-in versioning.

Each time the contents of an Add-on directory are updated, you need to repackage a new version of the add-on. To help keep track of multiple versions of .xsiaddon files, it is recommended that the version number or date be included in the file name (for example, MyTool.v12..xsiaddon or MyTool.12May2005.xsiaddon).

Typically, it is not possible to install multiple copies of an .xsiaddon at the same time, so each user should uninstall the older version of the .xsiaddon before installing a newer version.

Note

Each time you repackage an add-on, you need to carefully consider any backwards-compatibility issues. For example, scenes saved with an older version of a shader cannot be loaded if there are substantial changes to shader parameter definitions.

## Directory Structure

The user path is where you would typically save your customization, install your plug-ins and add-ons, etc. Here is a typical tree-view of its contents:

A | The Addons directory is where your installed add-ons can be found
B | The bin directory is where the implementation files for your compiled shaders reside
C | You can drop your self-installing custom plug-ins into the Plugins directory: Softimage will find them and load them when it launches
D | The other folders contain Softimage customizations: custom key mapping, custom layouts, custom toolbars and relational views
E | The DSPresets folder contains...presets!
F | Custom User Preferences are stored here.
G | The Scripts directory is where you can put your script files.

In addition to the customization folders that appear in this tree, there may also be a number of other folders that appear under the Application folder to represent custom plug-ins, such as properties, filters, menus, etc.

### Addons

The folder structures under the Application and Data folders may be mirrored under the Addons folder for installed add-ons or self-installed plug-ins. This happens when an add-on with a subdirectory specified is installed.

### Application

The Application folder contains extensions and customization for Softimage:

Subfolder name | Description of contents
--- | ---
bin | Implementation files for your compiled shader. Inside this folder, Linux libraries appear under linux/x86 or linux/x64 and Windows libraries appear under nt-x86-32 or nt-x86-64.
Plugins | Drop-location for self-installing plug-ins. Scripted plug-ins can be put directly in this folder and compiled plug-ins appear in the platform-specific folders under a bin subfolder. Inside this folder you may also include the doc subfolder to house your help files for your plug-ins. If you store your help file in this location it is not necessary to explicitly specify the location to the PluginRegistrar. Note You can create subfolders in this location that can contain files that implement helper functions for the main plug-in files. To speed up loading time, you can turn off the Scan sub-folders preference to tell Softimage not to scan these folders for self-installing plug-ins libraries; however, the platform-specific folders are not affected by this preference.
Properties | Plug-in based Custom Property implementation files as well as a doc folder for your help file.
Filters | Plug-in based Filter implementation files as well as a doc folder for your help file.
Menus | Plug-in based Menu implementation files as well as a doc folder for your help file.
CommandMaps | Custom keyboard mapping files (*.DSDynamicCommandMap). When you change the key assignments in Softimage, you can save your modifications to a custom file which appears in this directory.
layouts | Custom layout files (*.xsily). When you create your own layouts, Softimage creates an XML file containing the information and stores it here.
toolbars | Custom toolbar and shelf files (*.xsitb). When you create your own toolbars and shelves, Softimage creates an XML file containing the information and stores it here.
views | Custom view files (*.xsivw). When you create your own views, Softimage creates an XML file containing the information and stores it here.

### Data

The Data folder contains presets, preference sets and scripts for Softimage:

Subfolder name | Description of contents
--- | ---
DSPresets | Preset files for Softimage organized by type: 2DCurves, Constraints, Devices, FCurves, etc. Preset files are binary and use the .Preset extension.
Preferences | User Preferences for Softimage (*.xsipref) stored in a text format. There are also a number of subfolders containing binary keyboard mappings, layouts and toolbars.
Scripts | Container for script files. This is the default location for opening and saving scripts in the Script Editor.

Tip

This directory structure is consistent throughout the Softimage directory locations:

- user, factory, workgroup

- user add-on, factory add-on, workgroup add-on

Note

The project directory has a different structure.