Introduced
5.0
Description
Creates a new layer and add the selection to it but does not make the layer current.
Note: This command uses output arguments. C# and some scripting languages (such as JScript, PerlScript and Python) don't support arguments passed by reference so you need to use the best workaround for your situation:
For scripting languages this command returns an ISIVTCollection which you can use to get the output arguments.
For C# you can use the XSIApplication.ExecuteCommand method to call this command. ExecuteCommand packs the output arguments into a C# System.Object containing an Array of the output arguments (see Calling Commands from C#).
Scripting Syntax
SICreateLayerFromSelection( [PresetObj], [Name], [InputObjs], [Value] )
Parameters
|
Parameter |
Type |
Description |
|
PresetObj |
String or a preset object (for example, an object obtained from SIGetPreset) |
Layer preset to use Default Value: "Default_New_Layer" Possible Values: • Default_New_Layer: Default new layer |
|
Name |
Name of the new layer |
|
|
InputObjs |
List of objects to move to the layer Default Value: Selected objects |
|
|
Value [out] |
Returns the new layer |
Examples
1. VBScript Example
' ' This example shows how to use the current selection ' to create a new layer and set that layer to current ' NewScene , false CreatePrim "Cylinder", "MeshSurface" CreatePrim "Sphere", "MeshSurface" ToggleSelection "cylinder", , True ' Now create the layer from the selection and make ir current SICreateLayerFromSelection , "LayerA", , oLayer SetCurrentLayer oLayer
2. JScript Example
/* This example demonstrates how to create a new layer and set it to be the current layer */ // Setup NewScene( null, false ); CreatePrim("Cylinder", "MeshSurface", null, null); CreatePrim("Sphere", "MeshSurface", null, null); ToggleSelection("cylinder", null, true); // Get initial settings checkCurrLayer(); // Make a new layer (it is *not* automatically set as current) var oLayer = SICreateLayerFromSelection( null, "LayerA" )(0); checkCurrLayer(); // Now explicitly set the new layer as current and check again SetCurrentLayer( oLayer ); checkCurrLayer(); function checkCurrLayer() { // What is the current layer? var oCurrLayer = GetCurrentLayer()(0); Application.LogMessage( "Current layer is....." + oCurrLayer ); } // Expected result: //INFO : Current layer is.....Layers.Layer_Default //INFO : Current layer is.....Layers.Layer_Default //INFO : Current layer is.....Layers.LayerA
3. Python Example
# # This example demonstrates how to # create a layer from a group # app = Application app.NewScene( "", 0 ) # Create two nulls app.GetPrim( "Null" ) app.GetPrim( "Null" ) # Add them to a new group oGroup = app.CreateGroup( "NullsGroup", "null*" ) # Move the group to a new layer ivtInfo = app.SICreateLayerFromSelection( "", "LayerNulls" ) oLayer = ivtInfo.Value( "Value" ) app.SetCurrentLayer( oLayer )
See Also
Autodesk Softimage v7.5