Get DimensionStyle Names and Options Example (C#)

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 C# Windows console project.
// 2. Copy and paste this project into the C# IDE.
// 3. Add a reference to:
//    install_dir\APISDK\tlb\DraftSight.Interop.dsAutomation.dll.
// 4. Open the Immediate window.
// 5. Start DraftSight.
// 6. Click Start Debugging.
//
// 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.
//------------------------------------------------------------
 
using System.IO;
using DraftSight.Interop.dsAutomation;
using System.Diagnostics;
using System.Runtime.InteropServices;
 
namespace GetDimensionStylesCSharp
{
    static class Program
    {
 
        public static void Main()
    {
                DraftSight.Interop.dsAutomation.Application dsApp;
//Connect to DraftSight application
dsApp = (DraftSight.Interop.dsAutomation.Application)Marshal.GetActiveObject("DraftSight.Application");
//Abort any command currently running in DraftSight
//to avoid nested commands
dsApp.AbortRunningCommand();
 
//Open document
Document dsDoc = default(Document);
string docName = null;
docName = "C:\\ProgramData\\Dassault Systemes\\DraftSight\\Examples\\B-44563.DWG";
dsDoc = dsApp.OpenDocument2(docName, dsDocumentOpenOption_e.dsDocumentOpen_Default, dsEncoding_e.dsEncoding_Default);
if (dsDoc == null) {
Debug.Print("Specified document did not open. Check path and file name.");
return;
}
 
//Get DimensionStyle manager
DimensionStyleManager dsDimStyleManager = default(DimensionStyleManager);
dsDimStyleManager = dsDoc.GetDimensionStyleManager();
 
//Get DimensionStyles and options for document
object[] dsDimensionStyles = null;
dsDimensionStyles = dsDimStyleManager.GetDimensionStyles();
long index = 0;
if (dsDimensionStyles != null
                {
for (index = 0; index <= dsDimensionStyles.Length - 1; index++) 
                        {
DimensionStyle dsDimensionStyle = default(DimensionStyle);
dsDimensionStyle = (DimensionStyle)dsDimensionStyles[index];
Debug.Print("");
                                Debug.Print("Name of DimensionStyle: " + dsDimensionStyle.Name);
                                //Print DimensionStyle's options
PrintDimensionStyleOptions(dsDimensionStyle);
}
}
 
//Export current view of drawing to PNG
DocumentExporter dsExportDocument = default(DocumentExporter);
string exportFileName = null;
bool status = false;
dsExportDocument = dsDoc.GetDocumentExporter();
exportFileName = "C:\\ProgramData\\Dassault Systemes\\DraftSight\\Examples\\B-44563.PNG";
dsExportDocument.ExportToPng(exportFileName, out status);
Debug.Print("");
if (status) {
Debug.Print("Drawing exported as " + exportFileName + ".");
else {
Debug.Print("Export of drawing to PNG failed!");
}
}
 
        public static void PrintDimensionStyleOptions(DimensionStyle dsDimensionStyle)
        {
            //Angular DimensionStyle options
            DimensionStyleAngularDimensionOptions dsDimensionStyleAngularDimensionOptions = default(DimensionStyleAngularDimensionOptions);
            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
            DimensionStyleDualDimensionOptions dsDimensionStyleDualDimensionOptions = default(DimensionStyleDualDimensionOptions);
            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
            DimensionStyleFitOptions dsDimensionStyleFitOptions = default(DimensionStyleFitOptions);
            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);
            dsDimensionScale_e dimensionScale = default(dsDimensionScale_e);
            double scaleFactor = 0;
            dsDimensionStyleFitOptions.GetDimensionScale(out dimensionScale, out scaleFactor);
            Debug.Print("    Scale factor: " + scaleFactor);
 
            //Linear DimensionStyle options
            DimensionStyleLinearDimensionOptions dsDimensionStyleLinearDimensionOptions = default(DimensionStyleLinearDimensionOptions);
            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
            DimensionStyleToleranceOptions dsDimensionStyleToleranceOptions = default(DimensionStyleToleranceOptions);
            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);
 
        }
 
    }
}