## SICreateLayerFromSelection2

### Introduced

v8.0 (2010)

### Description

Creates a new layer and adds the selection to it but does not make the layer current.
This command is similar to the SICreateLayerFromSelection command except that it does not use output arguments so it is safe to use with languages that don't support passing arguments by reference, such as JScript and Python.

### Scripting Syntax

    oReturn = SICreateLayerFromSelection2( [PresetObj], [Name], [InputObjs], [LayerGroupName] );

### Return Value

Returns the Layer.

### 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: | Description:
Default_New_Layer | Default new layer
Name | String | Name of the new layer
InputObjs | String | List of objects to move to the layer Default Value: Selected objects
LayerGroupName | String | Name of the layer group that will contain the new layer Default Value: If not specified, the group containing the current layer will be used.

### Examples

#### 1. Python Example

    #
    # This example shows how to use the current selection
    # to create a new layer and set that layer to current
    #
    app = Application
    app.NewScene(None, False)
    app.CreatePrim("Cylinder", "MeshSurface")
    app.CreatePrim("Sphere", "MeshSurface")
    app.ToggleSelection("cylinder", None, True)
    # Now create the layer from the selection, put it into a new layer group and make it current
    oNewLayer = app.SICreateLayerFromSelection2(None, "LayerA", None, "GroupA")
    app.SetCurrentLayer(oNewLayer)

#### 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 into a new layer group (it is *not* automatically set as current)
    var oNewLayer = SICreateLayerFromSelection2( null, "LayerA", null, "GroupA" );
    checkCurrLayer();
    // Now explicitly set the new layer as current and check again
    SetCurrentLayer( oNewLayer );
    checkCurrLayer();
    function checkCurrLayer()
    {
            // What is the current layer?
            var oCurrLayer = GetCurrentLayer()(0);
            Application.LogMessage( "Current layer is....." + oCurrLayer.FullName );
            Application.LogMessage( "Current layer is in layer group....." + oCurrLayer.LayerGroupName.Value );
    }
    // Expected result:
    //INFO : Current layer is.....Layers.Layer_Default
    //INFO : Current layer is in layer group.....Group_Default
    //INFO : Current layer is.....Layers.Layer_Default
    //INFO : Current layer is in layer group.....Group_Default
    //INFO : Current layer is.....Layers.LayerA
    //INFO : Current layer is in layer group.....GroupA

#### 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 into a new layer group
    oNewLayer = app.SICreateLayerFromSelection2( "", "LayerNulls", "", "Group_Nulls" )
    app.SetCurrentLayer( oNewLayer )

### See Also

SICreateLayer SICreateLayer2 SICreateLayerFromSelection CreateLayer