Hide Table of Contents

Get DimXpertManager Info Example (VBA)

This example shows the usage of several interfaces that provide access to

information on the DimXpertManager tab of the Management Panel in SolidWorks.

The IDimXpertManager interface exposes schema information on the DimXpertManager tab.

This macro demonstrates several ways of acquiring IDimXpertManager on an open document:

    1. ISelectionManager.GetSelectedObject6()

    2. IModelDocExtension.DimXpertManager

    3. IConfiguration.DimXpertManager

 This macro also demonstrates how to get the features and annotations

 displayed on the DimXpertManager tab using:

    1. ISelectionManager.GetSelectedObject6()

    2. IDimXpertManager.DimXpertPart


' Preconditions:

' 1.  Open <SolidWorks_install_dir>\samples\tutorial\api\cover_with_geometric_tolerances.sldprt.

' 2.  Select the DimXpertManager tab in the Management Panel.

' 3.  Open an Immediate window.

' 4.  Add the latest SolidWorks DimXpert type library in Tools > References

' 5.  Run this macro.


' Postconditions: Inspect the Immediate Window.

' NOTE:  Because this part is used in a SolidWorks online tutorial,

'        do not save any changes when you close the document.


Option Explicit

Dim swApp As SldWorks.SldWorks

Dim swModel As IModelDoc2

Dim swModelDocExt As IModelDocExtension

Dim swSelMgr As ISelectionMgr

Dim swConfig As IConfiguration

Dim swFeature As IFeature

Dim swAnn As IFeature

Dim swSchema As IDimXpertManager

Dim swDXPart As IDimXpertPart

Dim msgStr As String

Dim msgStr2 As String

Dim displaytype As swDimXpertTreeDisplay_e

Dim boolstatus As Boolean

Sub main()

    Set swApp = Application.SldWorks

    Set swModel = swApp.ActiveDoc

    Set swModelDocExt = swModel.Extension

    Set swSelMgr = swModel.SelectionManager


    ' Select a DimXpert schema using swSelectType_e.swSelSWIFTSCHEMA type

        'boolstatus = swModelDocExt.SelectByID2("Scheme15", "SWIFTSCHEMA", 0, 0, 0, False, 0, Nothing, 0)

    ' Get IDimXpertManager (swSchema) for the DimXpert schema using ISelectionManager.GetSelectedObject6()()

        'Set swSchema = swSelMgr.GetSelectedObject6(1, -1)

        'Debug.Print (swSchema.SchemaName) + " acquired through ISelectionManager"


    ' Get IDimXpertManager (swSchema) for a DimXpert schema using IModelDocExtension.DimXpertManager()

    Set swSchema = swModelDocExt.DimXpertManager("Default", True)

    Debug.Print (swSchema.SchemaName) + " acquired through IModelDocExtension"


    ' Get IDimXpertManager (swSchema) for a DimXpert schema using IConfiguration.DimXpertManager()

    Set swConfig = swModel.GetConfigurationByName("Default")

    Set swSchema = swConfig.DimXpertManager(True)

    Debug.Print (swSchema.SchemaName) + " acquired through IConfiguration"


    msgStr = (swSchema.SchemaName) + " shows a "

    displaytype = swSchema.TreeDisplay

    Debug.Print ""


        If (displaytype = swDimXpertTreeDisplay_Flat) Then

            Debug.Print msgStr + "flat display of information on DimXpert tab"


        ElseIf (displaytype = swDimXpertTreeDisplay_Annotation) Then

            Debug.Print msgStr + "annotation-based display of information on DimXpert tab"


        ElseIf (displaytype = swDimXpertTreeDisplay_Feature) Then

            Debug.Print msgStr + "feature-based display of information on DimXpert tab"


        End If


    ' Select a DimXpert annotation using swSelectType_e.swSelSWIFTANNOTATIONS type

    boolstatus = swModelDocExt.SelectByID2("Flatness1", "SWIFTANN", 0, 0, 0, False, 0, Nothing, 0)

    ' All DimXpert features and annotations returned by GetSelectedObject6 are instances of IFeature

    Set swAnn = swSelMgr.GetSelectedObject6(1, -1)


    ' Is Flatness1 an annotation or a feature?

    If (swAnn.IsDimXpertAnnotation()) Then

        msgStr = "Flatness1 is an annotation"

        Debug.Print ""

        Debug.Print msgStr

    ElseIf (swAnn.IsDimXpertFeature()) Then

        msgStr = "Flatness1 is a feature"

        Debug.Print ""

        Debug.Print msgStr

    End If


    ' Get all DimXpert features and annotations using DimXpertPart


    Set swDXPart = swSchema.DimXpertPart


    ' Display all DimXpert annotations using IDimXpertManager.DimXpertPart


    Dim annCount As Long

    annCount = swDXPart.GetAnnotationCount

    msgStr = "Total of "

    msgStr2 = annCount

    msgStr = msgStr + msgStr2 + " annotations in " + (swSchema.SchemaName)

    Debug.Print ""

    Debug.Print msgStr


    Dim annotations As Variant

    Dim annotation As IDimXpertAnnotation

    annotations = swDXPart.GetAnnotations


    msgStr = (swSchema.SchemaName) + " has the following annotations: "

    Debug.Print ""

    Debug.Print msgStr

    For n = 0 To UBound(annotations)

        Set annotation = annotations(n)

        Debug.Print "  " + (annotation.Name)



     ' Select another DimXpert feature using swSelectType_e.swSelSWIFTFEATURES type

    boolstatus = swModelDocExt.SelectByID2("Plane1", "SWIFTFEATURE", 0, 0, 0, False, 0, Nothing, 0)

    Set swFeature = swSelMgr.GetSelectedObject6(1, -1)


    ' Is Plane1 an annotation or a feature?

    If (swFeature.IsDimXpertFeature()) Then

        msgStr = "Plane1 is a feature"

        Debug.Print ""

        Debug.Print msgStr

    ElseIf (swFeature.IsDimXpertAnnotation()) Then

        msgStr = "Flatness1 is an annotation"

        Debug.Print msgStr

    End If


    ' Display all DimXpert features using IDimXpertManager.DimXpertPart


    Dim featCount As Long

    featCount = swDXPart.GetFeatureCount

    msgStr = "Total of "

    msgStr2 = featCount

    msgStr = msgStr + msgStr2 + " features in " + (swSchema.SchemaName)

    Debug.Print ""

    Debug.Print msgStr


    Dim features As Variant

    Dim feature As IDimXpertFeature

    features = swDXPart.GetFeatures


    msgStr = (swSchema.SchemaName) + " has the following features: "

    Debug.Print ""

    Debug.Print msgStr

    For n = 0 To UBound(features)

        Set feature = features(n)

        Debug.Print "  " + (feature.Name)



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

Subject:   Feedback on Help Topics
Page:   Get DimXpertManager Info Example (VBA)
*   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:


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

Web Help Content Version: API Help (English only) 2012 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.