ComponentCollectio n (SubComponent) *

Introduced

3.0

Description

Returns the collection object matching the specific component type for the current SubComponent. For example:

- VertexCollection for Vertex components (on PolygonMeshes)

- ControlPointCollection for ControlPoint components (on NurbsCurveLists and NurbsSurfaceMeshes)

- EdgeCollection for Edge components (on PolygonMeshes)

- PolygonFaceCollection for PolygonFace components

- NurbsSurfaceCollection for subsurface (NurbsSurface) components (on NurbsSurfaceMeshes)

Note: If there is not an equivalent component collection, then an empty XSICollection is returned (for example, when a boundary or a knot is selected on a NurbsSurfaceMesh).

C# Syntax

    // get accessor
    Object rtn = SubComponent.ComponentCollection;

Examples

1. JScript Example

    /*
       This example demonstrates how to query the type of component
       that is currently selected. This can be useful if you are
       writing a tool that operates only on a specific subcomponent
       and you are checking to make sure the correct type of
       subcomponent has been selected by the user.
    */
    NewScene( null, false );
    var root = Application.ActiveSceneRoot;

    // For the purposes of this example we are creating
    // the cube and adding it to the selection
    var box = root.AddGeometry( "Cube", "MeshSurface" );
    Selection.Add( box.ActivePrimitive.Geometry.Segments(0) );

    // With one facet selected, the Selection.Item property
    // returns a CollectionItem from which you can retrieve
    // the SubComponent
    var first_selected = Selection.Item(0).SubComponent;
    Application.LogMessage( Application.ClassName(first_selected) );

    // The SubComponent object gives you access to the actual
    // interface for the component type via its ComponentCollection
    // property (in this case, an Edge object)
    var component_collection = first_selected.ComponentCollection;
    Application.LogMessage( Application.ClassName(component_collection.Item(0)) );

    // Expected results:
    //INFO : SubComponent
    //INFO : Edge

2. VBScript Example

    set oObj = ActiveSceneRoot.AddGeometry("Cube","MeshSurface")
    set oPoint = oObj.ActivePrimitive.Geometry.Points(4)
    set oSubComponent = oPoint.SubComponent
    oSubComponent.AddElement 3
    set oPoints = oSubComponent.ComponentCollection
    for each point in oPoints
       Application.LogMessage point.Index
    next

See Also

PointCollection | SegmentCollection | FacetCollection | NurbsCurveCollection

Autodesk Softimage v7.5