Traversing the components tree using SOLIDWORKS API

Edit ArticleEdit Article

This example demonstrates how to traverse components tree in the assembly using SOLIDWORKS API and output the result using the specified indentation symbol.

Components Tree
Components Tree

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2

Const INDENT_SYMBOL As String = "    "

Sub main()

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    If Not swModel Is Nothing Then

        Dim swRootComp As SldWorks.Component2

        Set swRootComp = swModel.ConfigurationManager.ActiveConfiguration.GetRootComponent
        TraverseComponent swRootComp, ""


        MsgBox "Please open assembly"

    End If
End Sub

Sub TraverseComponent(comp As SldWorks.Component2, indent As String)
    Dim vChildComps As Variant
    vChildComps = comp.GetChildren
    Dim i As Integer
    For i = 0 To UBound(vChildComps)
        Dim swChildComp As SldWorks.Component2
        Set swChildComp = vChildComps(i)
        Debug.Print indent & swChildComp.Name2 & " (" & swChildComp.GetPathName() & ")"
        TraverseComponent swChildComp, indent & INDENT_SYMBOL
End Sub

Product of Xarial Product of Xarial