GetSubComponentIds Method


Gets the sub component ElementIds of the current family instance.

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 21.0.0.0 (21.1.1.109)

Syntax

C#
public ICollection<ElementId> GetSubComponentIds()
Visual Basic
Public Function GetSubComponentIds As ICollection(Of ElementId)
Visual C++
public:
ICollection<ElementId^>^ GetSubComponentIds()

Return Value

The subcomponent ElementIDs

Examples

Copy C#
public void GetSubAndSuperComponents(FamilyInstance familyInstance)
{
    ICollection<ElementId> subElemSet = familyInstance.GetSubComponentIds();
    if (subElemSet != null)
    {
        string subElems = "";
        foreach (Autodesk.Revit.DB.ElementId ee in subElemSet)
        {
            FamilyInstance f = familyInstance.Document.GetElement(ee) as FamilyInstance;
            subElems = subElems + f.Name + "\n";
        }
        TaskDialog.Show("Revit","Subcomponent count = " + subElemSet.Count + "\n" + subElems);
    }
    FamilyInstance super = familyInstance.SuperComponent as FamilyInstance;
    if (super != null)
    {
        TaskDialog.Show("Revit","SUPER component: " + super.Name);
    }
}
Copy VB.NET
Public Sub GetSubAndSuperComponents(familyInstance As FamilyInstance)
    Dim subElemSet As ICollection(Of ElementId) = familyInstance.GetSubComponentIds()
    If subElemSet IsNot Nothing Then
        Dim subElems As String = ""
        For Each ee As Autodesk.Revit.DB.ElementId In subElemSet
            Dim f As FamilyInstance = TryCast(familyInstance.Document.GetElement(ee), FamilyInstance)
            subElems = subElems + f.Name & vbLf
        Next
        TaskDialog.Show("Revit", "Subcomponent count = " & subElemSet.Count & vbLf & subElems)
    End If
    Dim super As FamilyInstance = TryCast(familyInstance.SuperComponent, FamilyInstance)
    If super IsNot Nothing Then
        TaskDialog.Show("Revit", "SUPER component: " + super.Name)
    End If
End Sub

See Also