Versioning Compounds


Softimage uses a built-in versioning system to manage updates to exported compounds. The major and minor version numbers are stored in the .xsicompound file.

You should not rename .xsicompound files manually. Instead, use Softimage's built-in versioning. Otherwise, you may end up with multiple compounds that share the same name and version. If this happens, Softimage logs a warning message telling you the locations of the file that will be used and the files that will be ignored.

How Softimage Uses Version Numbers

Compounds are identified by name. If you add a compound to an ICE tree and there are multiple versions available, Softimage uses the highest major.minor version available in any of the user, workgroup, and factory locations. If that compound contains references to another exported compound, and there are multiple version of the second compound available, then Softimage uses the highest minor version of major version specified in the first compound. The reason is that if you fix a bug in the referenced compound and increase the minor version, then you probably want the fixed version used when you import the compound that contains it. On the other hand if you change the functionality and increase the major version, then you might not want the new version used until you update the compound that contains it to take the new functionality into account.

Modified Compounds

Modified compounds are identified by asterisks in the ICE tree.

A compound is considered to be modified if:

  • Internal nodes have been added or removed.

  • Internal connections have been added or removed.

  • Exposed ports have been created or removed.

  • Unexposed values have been changed.

A connection is not considered to be modified if only:

  • Exposed port values have been changed.

  • Multi-instance ports have been instantiated, in other words, you connected something to New (portname) and a port was added.

Re-exporting Updated Versions of Compounds

For complete control over a compound's version numbers, modify the version numbers in the compound's properties and re-export it. Alternatively, if you have made only bug fixes to a compound, you can quickly re-export it and any modified nested compounds that it contains using Increment Version and Export All Modified Compounds.

To re-export a modified compound

  1. Open the compound's properties as described in Setting Compound Properties.

  2. Increase the major or minor version number as appropriate.

  3. If desired, enter a Version Tag. This is a character string that you can use to describe the version as you wish. It is displayed in the Compound Version Manager and the Versions menu.

  4. Export the compound as described in Exporting Compounds.

To automatically increment the minor version and re-export all nested modified compounds

  • Right-click on a modified compound and choose Increment Version and Export All Modified Compounds.

    You are prompted to specify a file name and location for each modified compound.

Updating Compounds Already in a Scene

Compounds that already exist in a scene are not updated automatically even if new versions are available. You can update them individually, or by using the Compound Version Manager.

To update compounds individually

  1. Right-click on a compound in the ICE tree (not over a port).

  2. If multiple versions of the compound are available, the context menu contains a Version submenu. Select the desired version. The current version is displayed with a checkmark.

To update multiple compounds using the Compound Version Manager

  1. Open the Compound Version Manager by choosing Compounds Compound Version Manager from the ICE tree view.

    The compounds in the scene are displayed in a grid.

  2. As desired, either click Sort by Terminal Node to arrange the compounds according to the ICE trees they belong to, or click Sort by Classname to sort the compounds according to their type (name).

  3. When multiple versions are available, a triangle appears in the Version column. Click the triangle to open a menu that allows you to make changes to the grid data. The menu for an individual compound affects only that instance, the menu for an ICE tree affects all compounds of all types in that tree (Sort by Terminal Node), and the menu for a type of compound affects all compounds of that type (Sort by Classname). Different menu items are available depending on whether the row corresponds to an individual compound, an ICE tree, or a compound type:

    • No Change dismisses the menu without changing the grid data. Note that previous changes to the grid data are not reverted.

    • Revert to Current updates the grid data with the version currently used in the scene. Note that it does not revert changes that have already been applied.

    • Latest Minor sets the grid data to the highest available minor version of the major version specified by all compounds in that tree (available for ICE trees only).

    • Latest sets the grid data to the highest available version for all compounds in that tree (available for ICE trees only).

    • A specific version number sets the grid data to that version.

  4. Click Apply to apply the grid changes to the scene.

  5. Repeat steps 3 to 5 as desired.

  6. If you make changes to the scene while the Compound Version Manager is open, click Update to refresh the grid.