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 |
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