# 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.");
    		}
    	}

    }