Create Rectangular Viewport Example (C#)

This example shows how to create a rectangular Viewport.

//--------------------------------------------------------------
// 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.
// 5. Start DraftSight.
// 6. Open the Immediate window.
// 7. Press F5 to debug the project.
//
// Postconditions: 
// 1. A Viewport is created on Sheet2.
// 2. Examine the drawing and output printed
//    to the Immediate window.
//----------------------------------------------------------------

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using DraftSight.Interop.dsAutomation;
 
static class Module1
{
 
    public static void Main()
	{
		DraftSight.Interop.dsAutomation.Application dsApp;
		Document dsDoc = default(Document);
		string SheetName = null;
		object[] dsSheets = null;
		Sheet dsSheet = default(Sheet);
		int index = 0;
		Viewport dsViewport = default(Viewport);
		MathUtility dsMathUtility = default(MathUtility);
		MathPoint startCorner = default(MathPoint);
		MathPoint oppositeCorner = default(MathPoint);
		bool isClipped = false;
 
		//Connect to DraftSight
        dsApp = (DraftSight.Interop.dsAutomation.Application)Marshal.GetActiveObject("DraftSight.Application");
        
		//Abort any command currently running in DraftSight
		//to avoid nested commands
		dsApp.AbortRunningCommand();
 
		//Get active document
		dsDoc = dsApp.GetActiveDocument();
 
		if ((dsDoc != null)) {
			//Switch to Sheet space and activate Sheet2
			dsSheets = (object[])dsDoc.GetSheets();
			if (dsSheets is System.Array) {
				for (index = 0; index < dsSheets.Length; index++) {
					dsSheet = (Sheet)dsSheets[index];
					//Get sheet name
					SheetName = dsSheet.Name;
					//Change sheet name, if it is not a model
					if (SheetName != "Model") {
						//Activate sheet
						dsSheet.Activate();
					}
				}
			}
 
			// Set the corners for the Viewport
			dsMathUtility = dsApp.GetMathUtility();
			startCorner = dsMathUtility.CreatePoint(0, 0, 0);
			oppositeCorner = dsMathUtility.CreatePoint(3, 3, 0);
 
			//Create a rectangular Viewport
			dsViewport = dsSheet.InsertRectangularViewport(dsStandardViewports_e.dsStandardViewports_1, false, startCorner, oppositeCorner);

			// Activate and access the rectangular Viewport
			dsViewport.Active = true;
			Debug.Print(SheetName + ":");
			Debug.Print("  Viewport:");
			dsViewport.GetIsClipped(out isClipped);
			Debug.Print("    Clipped by an entity?       " + isClipped);
			Debug.Print("    Height:                     " + dsViewport.Height);
			Debug.Print("    Width:                      " + dsViewport.Width);
			Debug.Print("    Locked in model workspace?  " + dsViewport.DisplayLocked);
			Debug.Print("    Displayed in graphics area? " + dsViewport.IsOn);
			Debug.Print("    Visible?                    " + dsViewport.Visible);
		} else {
			Debug.Print("There are no open documents in DraftSight.");
		}
	}
 
 
}