Compound parameters represent bundles of parameters in Softimage. These bundles are like an intermediate node between parameters and their property owners. The most common compound parameter is the local or global kinematics or local or global kinematics.
For the SDK, compound parameters usually implement their own class ID which derive from an internal class called CompoundParameter. Since this class implements no methods or properties and serves only as an intermediate class for more specific classes, the only time you will encounter the class is if you SIObject.IsClassOf or CBase::IsA against the siCompoundParameterID) class ID. Compound parameters also identify themselves as being of type CompoundParameter when you SIObject.Type or SIObject::GetType.
VBScript Example: Testing for Property, Simple and Compound Parameters
NewScene , false set oTorus = Application.ActiveSceneRoot.AddGeometry( "Torus", "MeshSurface" ) ' Test a property and its simple parameter LogInfo oTorus.Properties( "Visibility" ) LogInfo oTorus.Properties( "Visibility" ).Parameters( "viewvis" ) ' Test property, its compound and simple parameters LogInfo oTorus.Kinematics LogInfo oTorus.Kinematics.Local LogInfo oTorus.Kinematics.Local.Parameters( "PosX" ) ' Ouput: ' INFO : ---------------------- ' INFO : Name: torus.visibility ' INFO : Type: visibility ' INFO : Class: Property ' INFO : IsClassOf(siParameterID): False ' INFO : IsClassOf(siCompoundParameterID): False ' INFO : IsClassOf(siPropertyID): True ' INFO : ---------------------- ' INFO : Name: torus.visibility.viewvis ' INFO : Type: Parameter ' INFO : Class: Parameter ' INFO : IsClassOf(siParameterID): True ' INFO : IsClassOf(siCompoundParameterID): False ' INFO : IsClassOf(siPropertyID): False ' INFO : ---------------------- ' INFO : Name: torus.kine ' INFO : Type: kine ' INFO : Class: Kinematics ' INFO : IsClassOf(siParameterID): False ' INFO : IsClassOf(siCompoundParameterID): False ' INFO : IsClassOf(siPropertyID): True ' INFO : ---------------------- ' INFO : Name: torus.kine.local ' INFO : Type: CompoundParameter ' INFO : Class: KinematicState ' INFO : IsClassOf(siParameterID): True ' INFO : IsClassOf(siCompoundParameterID): True ' INFO : IsClassOf(siPropertyID): False ' INFO : ---------------------- ' INFO : Name: torus.kine.local.posx ' INFO : Type: Parameter ' INFO : Class: Parameter ' INFO : IsClassOf(siParameterID): True ' INFO : IsClassOf(siCompoundParameterID): False ' INFO : IsClassOf(siPropertyID): False ' Convenience method to print info easily sub LogInfo( in_obj ) Application.LogMessage "----------------------" Application.LogMessage "Name: " & in_obj.FullName Application.LogMessage "Type: " & in_obj.Type Application.LogMessage "Class: " & TypeName(in_obj) Application.LogMessage "IsClassOf(siParameterID): " & in_obj.IsClassOf(siParameterID) Application.LogMessage "IsClassOf(siCompoundParameterID): " & in_obj.IsClassOf(siCompoundParameterID) Application.LogMessage "IsClassOf(siPropertyID): " & in_obj.IsClassOf(siPropertyID) end sub