Create Model and Sheet Views Example (C#)
This example shows how to create:
- model named view with
gradient background.
- model named view without a
background.
- sheet named view.
//--------------------------------------------------------------
//Preconditions:
// 1. Create a C# Windows console project.
// 2. Copy and paste this project into the C# IDE.
// 3. Open the Immediate window.
// 4. Add a reference to:
// install_dir\APISDK\tlb\DraftSight.Interop.dsAutomation.dll.
// 5. Add a reference to System.Windows.Forms.
// 6. Start DraftSight and open
// disk:\ProgramData\Dassault Systemes\Draftsight\Examples\pump housing.dwg.
// 7. Press F5.
//
//Postconditions:
// 1. A model named view, ModelView, is created with a gradient background
// and is classified in the A category.
// 2. A model named view, SavedModelView, is created without a background.
// 3. A sheet named view, SheetView, is created and
// classified in the B category.
// 4. Click View > Named Views and examine both the model and sheet.
// 5. Examine the Immediate window.
//
// NOTE: To change the background to:
// 1. Solid from gradient:
// a. Uncomment these lines of code:
// //SolidBackground dsSolidBackground;
// //dsSolidBackground = dsViewMgr.CreateSolidBackground(dsColor);
// //dsModelNamedView.SetSolidBackground(dsSolidBackground);
// b. Comment out these lines of code:
// GradientBackground dsGradientBackground;
// dsGradientBackground = dsViewMgr.CreateGradientBackground(dsColor, dsColor2, dsColor3, false, 0);
// dsModelNamedView.SetGradientBackground(dsGradientBackground);
// 2. Image from gradient:
// a. Uncomment these lines of code:
// //ImageBackground dsImageBackground;
// //dsImageBackground = dsViewMgr.CreateImageBackground(imageFile, dsImageBackgroundPosition_e.dsImageBackgroundPosition_Tile, 0, 0, 0, 0);
// //dsModelNamedView.SetImageBackground(dsImageBackground);
// b. Perform step 1b.
//----------------------------------------------------------------
using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Diagnostics;
using System.IO;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using DraftSight.Interop.dsAutomation;
namespace ViewManager_CSharp
{
static class Program
{
public static void Main(string[] args)
{
DraftSight.Interop.dsAutomation.Application dsApp;
Document dsDoc;
ViewManager dsViewMgr;
double[] dsCorner1 = new double[] {
16.12,
12.23,
0.0
};
double[] dsCorner2 = new double[] {
25.46,
20.47,
0.0
};
double[] dsCorner3 = new double[] {
5.0,
4.5,
0.0
};
double[] dsCorner4 = new double[] {
7.36,
6.38,
0.0
};
ModelNamedView dsModelNamedView;
SheetNamedView dsSheetNamedView;
dsCreateObjectResult_e result;
Object[] dsSheetArray;
Sheet dsSheet;
GradientBackground dsGradientBackground;
//SolidBackground dsSolidBackground;
//ImageBackground dsImageBackground;
Color dsColor;
Color dsColor2;
Color dsColor3;
string imageFile;
//Connect to DraftSight application
dsApp = (DraftSight.Interop.dsAutomation.Application)Marshal.GetActiveObject("DraftSight.Application");
//Get active document
dsDoc = dsApp.GetActiveDocument();
if ((dsDoc != null))
{
//Get the view manager
dsViewMgr = dsDoc.GetViewManager();
//In the model space, create a model named view
result = dsViewMgr.CreateModelNamedView("ModelView", "A", dsCorner1, dsCorner2, out dsModelNamedView);
dsColor = dsApp.GetNamedColor(dsNamedColor_e.dsNamedColor_Blue);
dsColor2 = dsApp.GetNamedColor(dsNamedColor_e.dsNamedColor_Cyan);
dsColor3 = dsApp.GetNamedColor(dsNamedColor_e.dsNamedColor_Green);
//Create gradient background
dsGradientBackground = dsViewMgr.CreateGradientBackground(dsColor, dsColor2, dsColor3, false, 0);
//Create solid background
//dsSolidBackground = dsViewMgr.CreateSolidBackground(dsColor);
//Create image background
imageFile = "C:\\Users\\Public\\Pictures\\Sample Pictures\\Penguins.jpg";
//dsImageBackground = dsViewMgr.CreateImageBackground(imageFile, dsImageBackgroundPosition_e.dsImageBackgroundPosition_Tile, 0, 0, 0, 0);
Debug.Print("Result: " + result.ToString());
Debug.Print("Model named view: " + dsModelNamedView.GetNamedView().GetName());
dsModelNamedView = dsViewMgr.GetModelNamedView("ModelView");
//Set background of ModelView and verify
//by getting its background type
dsModelNamedView.SetGradientBackground(dsGradientBackground);
//dsModelNamedView.SetSolidBackground(dsSolidBackground);
//dsModelNamedView.SetImageBackground(dsImageBackground);
Debug.Print("Type of background: " + dsModelNamedView.GetBackgroundType());
dsViewMgr.SaveCurrentViewAsModelView("SavedModelView", "A", out dsModelNamedView);
dsViewMgr.ActivateModelView("ModelView");
Debug.Print("");
//Switch to sheet space and create a sheet named view
dsSheetArray = (Object[])dsDoc.GetSheets();
dsSheet = (Sheet)dsSheetArray[1];
dsSheet.Activate();
result = dsViewMgr.CreateSheetNamedView("SheetView", "B", dsCorner3, dsCorner4, out dsSheetNamedView);
Debug.Print("Result: " + result.ToString());
Debug.Print("Sheet named view: " + dsSheetNamedView.GetNamedView().GetName());
dsSheetNamedView = dsViewMgr.GetSheetNamedView("SheetView");
dsSheet = dsSheetNamedView.GetSheet();
dsViewMgr.SaveCurrentViewAsSheetView("SavedSheetView", "B", out dsSheetNamedView);
dsViewMgr.ActivateSheetView("SheetView");
}
else
{
MessageBox.Show("There are no open documents in DraftSight.");
}
}
}
}