This example shows how to change the DimensionStyle arrow and text options of a specific Leader. The DimensionStyle arrow and text options of all other existing and new Leaders use the DimensionStyle options of the drawing.
//-------------------------------------------------------------- // Preconditions: // 1. Create a C# Windows console project. // 2. Copy and paste this example into the C# IDE. // 3. Add a reference to: // install_dir\APISDK\tlb\DraftSight.Interop.dsAutomation.dll. // 4. Add references to System and System.Windows.Forms. // 5. Start DraftSight and open a document. // 6. Start debugging the project. // // Postconditions: // 1. Draws two Leaders, DSUserData and DS. // 2. Gets DimensionStyleUserData for DSUserData Leader. // 3. Gets arrow options for DSUserData Leader. // 4. Modifies DSUserData Leader's arrow options only. // 5. Zooms to fit the drawing and execution stops. // 6. Examine the drawing to verify that only DSUserData Leader's // arrow changed. // 7. Press F10 to step through the rest of the project // and examine the drawing after each call. // 8. Gets text options for DSUserData Leader. // 9. Modifies DSUserData Leader's text options only. // 10. Inserts third Leader, DS2. // 11. Examine the drawing to verify that DS and DS2 Leaders // have the same arrow and text options. //---------------------------------------------------------------- using System; using DraftSight.Interop.dsAutomation; using System.Runtime.InteropServices; using System.Windows.Forms; namespace DimensionStyleUserDataTest { class Program { static void Main() { DraftSight.Interop.dsAutomation.Application dsApp; //Connect to DraftSight application dsApp = (DraftSight.Interop.dsAutomation.Application)Marshal.GetActiveObject("DraftSight.Application"); if (null == dsApp) { return; } //Get active document Document dsDoc = dsApp.GetActiveDocument(); if (null == dsDoc) { MessageBox.Show("There are no open documents in DraftSight."); return; } //Get Sketch Manager Model dsModel; SketchManager dsSketchMgr; dsModel = dsDoc.GetModel(); dsSketchMgr= dsModel.GetSketchManager(); //Insert first Leader double[] Coordinates = new double[] { 0, 0, 0, 4, 4, 0, 10, 4, 0 }; double Width = 5.0; string myNote = "DSUserData"; Leader dsLeader; dsLeader = dsSketchMgr.InsertLeader(Coordinates, Width, myNote); //Insert second Leader double[] Coordinates2 = new double[] { 8, 8, 8, 8, 8, 8, 20, 8, 8 }; string myNote2 = "DS"; Leader dsLeader2; dsLeader2 = dsSketchMgr.InsertLeader(Coordinates2, Width, myNote2); //Get DimensionStyleUserData for DSUserData Leader DimensionStyleUserData dsDimStyleUserData; dsDimStyleUserData = dsLeader.GetDimensionStyleUserData(); //Zoom to fit dsApp.Zoom(dsZoomRange_e.dsZoomRange_Fit, null, null); //Examine the drawing //Press F10 to step through project System.Diagnostics.Debugger.Break(); //Get DimensionStyleArrowsOptions for DSUserData Leader DimensionStyleArrowsOptions dsArrowsOptions; dsArrowsOptions = dsDimStyleUserData.GetDimensionStyleArrowsOptions(); //Set arrow size for DSUserData Leader dsArrowsOptions.Size = 1.0; //set arrow type for DSUserData Leader dsArrowsOptions.SetLeaderArrow(dsDimensionArrowType_e.dsDimensionArrowType_Dot, ""); //Get DimensionStyleTextOptions for DSUserData Leader DimensionStyleTextOptions dsTextOptions; dsTextOptions = dsDimStyleUserData.GetDimensionStyleTextOptions(); //Set text vertical position for DSUserData Leader dsTextOptions.VerticalPosition= dsDimensionTextVerticalPosition_e.dsDimensionTextVerticalPosition_Centered; //Insert third Leader double[] Coordinates3 = new double[] { 16, 16, 16, 16, 16, 16, 40, 16, 16 }; string myNote3 = "DS2"; Leader dsLeader3; dsLeader3 = dsSketchMgr.InsertLeader(Coordinates3, Width, myNote3); //Zoom to fit dsApp.Zoom(dsZoomRange_e.dsZoomRange_Fit, null, null); //Examine the drawing to verify that DS and DS2 Leaders //have the same arrow and text options } } }