Get DimensionStyle Names and Options Example (VBA)

This example shows how to get the names and options of the DimensionStyles in a document and how to export the current view of the drawing to a PNG file.

'-------------------------------------------------------------
' Preconditions:
' 1. Create a VBA macro in a software product in which VBA is
'    embedded.
' 2. Copy and paste this example into the Visual Basic IDE.
' 3. Add a reference to the DraftSight type library,
'    install_dir\bin\dsAutomation.dll.
' 4. Open the Immediate window.
' 5. Start DraftSight.
' 6. Run the macro.
'
' Postconditions:
' 1. Specified document is opened.
' 2. The document's DimensionStyle names and options are printed to
'    the Immediate window.
' 3. The current view of the drawing is exported to a PNG file.
' 4. To verify step 3, open
'    C:\ProgramData\Dassault Systemes\DraftSight\Examples\B-44563.PNG
'    using an application like Microsoft Paint.
'------------------------------------------------------------
Option Explicit
    Sub main()    
        Dim dsApp As DraftSight.Application        
        'Connect to DraftSight application
        Set dsApp = GetObject(, "DraftSight.Application")        
        'Abort any command currently running in DraftSight
        'to avoid nested commands
        dsApp.AbortRunningCommand        
        'Open document
        Dim dsDoc As DraftSight.Document
        Dim docName As String
        docName = "c:\ProgramData\Dassault Systemes\DraftSight\Examples\B-44563.DWG"
        Set dsDoc = dsApp.OpenDocument2(docName, dsDocumentOpenOption_e.dsDocumentOpen_Default, dsEncoding_e.dsEncoding_Default)        
        If dsDoc Is Nothing Then
            MsgBox ("Specified document did not open. Check path and file name.")
            Return
        End If        
        'Get DimensionStyle manager
        Dim dsDimStyleManager As DraftSight.DimensionStyleManager
        Set dsDimStyleManager = dsDoc.GetDimensionStyleManager()        
        'Get DimensionStyles and options for document
        Dim dsDimensionStyles As Variant
        dsDimensionStyles = dsDimStyleManager.GetDimensionStyles()
        Dim index As Long
        If IsArray(dsDimensionStyles) Then
            For index = 0 To UBound(dsDimensionStyles) - 1
                Dim dsDimensionStyle As Object
                Set dsDimensionStyle = dsDimensionStyles(index)
                Debug.Print ""
                Debug.Print "Name of DimensionStyle: " & dsDimensionStyle.Name
                'Print DimensionStyle's options
                PrintDimensionStyleOptions dsDimensionStyle
            Next
        End If        
        'Export current view of drawing to PNG
        Dim dsExportDocument As DraftSight.DocumentExporter
        Dim exportFileName As String
        Dim status As Boolean
        Set dsExportDocument = dsDoc.GetDocumentExporter()
        exportFileName = "C:\ProgramData\Dassault Systemes\DraftSight\Examples\B-44563.PNG"
        dsExportDocument.ExportToPng exportFileName, status
        Debug.Print ""
        If status Then
            Debug.Print "Drawing exported as " & exportFileName & "."
        Else
            Debug.Print "Export of drawing to PNG failed!"
        End If        
End Sub        
Function PrintDimensionStyleOptions(ByRef dsDimensionStyle As DraftSight.DimensionStyle)
    'Angular DimensionStyle options
    Dim dsDimensionStyleAngularDimensionOptions As DraftSight.DimensionStyleAngularDimensionOptions
    Set dsDimensionStyleAngularDimensionOptions = dsDimensionStyle.GetDimensionStyleAngularDimensionOptions()
    Debug.Print "  Angular DimensionStyle options:  "
    Debug.Print "    Precision: " & dsDimensionStyleAngularDimensionOptions.Precision
    Debug.Print "    Format: " & dsDimensionStyleAngularDimensionOptions.Format
    Debug.Print "    Hide leading zeroes: " & dsDimensionStyleAngularDimensionOptions.HideLeadingZeroes
    Debug.Print "    Hide trailing zeroes: " & dsDimensionStyleAngularDimensionOptions.HideTrailingZeroes    
    'Dual DimensionStyle options
    Dim dsDimensionStyleDualDimensionOptions As DraftSight.DimensionStyleDualDimensionOptions
    Set dsDimensionStyleDualDimensionOptions = dsDimensionStyle.GetDimensionStyleDualDimensionOptions()
    Debug.Print "  Dual DimensionStyle options:  "
    Debug.Print "    Precision: " & dsDimensionStyleDualDimensionOptions.Precision
    Debug.Print "    Format: " & dsDimensionStyleDualDimensionOptions.Format
    Debug.Print "    Hide leading zeroes: " & dsDimensionStyleDualDimensionOptions.HideLeadingZeroes
    Debug.Print "    Hide trailing zeroes: " & dsDimensionStyleDualDimensionOptions.HideTrailingZeroes    
    'Fit DimensionStyle options
    Dim dsDimensionStyleFitOptions As DraftSight.DimensionStyleFitOptions
    Set dsDimensionStyleFitOptions = dsDimensionStyle.GetDimensionStyleFitOptions()
    Debug.Print "  Fit DimensionStyle options:  "
    Debug.Print "    Placement of text: " & dsDimensionStyleFitOptions.FitDimensionText
    Debug.Print "    Entity to move outside Dimension's extension lines: " & dsDimensionStyleFitOptions.FitGeometry
    Debug.Print "    Hide arrows: " & dsDimensionStyleFitOptions.HideArrows
    Dim dimensionScale As dsDimensionScale_e
    Dim scaleFactor As Double
    dsDimensionStyleFitOptions.GetDimensionScale dimensionScale, scaleFactor
    Debug.Print "    Scale factor: " & scaleFactor    
    'Linear DimensionStyle options
    Dim dsDimensionStyleLinearDimensionOptions As DraftSight.DimensionStyleLinearDimensionOptions
    Set dsDimensionStyleLinearDimensionOptions = dsDimensionStyle.GetDimensionStyleLinearDimensionOptions()
    Debug.Print "  Linear DimensionStyle options:  "
    Debug.Print "    Precision: " & dsDimensionStyleLinearDimensionOptions.Precision
    Debug.Print "    Format: " & dsDimensionStyleLinearDimensionOptions.Format
    Debug.Print "    Hide leading zeroes: " & dsDimensionStyleLinearDimensionOptions.HideLeadingZeroes
    Debug.Print "    Hide trailing zeroes: " & dsDimensionStyleLinearDimensionOptions.HideTrailingZeroes    
    'Tolerance DimensionStyle options
    Dim dsDimensionStyleToleranceOptions As DraftSight.DimensionStyleToleranceOptions
    Set dsDimensionStyleToleranceOptions = dsDimensionStyle.GetDimensionStyleToleranceOptions()
    Debug.Print "  Tolerance DimensionStyle options:  "
    Debug.Print "    Precision: " & dsDimensionStyleToleranceOptions.Precision
    Debug.Print "    Minimum value: " & dsDimensionStyleToleranceOptions.MinimumValue
    Debug.Print "    Maximum value: " & dsDimensionStyleToleranceOptions.MaximumValue
    Debug.Print "    Hide leading zeroes: " & dsDimensionStyleToleranceOptions.HideLeadingZeroes
    Debug.Print "    Hide trailing zeroes: " & dsDimensionStyleToleranceOptions.HideTrailingZeroes    
End Function