## SIAddCustomParameter

### Introduced

v1.0

### Description

Adds a custom parameter to a custom parameter set.

### Scripting Syntax

    SIAddCustomParameter( [InputObj], [ScriptName], [VarType], DefaultValue, [MinValue], [MaxValue], [Classification], [Capabilities], [SuggMin], [SuggMax], [ParamName], [Description] );

### Parameters

Parameter | Type | Description
--- | --- | ---
InputObj | String | List of custom parameter sets Default Value: Current selection
ScriptName | String | Script name of the custom parameter to be added. This is normally a short name, like "rotx". A script name cannot have spaces in it. Default Value: "ParamName"
VarType | siVariantType | Type of the parameter Default Value: siDouble
DefaultValue | Variant | Default parameter value
MinValue | Double | minimum value of the parameter Default Value: 0.0
MaxValue | Double | maximum value of the parameter Default Value: 1.0
Classification | siParamClassification | Determines the classification of the parameter (gives Softimage some hint about the purpose of the Parameter--see the siParamClassification enum for more details) Default Value: siClassifUnknown
Capabilities | siCapabilities | Determines the capabilities of the parameter (see the siCapabilities enum for more details) Default Value: 5 (siAnimatable + siPersistable)
SuggMin | Double | Suggested minimum value of the parameter (for UI controls) Default Value: MinValue
SuggMax | Double | Suggested maximum value of the parameter (for UI controls) Default Value: MaxValue
ParamName | String | A name for the parameter that can be more descriptive than the script name. For example "Rotation X" instead of "rotx".
Description | String | Description of the parameter

### Examples

#### 1. VBScript Example

    'Example showing you a custom pset can be used, in conjunction with the
    'InspectObj command to collect information from a user
    dim oCustomProperty
    dim nbJoints, useCns
    'Create a temporary custom property (it is not part of the scene)
    Set oPreset = CreatePreset( "CustomProperty", "Properties" )
    Set oCustomProperty = CreateObjectFromPreset(oPreset, "Chain_From_Curve" )
    'Add parameters to the custom property
    SIAddCustomParameter oCustomProperty , _
            "nbJoints", siInt2, 10, 1, 1000, 8, 16, 1, 100, "Bones", "Number of Bones"
    SIAddCustomParameter oCustomProperty , _
            "useCns", siBool, FALSE, , , 8, 16, , , "Constrain", "Constrain Chain to Curve"
    ' Launch the ppg in modal mode, wait for Ok or Cancel to be pressed
    On Error Resume Next
    InspectObj  oCustomProperty ,,,4
    ' If the user Clicked Ok, get the values entered in the ppg
    if Err.Number = 0 then
            'Get the dialog values
            nbJoints = GetValue( oCustomProperty & ".nbJoints" )
            useCns = GetValue( oCustomProperty & ".useCns" )
            'At this point you could launch a custom command
            'using nbJoints and useCns as
    else
            ' Put your cancel code here
    end if

#### 2. VBScript Example

    'Example demonstrating how the arguments to SIAddCustomParameter
    'are exposed in the Object Model
    dim oCustomProperties, oCustomProperty, oParam
    SIAddProp "Custom_parameter_list", ActiveSceneRoot , , "DemoProp", oCustomProperties
    'We only created a single custom property because we only
    'passed a single object (ActiveSceneRoot) to SIAddProp
    set oCustomProperty = oCustomProperties.Item(0)
    SIAddCustomParameter oCustomProperty , _
            "nbJoints", siInt4, 10, 1, 1000, 8, 16, 1, 100, "Bones"
    set oParam = oCustomProperty.Parameters( "nbJoints" )
    logmessage "Parameter Name: " & oParam.Name
    logmessage "Parameter Script Name: " & oParam.ScriptName
    logmessage "Parameter ValueType: " & oParam.ValueType
    logmessage "Parameter Default: " & oParam.Default
    logmessage "Parameter Min/Max: " & oParam.Min & "/" & oParam.Max
    logmessage "Parameter UI Min/Max: " & oParam.SuggestedMin & "/" & oParam.SuggestedMax
    'Output of running this script:
    'INFO : "Parameter Name: Bones"
    'INFO : "Parameter Script Name: nbJoints"
    'INFO : "Parameter ValueType: 3"
    'INFO : "Parameter Default: 10"
    'INFO : "Parameter Min/Max: 1/1000"
    'INFO : "Parameter UI Min/Max: 1/100"

### See Also

SIAddCustomParam CustomProperty.AddParameter Parameter