Addon

Object Hierarchy

Inheritance

SIObject

Addon

Introduced

v3.5

Description

The Addon object lets you package, install, and uninstall add-ons through scripting. An add-on is a collection of plug-in items such as toolbars, custom commands, and layouts that can be easily packaged and deployed to other computers.

Note: The Addon object gives you precise control over the contents of an .xsiaddon file, but requires that you add each file individually. The PackageAddon command provides a easier way to build .xsiaddon files.

Methods

AddItem AddOtherItem IsClassOf operator IsEqualTo operator
Save SetAddonDetail    
       

Properties

Application Categories DefaultInstallationPath FullName operator
Help Name operator NestedObjects Origin
OriginPath Parent SubDirectory Type operator

Examples

JScript Example

/*	--------------------------------------------------------------

		This example creates and registers a custom

		command and then shows how you can package it 

		as an add-on through scripting.

	----------------------------------------------------------------- */

/*

	PART ONE: SET UP THE COMMAND

*/

// Start off with a clean slate

NewScene( null, false );

Application.RemoveCommand( "Howdy" );

// Get the factory (installation) path and use it to build the filename and path

var sPath = InstallationPath( siUserPath );

var sCmdFileName = XSIUtils.BuildPath( sPath, "Data", "Scripts", "HelloWorld.js" );

// Create a "hello world" script file

var fso = new ActiveXObject( "Scripting.FileSystemObject" );

var fHWFile = fso.CreateTextFile( sCmdFileName  );

fHWFile.WriteLine( "function SayHi()" );

fHWFile.WriteLine( "{" );

fHWFile.WriteLine( "\tApplication.LogMessage( \"Hello, World!\" );" );

fHWFile.WriteLine( "}" );

fHWFile.Close();

// Add it to the command map in Softimage

var oCmd = Application.CreateCommand( "Howdy", siExportCategory );

oCmd.Description = "Display the traditional greeting";

oCmd.ScriptingName = "Howdy";

oCmd.Handler = "SayHi";

oCmd.FileName = sCmdFileName;

oCmd.Language = "JScript";

Application.AddCommand( oCmd );

// Run it make sure it works

oCmd.Execute();

/*

	PART TWO: PACKAGE IT AS AN ADD-ON

*/

// Set up the add-on package object

var oAddOn = Application.CreateAddon();

// Add the new command to the add-on package

oAddOn.AddItem( siScriptCmdAddonItemType, oCmd );

// Set the default installation path and subdirectory for installation

oAddOn.DefaultInstallationPath = siUserAddonPath;

oAddOn.SubDirectory = "HiyaProject";

// Save the .xsiaddon file to disk

var sAddOnFileName = XSIUtils.BuildPath( sPath, "myAddOn.xsiaddon" );

oAddOn.Save( sAddOnFileName );

// Remove the custom command we created and then install the add-on

Application.RemoveCommand("Howdy");

fso.DeleteFile( sCmdFileName, true );

oCmd = null;

oAddOn = null;

Application.InstallAddon( sAddOnFileName, siUserAddonPath );

// Run the command to make sure it still works after we removed it and

// then reinstalled it from our new add-on package

Commands( "Howdy" ).Execute();

// Clean up and remove the add-on package

sInstalledAddOnFileName = XSIUtils.BuildPath( InstallationPath( siUserAddonPath ), "InstalledAddons", "myAddOn.xsiaddon" );

Application.UninstallAddon( sInstalledAddOnFileName );

// --------------------------------------------------------------

// Output of the above script is:

//

//INFO : "Hello, World!"

//Howdy(null);

//INFO : "Hello, World!"

//Howdy(null);

See Also

XSIApplication.CreateAddon XSIApplication.InstallAddon XSIApplication.UnInstallAddon PackageAddon CreateAddonDirectories