v5.0
Returns the list of Parameter objects that match the input criteria (marked parameter list and/or capabilities).
CXSICollection XSICollection.FindObjectsByMarkingAndCapabilities( Object in_marking, Int32 in_Caps ); |
oReturn = XSICollection.FindObjectsByMarkingAndCapabilities( [Marking], [Caps] ); |
Parameter | Type | Description |
---|---|---|
Marking | XSICollection, Array or marked parameters | The list of marked parameters to find.
Default Value: matches all |
Caps | siCapabilities | The parameter capabilities siCapabilities to match
Default Value: 0 (don't consider capabilities) |
/* This example demonstrates how to use the FindObjectsByMarkingAndCapabilities method using several different matching criteria. */ NewScene( null, false ); GetPrim( "Null" ); // Collection object var collection = XSIFactory.CreateActiveXObject( "XSI.Collection" ); // If you want to filter selection collection.AddItems( Selection ); checkContents( "Selection", collection ); // Find all the keyable parameters (using no marking string) // You can just omit the optional marking parameter var subset = collection.FindObjectsByMarkingAndCapabilities( null, siKeyable ); checkContents( "Keyable (no marking)", subset ); // Find all the keyable parameters (using no marking string) // Or you can use an empty marking string subset = collection.FindObjectsByMarkingAndCapabilities( "", siKeyable ); checkContents( "Keyable (empty marking)", subset ); // Find all the 'keypanel' (siKeyable Or siNonKeyableVisible) parameters (using no marking string) subset = collection.FindObjectsByMarkingAndCapabilities( null, (siKeyable || siNonKeyableVisible) ); checkContents( "Keypanel", subset ); // Find all the keyable kinematics local posx parameters subset = collection.FindObjectsByMarkingAndCapabilities( "kine.posx", siKeyable ); checkContents( "Keyable Local PosX (kine.posx)", subset ); subset = collection.FindObjectsByMarkingAndCapabilities( "kine.local.pos.posx", siKeyable ); checkContents( "Keyable Local PosX (kine.local.pos.posx)", subset ); // Find all the marked keyable parameters // Here we explicitly set the marking SetMarking( "kine.local.pos" ); var markings = GetMarking().toArray(); // GetMarking returns a SAFEARRAY subset = collection.FindObjectsByMarkingAndCapabilities( markings.join(), siKeyable ); checkContents( "Marked Keyable", subset ); // Find all the kinematics local posx parameters (using no capabilities) subset = collection.FindObjectsByMarkingAndCapabilities( "kine.posx" ); checkContents( "Local PosX (no caps)", subset ); // Find all the animatable parameters (using no marking string) subset = collection.FindObjectsByMarkingAndCapabilities( null, siAnimatable ); checkContents( "Animatable (no marking)", subset ); // Find all the readonly parameters (using no marking string) subset = collection.FindObjectsByMarkingAndCapabilities( null, siReadOnly ); checkContents( "Read-Only (no marking)", subset ); // Convenience function to log information about the collection function checkContents( in_name, in_coll ) { if ( in_coll.Count > 0 ) { LogMessage( in_name + " (" + in_coll.Count + ") = " + in_coll.GetAsText() ); } else { LogMessage( in_name + " is empty" ); } LogMessage( "--------------------------------------" ); } //-------------------------------------------------- // Output of above script: //INFO : Selection (1) = null //INFO : -------------------------------------- //INFO : Keyable (no marking) (9) = null.kine.local.posx,null.kine.local.posy,null.kine.local.posz,null.kine.local.rotx,null.kine.local.roty,null.kine.local.rotz,null.kine.local.sclx,null.kine.local.scly,null.kine.local.sclz //INFO : -------------------------------------- //INFO : Keyable (empty marking) (9) = null.kine.local.posx,null.kine.local.posy,null.kine.local.posz,null.kine.local.rotx,null.kine.local.roty,null.kine.local.rotz,null.kine.local.sclx,null.kine.local.scly,null.kine.local.sclz //INFO : -------------------------------------- //INFO : Keypanel (9) = null.kine.local.posx,null.kine.local.posy,null.kine.local.posz,null.kine.local.rotx,null.kine.local.roty,null.kine.local.rotz,null.kine.local.sclx,null.kine.local.scly,null.kine.local.sclz //INFO : -------------------------------------- //INFO : Keyable Local PosX (kine.posx) (1) = null.kine.local.posx //INFO : -------------------------------------- //INFO : Keyable Local PosX (kine.local.pos.posx) (1) = null.kine.local.posx //INFO : -------------------------------------- //INFO : Marked Keyable (3) = null.kine.local.posx,null.kine.local.posy,null.kine.local.posz //INFO : -------------------------------------- //INFO : Local PosX (no caps) (1) = null.kine.local.posx //INFO : -------------------------------------- //INFO : Animatable (no marking) (97) = null.null.size,null.null.primary_icon,null.null.shadow_icon,null.null.shadow_offsetX,null.null.shadow_offsetY,null.null.shadow_offsetZ,null.null.shadow_scaleX,null.null.shadow_scaleY,null.null.shadow_scaleZ,null.null.R,null.null.G,null.null.B,null.kine.global.posx,null.kine.global.posy,null.kine.global.posz,null.kine.global.rotx,null.kine.global.roty,null.kine.global.rotz,null.kine.global.sclx,null.kine.global.scly,null.kine.global.sclz,null.kine.global.sclorix,null.kine.global.scloriy,null.kine.global.scloriz,null.kine.local.blendweight,null.kine.local.active,null.kine.local.posx,null.kine.local.posy,null.kine.local.posz,null.kine.local.rotx,null.kine.local.roty,null.kine.local.rotz,null.kine.local.sclx,null.kine.local.scly,null.kine.local.sclz,null.kine.local.sclorix,null.kine.local.scloriy,null.kine.local.scloriz,null.kine.local.cnsscl,null.kine.local.cnsori,null.kine.local.cnspos,null.kine.local.rotorder,null.kine.local.pivotactive,null.kine.local.pposx,null.kine.local.pposy,null.kine.local.pposz,null.kine.local.protx,null.kine.local.proty,null.kine.local.protz,null.kine.local.psclx,null.kine.local.pscly,null.kine.local.psclz,null.kine.local.pivotcompactive,null.kine.local.pcposx,null.kine.local.pcposy,null.kine.local.pcposz,null.kine.local.pcrotx,null.kine.local.pcroty,null.kine.local.pcrotz,null.kine.local.pcsclx,null.kine.local.pcscly,null.kine.local.pcsclz,null.kine.local.nposx,null.kine.local.nposy,null.kine.local.nposz,null.kine.local.nrotx,null.kine.local.nroty,null.kine.local.nrotz,null.kine.local.nsclx,null.kine.local.nscly,null.kine.local.nsclz,null.kine.local.nsclorix,null.kine.local.nscloriy,null.kine.local.nscloriz,null.visibility.viewvis,null.visibility.rendvis,null.visibility.selectability,null.visibility.hidemaster,null.visibility.primray,null.visibility.scndray,null.visibility.shdwrecv,null.visibility.shdwcast,null.visibility.reflrecv,null.visibility.reflcast,null.visibility.refrrecv,null.visibility.refrcast,null.visibility.trnsrecv,null.visibility.trnscast,null.visibility.fgrecv,null.visibility.fgcast,null.visibility.fgvis,null.visibility.globrecv,null.visibility.globcast,null.visibility.globvis,null.visibility.causrecv,null.visibility.causcast,null.visibility.causvis //INFO : -------------------------------------- //INFO : Read-Only (no marking) (7) = null.kine.global.velaccactive,null.kine.global.linaccx,null.kine.global.linaccy,null.kine.global.linaccz,null.kine.global.angaccx,null.kine.global.angaccy,null.kine.global.angaccz //INFO : -------------------------------------- |