Hide Table of Contents

Get Paths and Titles of Parents of Virtual Component (VBA)

This example shows how to get the paths and titles of the parent assembly components of a virtual component.

'-----------------------------------------------------------
' Preconditions:
' 1. Open:
'    public_documents\samples\tutorial\api\assem2.sldasm
' 2. Open the Immediate window.
'
' Postconditions: The paths and titles of the parent
' assembly components, up to and including the first non-virtual 
' parent assembly component, are printed in the Immediate Window.
'------------------------------------------------------------
Option Explicit
Sub main()
    Dim swApp As SldWorks.SldWorks
    Set swApp = Application.SldWorks
    
    Dim doc As ModelDoc2
    Set doc = swApp.ActiveDoc
    If doc Is Nothing Then Exit Sub
    If doc.GetType <> swDocASSEMBLY Then Exit Sub
    
    Dim asm As AssemblyDoc
    Set asm = doc
    
    Dim components As Variant
    components = asm.GetComponents(False)   ' Get all components
    
    If IsArray(components) Then
        Debug.Print "Virtual components in this assembly:"
    
        Dim vComp As Variant
        For Each vComp In components
            Dim comp As Component2
            Set comp = vComp
            
            Dim compDoc As ModelDoc2
            Set compDoc = comp.GetModelDoc2
            If Not compDoc Is Nothing Then
                Dim bResult3 As Boolean
                Dim pathChain As Variant
                Dim titleChain As Variant
                bResult3 = compDoc.Extension.IsVirtualComponent3(pathChain, titleChain)
                    
                If bResult3 <> False Then
                    Debug.Print "  Virtual component name: " & comp.Name2
                    
                    Debug.Print "    " & "Paths:"
                    Dim vPath As Variant
                    For Each vPath In pathChain
                        Debug.Print "      " & vPath
                    Next
                    
                    Debug.Print "    " & "Titles:"
                    Dim vTitle As Variant
                    For Each vTitle In titleChain
                        Debug.Print "      " & vTitle
                    Next
                End If
            Else
                Debug.Print comp.Name2 & " <<< NOT LOADED >>>"
            End If
        Next
    End If
    
End Sub


Provide feedback on this topic

SOLIDWORKS welcomes your feedback concerning the presentation, accuracy, and thoroughness of the documentation. Use the form below to send your comments and suggestions about this topic directly to our documentation team. The documentation team cannot answer technical support questions. Click here for information about technical support.

* Required

 
*Email:  
Subject:   Feedback on Help Topics
Page:   Get Paths and Titles of Parents of Virtual Component (VBA)
*Comment:  
*   I acknowledge I have read and I hereby accept the privacy policy under which my Personal Data will be used by Dassault Systèmes

Print Topic

Select the scope of content to print:

x

We have detected you are using a browser version older than Internet Explorer 7. For optimized display, we suggest upgrading your browser to Internet Explorer 7 or newer.

 Never show this message again
x

Web Help Content Version: API Help (English only) 2018 SP05

To disable Web help from within SOLIDWORKS and use local help instead, click Help > Use SOLIDWORKS Web Help.

To report problems encountered with the Web help interface and search, contact your local support representative. To provide feedback on individual help topics, use the “Feedback on this topic” link on the individual topic page.