Accessing the List of Selected Objects

- The Selection object/class is a kind of a specialized collection. Each selected object is a member and can be accessed via enumerating or using the Item property:

    // C++ API
    Selection sel( Application().GetSelection() );
    for( LONG i=0; i<sel.GetCount(); i++ )
    {
       SIObject obj( sel[i] );
       Application().LogMessage( obj.GetName() );
    }
    SIObject objByIndex( sel.GetItem(0) ); // Access by index
    SIObject objByName( sel.GetItem(L"grid") ); // Access by name

    // C# (object model)
    CXSIApplication app = new CXSIApplication();
    foreach (CollectionItem itm in app.Selection)
    {
       app.LogMessage(itm.Name, siSeverity.siInfo);
    }
    SIObject objByIndex = (SIObject)app.Selection[0];           // Access by index
    SIObject objByName = (SIObject)app.Selection["cone"];       // Access by name

    // JScript
    var e = new Enumerator( Selection );
    for( ; !e.atEnd(); !e.moveNext() )
    {
       var obj = e.item();
       LogMessage( obj );
    }
    var objByIndex = Selection(0); // Access by index
    var objByName = Selection("grid"); // Access by name

    ' VBScript
    foreach obj in Selection
       LogMessage obj
    next
    set objByIndex = Selection(0); ' Access by index
    set objByName = Selection("grid"); ' Access by name

    # Python
    for obj in Application.Selection :
       Application.LogMessage( obj.Name )
    objByIndex = Application.Selection(0) # Access by index
    objByName = Application.Selection("grid") # Access by name

    # Perl
    for ( my $i=0; $i<$Application->Selection->Count; $i++ ) {
       $Application->LogMessage( $Application->Selection($i)->Name );
    }
    my $objByIndex = $Application->Selection(0); # Access by index
    my $objByName = $Application->Selection("grid"); # Access by name

Related Scripting Commands

• GetValue (used with "SelectionList")

• PickElement, PickObject

• SelectFilter, SelectEdgeFilter, SelectObjectFilter, SelectPolygonFilter, SelectSampledPointFilter, SelectVertexFilter

• SetEdgeSelectionFilter, SetPointSelectionFilter, SetPolygonSelectionFilter, SetSampleSelectionFilter

Autodesk Softimage v7.5