AddItem (Addon)

Description

Adds an item to the add-on. You can use this method only while packaging add-ons. You can use this method to add any of the item types that appear in the File > Add-On > Package dialog (see siAddonItemType for details on the types of items you can add to a package).

Scripting Syntax

Addon.AddItem( in_eItemKind, in_bstrItemName )

C# Syntax

Addon.AddItem( siAddonItemType in_eItemKind, String in_bstrItemName );

Parameters

Parameter

Type

Description

in_eItemKind

siAddonItemType

The type of the item being added.

in_bstrItemName

String

The name of the item (for example, the name of a command) or the location (the full path including the file name) of the file that contains the item. See siAddonItemType to determine whether you can use the item name or the full path and file name.

Note. This parameter is case-sensitive.

Examples

VBScript Example

' **********************************
'
' This example shows how to add a custom command to an add-on package.
'

sPath = InstallationPath( siUserPath )
sCmdName = makeCusCmd()

' Create the add-on package object
set oAddOn = Application.CreateAddon

' Add the custom command to the add-on package
oAddOn.AddItem siScriptCmdAddonItemType, sCmdName

' Save the package in the Addons directory
sAddOnFileName = XSIUtils.BuildPath( sPath,  "Addons", "myAddOn.xsiaddon" )
oAddOn.Save sAddOnFileName

' Remove the custom command and install it from the add-on package
if cleanUpCmd( sCmdName ) then
   Application.InstallAddOn sAddOnFileName, siUserAddonPath 

   ' Run it to make sure it works
   set oInstalledCmd = Commands( sCmdName )
   if TypeName( oInstalledCmd ) <> "Nothing" then
       Application.LogMessage "Logged after installing from add-on:"
       oInstalledCmd.Execute

       ' After we know it works, we can uninstall it
       Application.UnInstallAddon sAddOnFileName 
   else
       Application.LogMessage "Can't find command."
   end if
end if

' **********************************


' Helper functions that take care of 
' creating and removing the command. 

function makeCusCmd()
   ' Start with a clean slate
   Application.RemoveCommand "Howdy"

   ' Build the filename & path
   sCmdFileName = XSIUtils.BuildPath( sPath, "Data", "Scripts", "HelloWorld.vbs" )

   ' Create a "hello world" script file
   set fso = CreateObject( "Scripting.FileSystemObject" )
   set fHWFile = fso.CreateTextFile( sCmdFileName )
   fHWFile.WriteLine "function SayHi()"
   fHWFile.WriteLine " "
   fHWFile.WriteLine vbTab & "Application.LogMessage " & Chr(34) & "Hello, World!" & Chr(34)
   fHWFile.WriteLine "end function"
   fHWFile.Close

   ' Add it to the command map in XSI
   set oCmd = Application.CreateCommand( "Howdy", siNoCategory )
   oCmd.Description = "Display the traditional greeting"
   oCmd.ScriptingName = "Howdy"
   oCmd.Handler = "SayHi"
   oCmd.FileName = sCmdFileName
   oCmd.Language = "VBScript"
   Application.AddCommand oCmd 

   ' Run it just to make sure it's working
   Application.LogMessage "Logged from within makeCusCmd():"
   oCmd.Execute

   ' Return the name of the new command
   makeCusCmd = "Howdy"
   Application.LogMessage "========================================"
end function


function cleanUpCmd( in_sCmd2Delete )
   Application.RemoveCommand in_sCmd2Delete

   if Err.Number <> 0 then
       cleanUpCmd = false
   else
       cleanUpCmd = true
   end if
end function


' ------------------------------------
' Output of above script:
'
'INFO : "Logged from within makeCusCmd():"
'INFO : "Hello, World!"
'Howdy
'INFO : "========================================"
'INFO : "Logged after installing from add-on:"
'INFO : "Hello, World!"
'Howdy

See Also

Addon.AddOtherItem



SOFTIMAGE|XSI v6.01     

Return to Softimage XSI Index