Hide Table of Contents

Lock All External References Example (VBA)

This example shows how to lock all external references in a part or assembly in reverse chronological order.

'---------------------------------------
' Preconditions:
' 1. Open a part or assembly.
' 1. Open the Immediate window.
'
' Postconditions:
' 1. Locks all external references.
' 2. Examine the Immediate window.
'---------------------------------------
Option Explicit
Sub ProcessModel(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, sPadStr As String)
    Debug.Print sPadStr & "  Locking: " & swModel.GetPathName
    swModel.LockAllExternalReferences
End Sub
Sub ProcessComponent(swApp As SldWorks.SldWorks, swComp As SldWorks.Component2, sPadStr As String)
    Dim vChildCompArr As Variant
    Dim vChildComp As Variant
    Dim swChildComp As SldWorks.Component2
    Dim swChildModel As SldWorks.ModelDoc2
    vChildCompArr = swComp.GetChildren
    For Each vChildComp In vChildCompArr
        Set swChildComp = vChildComp
        Debug.Print sPadStr & swChildComp.Name2
        ProcessComponent swApp, swChildComp, sPadStr & "  "
        Set swChildModel = swChildComp.GetModelDoc
        ProcessModel swApp, swChildModel, sPadStr
    Next vChildComp
End Sub
Sub main()
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swAssy As SldWorks.AssemblyDoc
    Dim swConfigMgr As SldWorks.ConfigurationManager
    Dim swConf As SldWorks.Configuration
    Dim swRootComp As SldWorks.Component2
    Dim nStatus As Long
    Dim bRet As Boolean
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swConfigMgr = swModel.ConfigurationManager
    Set swConf = swConfigMgr.ActiveConfiguration
    Set swRootComp = swConf.GetRootComponent
    Debug.Print "File = " & swModel.GetPathName
    Select Case swModel.GetType
        Case swDocPART
            ProcessModel swApp, swModel, "  "
        Case swDocASSEMBLY
            Set swAssy = swModel
            nStatus = swAssy.ResolveAllLightWeightComponents(False)
            Set swRootComp = swConf.GetRootComponent
            ProcessComponent swApp, swRootComp, "  "
        Case Else
            Exit Sub
    End Select
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:   Lock All External References Example (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) 2021 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.