Get and Set Drawing Properties Example (C#)
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.");
}
}
}