## SICreatePass

### Description

Creates a new Pass. A render pass creates a picture layer of a scene that can be composited with any other passes to create a complete image.
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

    SICreatePass( [PresetObj], [Name], [Value] );

### Parameters

Parameter | Type | Description
--- | --- | ---
PresetObj | String or a preset object (see SIGetPreset) | Any of the Pass Presets Default Value: "Pass" (default pass)
Name | String | Name of the new pass. Default Value: Default pass name (ie., "Ambient_Pass")
Value | Pass | Returns the new pass.

### Examples

#### VBScript Example

    '
    '       This example demonstrates how to create different types of passes
    '       based on pass presets. It also shows how to get a list of all
    '       passes in the scene as an XSICollection.
    '
    ' Create a new scene
    NewScene , false
    ' Print out the current list of passes
    getPassInfo
    Application.LogMessage "-------------------"
    ' Create a diffuse pass
    SICreatePass InstallationPath( siFactoryPath ) _
            & "\Data\DSPresets\Groups\Diffuse_Pass.Preset", "Different_Pass"
    ' Create a depth pass
    SICreatePass InstallationPath( siFactoryPath ) _
            & "\Data\DSPresets\Groups\Depth_Pass.Preset", "Deep_Pass"
    ' Print out the new list of passes
    getPassInfo
    function getPassInfo()
            ' We can use a string expression with a wildcard to specify all passes
            ' and then convert it to an XSICollection for easier navigation
            Set oPasses = CreateObject( "XSI.Collection" )
            oPasses.SetAsText "Passes.*"
            ' Loop through the passes and print their names
            For Each p In oPasses
                    Application.LogMessage p.Name
            Next
    end function
    ' Output of the above script (the current pass is repeated):
    'INFO : "List"
    'INFO : "Default_Pass"
    'INFO : "Default_Pass"
    'INFO : "-------------------"
    'INFO : "List"
    'INFO : "Default_Pass"
    'INFO : "Different_Pass"
    'INFO : "Deep_Pass"
    'INFO : "Deep_Pass"

### See Also

RenderPasses RenderAllPasses CreatePartition CreateLayer CreatePass GetCurrentPass SetCurrentPass DeleteCurrentPass