Object Hierarchy | Related C++ Class: Selection
v1.0
The selection object represents the global selection for the
application. The user can change the global selection in the views,
explorer, MCA (selection sub-panel in the main control panel), and
through scripting (for example, see SelectObj, AddToSelection, RemoveFromSelection,
ToggleSelection,
DeselectAll, etc.).
Note: Selection provides access to its members through the Selection.Item property. Depending on
what is selected, the Selection.Item property returns either the
object or a CollectionItem. For
example, if you select the whole sphere, the Selection.Item
property returns the sphere as an X3DObject; however, if you select only a
subcomponent (like an edge), it returns the edge as a CollectionItem.
'This example demonstrates how a script can find the selected vertices
'in a selection of multiple objects.
'Set up a little scenario
coneName = CreatePrim( "Cone", "MeshSurface" )
sphereName = CreatePrim("Sphere", "MeshSurface" )
DeselectAll
AddToSelection coneName &".pnt[4,7,10]", , True
AddToSelection sphereName &".pnt[1,2,3]", , True
'Now iterate through the selection using the OM selection object
set oSelection = Application.Selection
for i = 0 to (oSelection.Count - 1)
if ( oSelection(i).Type = "pntSubComponent" ) then
logmessage "Found the following selected vertices on " & oSelection(i).Subcomponent.Parent3DObject.Name
'Selection of points
set subComponent = oSelection(i).SubComponent
selectedIndices = subComponent.ElementArray
for j = 0 to Ubound( selectedIndices, 1 )
logmessage selectedIndices(j)
next
else
logmessage "Nothing to do with " & oSelection(i).Name & "Type (" & oSelection(i).Type & ")"
end if
next
'Output of the above script is:
'"Found the following selected vertices on cone"
'"4"
'"7"
'"10"
'"Found the following selected vertices on sphere"
'"1"
'"2"
'"3"
|
' ' This example shows how to save the current selection into ' an XSICollection object. This can be very useful if you want ' to remember what objects were selected before running ' commands that might change the selection ' ' Note: Although this example sets up its own selection, you ' could remove the SETUP section and run this example with ' your own selection instead. ' ' SETUP NewScene , false set arc = CreatePrim( "Arc", "NurbsCurve" ) set disc = CreatePrim( "Disc", "MeshSurface" ) CreatePrim "Cylinder", "MeshSurface" set oSelection = Application.Selection oSelection.Clear oSelection.Add arc oSelection.Add disc ' MAIN Application.LogMessage "Current selection: " & oSelection.GetAsText() strSelection = oSelection.GetAsText() set oColl = CreateObject( "XSI.Collection" ) oColl.SetAsText strSelection Application.LogMessage "Contents of XSICollection: " & oColl.GetAsText ' RESULTS 'INFO : Current selection: arc,disc 'INFO : Contents of XSICollection: arc,disc |