This example shows how to switch layouts.
//-------------------------------------------------------------- //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: Message boxes pop up when a model or sheet //is activated. Read the text in each message box before clicking //OK to close it. //---------------------------------------------------------------- using DraftSight.Interop.dsAutomation; using System; using System.Windows.Forms; using System.Runtime.InteropServices;
static class Module1 {
public static void Main() {
DraftSight.Interop.dsAutomation.Application dsApp; Document dsDoc = default(Document);
//Connect to DraftSight
dsApp = (DraftSight.Interop.dsAutomation.Application)Marshal.GetActiveObject("DraftSight.Application"); dsApp.AbortRunningCommand(); // abort any command currently running in DraftSight to avoid nested commands
//Get active document dsDoc = dsApp.GetActiveDocument();
if (dsDoc != null) { //Activate each layout, one by one SwitchLayouts(dsDoc);
} else { MessageBox.Show("There are no open documents in DraftSight."); } } public static void SwitchLayouts(Document dsDoc) { Sheet dsSheet = default(Sheet); Model dsModel = default(Model); object[] dsVarSheets = null; int index = 0; string sheetName = null;
//Get all sheets dsVarSheets = (object[])dsDoc.GetSheets();
if (dsVarSheets != null) {
for (index = dsVarSheets.GetLowerBound(0); index <= dsVarSheets.GetUpperBound(0); index++) { dsSheet = (Sheet)dsVarSheets[index];
//Get sheet name sheetName = dsSheet.Name;
//Change sheet name, if it is not a model
if (sheetName != "Model") { //Activate sheet dsSheet.Activate();
//Verify if the sheet was activated if (dsSheet.IsActive()) { MessageBox.Show("The sheet " + sheetName + " was activated."); }
} else { //Activate model sheet dsModel = (Model)dsDoc.GetModel();
if (dsModel != null) { //Activate model sheet dsModel.Activate();
//Verify if the sheet was activated if (dsModel.IsActive()) { MessageBox.Show("The model sheet was activated."); }
}
}
}
}
}
}