CreateObject (XSIFactory)

Introduced

4.0

Description

Creates an object from a type name.

Scripting Syntax

XSIFactory.CreateObject( NamespaceID )

C# Syntax

Object XSIFactory.CreateObject( String Name );

Parameters

Parameter

Type

Description

NamespaceID

String

Type Name. In the case of a Self-installed CustomProperty or CustomOperator this is the name as provided in PluginRegistrar.RegisterProperty and PluginRegistrar.RegisterOperator.

Return Value

A Softimage object, for example a CustomProperty or CustomOperator

Examples

1. JScript Example

/*
   This example shows how to create a temporary instance of the Self-Installed 
   Custom Property called "CustomColor". This object is not part of the scene 
   so you don't have to delete it after you are done using it.
*/

var oColor = XSIFactory.CreateObject( "CustomColor" )
bCancelled = InspectObj( oColor, null, "Pick your favorite color", siModal, false ) ;

if ( !bCancelled )
{
   Application.LogMessage( "You picked " + oColor.Color_R.Value + "," + oColor.Color_G.Value + "," + oColor.Color_B.Value ) ;
}

2. VBScript Example

' 
' This example shows a typical use of XSIFactory.CreateObject to create a temporary
' CustomProperty object used as the UI for an Import or Export operation.
'
' There are two routines.  DoScanUI is a user-friendly version that lets the user pick
' the options for the operation via a temporary custom pset.  It then calls DoScanLowLevel 
' which does the actual operation without any UI.
'

DoScanUI Application.InstallationPath( siUserPath ), false 

sub DoScanUI( in_defaultScanLocation, in_bRecursive )

   if NOT Application.Interactive then
       ' If you want your script to work in batch mode you could skip the modal dialog box and just 
       ' use the default values.  But it would be clearly code to call DoScanLowLevel directly.
       DoScanLowLevel in_defaultScanLocation, in_bRecursive
       exit sub
   end if

   ' This CustomProperty is not part of the scene 
   ' and will not be persisted

   set oTempPSet = XSIFactory.CreateObject( "CustomProperty" )
   oTempPSet.Name = "Scan Options"

   oTempPSet.AddParameter3 "ScanFolder", siString
   oTempPSet.AddParameter3 "Recursive", siBool, , , , false

   ' Establish the default values in the Custom PSet
   oTempPSet.ScanFolder.Value = in_defaultScanLocation
   oTempPSet.Recursive.Value = in_bRecursive

   ' Build a custom layout
   set oLayout = oTempPSet.PPGLayout
   oLayout.AddItem "ScanFolder", "Scan Folder", siControlFolder
   oLayout.AddItem "Recursive"

   ' Show the custom ui, Softimage is frozen until the user closes the dialog
   bCancel = InspectObj( oTempPSet,,,siModal,false )

   if bCancel then
       Logmessage "Operation cancelled"
   else
       'Read the values from the pset
       strScanLocation = oTempPSet.ScanFolder.Value
       bRecursive = oTempPSet.Recursive.Value

       DoScanLowLevel strScanLocation, bRecursive 
   end if

   ' No need to call DeleteObj
end sub

sub DoScanLowLevel( in_folder, in_bRecursive )

   ' Do the scanning operation not actually implemented in this example)

   strMsg = "Doing "

   if in_bRecursive then
       strMsg = strMsg & "recursive "
   end if

   Application.LogMessage strMsg & "scan of " & in_folder

end sub


Autodesk Softimage v7.5