## CustomProperty

Object Hierarchy | Related C++ Class: CustomProperty

### Inheritance

###

SIObject

ProjectItem

Property

CustomProperty

### Introduced

v1.5

### Description

Represents a custom property object. A custom property holds a set of parameters which can be created by the user or by scripting. A custom property can be used to store user defined data such as attributes for a game engine. Using the object model this data can be manipulated just like any other property within a Softimage scene.

### Methods

AddCustomOp | AddFCurveParameter | AddGridParameter | AddICEAttribute
AddParameter | AddParameter2 | AddParameter3 | AddParameterFromDef
AddProxyParameter | AddScriptedOp | AddScriptedOpFromFile | AnimatedParameters2
BelongsTo | EvaluateAt | GetICEAttributeFromName | IsA
IsAnimated2 | IsClassOf | IsEqualTo | IsKindOf
IsLocked | IsSelected | LockOwners | RemoveICEAttribute
RemoveParameter | SetAsSelected | SetCapabilityFlag | SetLock
TaggedParameters | UnSetLock |  |

### Properties

Application | BinaryData | Branch | BranchFlag
Capabilities | Categories | EvaluationID | Families
FullName | Help | HierarchicalEvaluationID | ICEAttributes
LockLevel | LockMasters | LockType | Model
Name | NestedObjects | ObjectID | Origin
OriginPath | Owners | PPGLayout | Parameters
Parent | Parent3DObject | Selected | Singleton
Type |  |  |

### Examples

#### 1. VBScript Example

    'VBScript example : find the custom properties on an object

    set oSphere = ActiveProject.ActiveScene.Root.AddGeometry("Sphere", "NurbsSurface")

    'Add two empty custom property sets

    oSphere.AddProperty "Custom_parameter_list",,"MyFirstCustomProperty"

    oSphere.AddProperty "Custom_parameter_list",,"MySecondCustomProperty"

    'List all the custom property sets on the object

    for each oLocalProp in oSphere.LocalProperties

    if ( oLocalProp.Type = "customparamset" ) then

    		logmessage oLocalProp.Name & ", " & oLocalProp.Type & ", " & typename(oLocalProp)

    end if

    next

    'Results of running this script:

    'INFO : "MyFirstCustomProperty, customparamset, CustomProperty"

    'INFO : "MySecondCustomProperty, customparamset, CustomProperty"

#### 2. VBScript Example

    'VBScript example : Demonstrate creating a cluster with custom property set based on the

    '                   selected points

    'Setup the scenario

    CreatePrim "Grid", "MeshSurface"

    DeselectAll

    ActivateVertexSelTool

    SelectGeometryComponents "grid.pnt[34,35,42-44]"

    'Now based on selection we create a cluster and property set on the cluster

    dim oObj, oNewCluster, oPSet

    dim item

    set oObj = application.selection

    set item = oObj.Item(0)

    if ( item.Type = "pntSubComponent" ) then

    	set oNewCluster = item.SubComponent.CreateCluster( "MyPointCluster" )

    	'Add custom property set to the new cluster

    	set oPSet = oNewCluster.AddProperty("Custom_parameter_list",,"MyClusterPSet")

    	oPSet.AddParameter "StrCustomParam", siString

    	oPSet.Parameters( "StrCustomParam" ).Value = "TestValue"

    	logmessage oPSet.Parameters( "StrCustomParam" ).FullName

    end if

    'Results of running this script

    'INFO : "grid.polymsh.cls.MyPointCluster.MyClusterPSet.StrCustomParam"

#### 3. JScript Example

    var app = Application;

    var root = app.ActiveSceneRoot;

    var nullobj;

    nullobj = root.AddNull( "" );

    var cpset;

    cpset = nullobj.AddCustomProperty("MyCustomPSet", false );

    var x, y, bitfield, label, flag, unused;

    x = cpset.AddParameter( "x", siDouble, siClassifUnknown, siAnimatable, "Double", "Double X", unused, 10.0, 0.0, 100.0, 10.0, 90.0 );

    y = cpset.AddParameter( "y", siInt4, siClassifUnknown, siAnimatable, "Integer", "Integer Y", unused, 10, 0, 100, 10, 90 );

    z = cpset.AddParameter( "x", siDouble, siClassifUnknown, siAnimatable, "Double", "Double Z" );

    label = cpset.AddParameter( "label", siString, siClassifUnknown, siAnimatable, "Text", "Text Field", unused, "Hello World" );

    flag = cpset.AddParameter( "flag", siBool, siClassifUnknown, siAnimatable, "Flag", "Boolean Field", unused, true );

    bitfield = cpset.AddParameter( "bitfield", siUByte, siClassifUnknown, siAnimatable, "UByte", "Bitfield", 32 );

### See Also

Property Parameter SceneItem.AddProperty RemoveCustomParam EditParameterDefinition AddProxyParam RemoveProxyParam Definition Callbacks for Custom Properties