This example shows how to get and set standard and custom drawing properties.
//-------------------------------------------------------------- // 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 a reference to System.Windows.Forms. // 5. Start DraftSight and open a document. // 6. Press F5. // // Postconditions: // 1. Connects to DraftSight. // 2. Gets the active document. // 3. Gets and sets standard and custom drawing properties. // 4. Displays a message box showing the total number of // drawing custom properties. Click OK to close the message // box. // 5. Displays a message box showing the first custom property // in the list of custom properties. Click OK to close the // message box. // 6. Displays a message box instructing you to // type DRAWINGPROPERTIES at the prompt in the // command window to open the drawing properties dialog. // Click OK to close the message box. // 7. Examine the properties on both tabs of the drawing // properties dialog. //---------------------------------------------------------------- using System; using DraftSight.Interop.dsAutomation; using System.Runtime.InteropServices; using System.Windows.Forms; namespace DrawingPropertiesCSharp { class Program { public 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; }
//Abort any command currently running in DraftSight to avoid nested commands dsApp.AbortRunningCommand(); //Get active document Document dsDoc = dsApp.GetActiveDocument(); if (null == dsDoc) { MessageBox.Show("There are no open documents in DraftSight."); return; } //Get drawing properties DrawingProperties dsDrawingProperties = dsDoc.GetDrawingProperties(); if (null == dsDrawingProperties) { MessageBox.Show("There are no valid drawing properties."); return; } //Set drawing properties dsDrawingProperties.Author = "Me"; dsDrawingProperties.Keywords = "test,sample"; dsDrawingProperties.Comments = "Properties created by this DraftSight API application"; dsDrawingProperties.Title = "Title"; dsDrawingProperties.Subject = "Test"; //Add key and value to the drawing custom properties string key = "0123"; string value = "Test Value"; dsDrawingProperties.AddCustomProperty(key, value); //Set another drawing custom property dsDrawingProperties.SetCustomProperty("9234", "234"); //Remove previously added drawing custom property dsDrawingProperties.RemoveCustomProperty("234"); //Set drawing custom property with an index number dsDrawingProperties.SetCustomPropertyAt(1, "testvalue"); //Get number of custom properties MessageBox.Show("Number of custom properties: " + dsDrawingProperties.GetCustomPropertyCount()); string keyValue; if (dsDrawingProperties.GetCustomPropertyCount() >= 0) { //Get first drawing custom property and key value in the list of drawing custom properties string customProperty = dsDrawingProperties.GetCustomPropertyAt(0, out keyValue); MessageBox.Show("Custom property: " + customProperty + ", Key: " + keyValue); } //Type DRAWINGPROPERTIES at the prompt in the command window //to see the drawing properties MessageBox.Show("Type DRAWINGPROPERTIES at the prompt in the command window to open the drawing properties dialog. Examine the information on both tabs."); } } }