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


All articles and code at CodeStack are now open-source and hosted on GitHub. If you want to contribute by modifying existing articles and code snippets, submitting new ones, reporting errors and bugs etc. please follow this blog post for more information. We appreciate any contribution.

Product of Xarial Product of Xarial