Create Table Example (C#)
This example shows how to change the transparency of the active Layer, create
a TableStyle and Table, and change the background colors of the top row and a cell
in the Table.
//--------------------------------------------------------------
// 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. Open the Immediate window.
// 5. Add references to System and System.Windows.Forms.
// 6. Start DraftSight and open a new document.
// 7. Press F5.
//
//
// Postconditions:
// 1. Gets the transparency object for the active Layer and prints its
// transparency percentage to the Immediate window.
// 2. Changes the transparency percentage of the active Layer and prints
// its new percentage to the Immediate window.
// 3. Creates and activates a new TableStyle named Sample Table Style.
// 4. Inserts a Table and applies the Sample Table Style TableStyle.
// 5. Gets the transparency object for the Table.
// 6. Prints whether the transparency object for the Table is ByLayer.
// 7. If not, then changes and updates the transparency object
// of the Table to ByLayer.
// 8. Changes the top row's background color.
// 9. Changes the background color of the cell in the second row
// and second column to match the top row's background color.
//10. Prints the name of the TableStyle to the Immediate window.
//11. Examine the drawing and the Immediate window.
//----------------------------------------------------------------
using DraftSight.Interop.dsAutomation;
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Diagnostics;
static class Module1{
public static void Main() {
DraftSight.Interop.dsAutomation.Application dsApp;
//Connect to DraftSight application
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
Document dsDoc = default(Document);
dsDoc = dsApp.GetActiveDocument();
if (dsDoc == null) {
MessageBox.Show("There are no open documents in DraftSight.");
return;
}
//Get how transparency is defined
LayerManager dsLayerManager = default(LayerManager);
Layer dsLayer = default(Layer);
dsLayerManager = dsDoc.GetLayerManager();
dsLayer = dsLayerManager.GetActiveLayer();
Debug.Print("Transparency percentage for active Layer: " + Convert.ToString(dsLayer.Transparency));
//Set new transparency percentage for the active Layer
dsLayer.Transparency = 50;
Debug.Print("New transparency percentage for active Layer: " + Convert.ToString(dsLayer.Transparency));
//Get the TableStyle Manager
TableStyleManager dsTableStyleManager = default(TableStyleManager);
dsTableStyleManager = dsDoc.GetTableStyleManager();
//Create the TableStyle
TableStyle dsTableStyle = default(TableStyle);
string sampleTableStyle = null;
sampleTableStyle = "Sample Table Style";
dsCreateObjectResult_e result;
dsTableStyleManager.CreateTableStyle(sampleTableStyle, out dsTableStyle, out result);
//Set the TableStyle styles
//Create the Table in a downward direction
dsTableStyle.HeaderOrientation = dsTableHeaderOrientation_e.dsTableHeaderOrientation_Down;
//Set the Colors for the Table backgrounds
Color dsColorHeader = default(Color);
Color dsColorData = default(Color);
Color dsColorTitle = default(Color);
dsColorHeader = dsTableStyle.GetBackgroundColor(dsTableCellType_e.dsTableCellType_Header);
dsColorHeader.SetNamedColor(dsNamedColor_e.dsNamedColor_Cyan);
dsTableStyle.SetBackgroundColor(dsTableCellType_e.dsTableCellType_Header, dsColorHeader);
dsColorData = dsTableStyle.GetBackgroundColor(dsTableCellType_e.dsTableCellType_Data);
dsColorData.SetNamedColor(dsNamedColor_e.dsNamedColor_Green);
dsTableStyle.SetBackgroundColor(dsTableCellType_e.dsTableCellType_Data, dsColorData);
dsColorTitle = dsTableStyle.GetBackgroundColor(dsTableCellType_e.dsTableCellType_Title);
dsColorTitle.SetNamedColor(dsNamedColor_e.dsNamedColor_White);
dsTableStyle.SetBackgroundColor(dsTableCellType_e.dsTableCellType_Title, dsColorTitle);
//Activate the TableStyle
dsTableStyle.Activate();
//Get the model document
Model dsModel = default(Model);
dsModel = dsDoc.GetModel();
//Get the Sketch Manager
SketchManager dsSketchManager = default(SketchManager);
dsSketchManager = dsModel.GetSketchManager();
//Insert the Table
Table dsTable = default(Table);
double x = 0;
x = 6;
double y = 0;
y = 6;
int row = 0;
row = 4;
int col = 0;
col = 5;
double rowHeight = 0;
rowHeight = 2;
double colWidth = 0;
colWidth = 4;
dsTable = dsSketchManager.InsertTable(x, y, row, col, rowHeight, colWidth, dsTableCellType_e.dsTableCellType_Title, dsTableCellType_e.dsTableCellType_Header, dsTableCellType_e.dsTableCellType_Data);
//Get transparency object for Table
Transparency dsTransparency = default(Transparency);
dsTransparency = dsTable.Transparency;
//Find out if Table's transparency is ByLayer
Debug.Print ("Transparency defined ByLayer: " + Convert.ToString(dsTransparency.IsByLayer()));
//If not, then change Table's transparency to ByLayer and
//update Table's transparency object
if (dsTransparency.IsByLayer() == false)
{
dsTransparency.SetByLayer();
Debug.Print("Transparency now ByLayer: " + Convert.ToString(dsTransparency.IsByLayer()));
//Update Table's transparency object
dsTable.Transparency = dsTransparency;
}
//Change Table's top row's background color
dsColorTitle.SetNamedColor(dsNamedColor_e.dsNamedColor_Yellow);
dsTable.SetBackgroundColor(dsTableCellType_e.dsTableCellType_Title, dsColorTitle);
//Change background color of cell in second row and
//second column to match the top row's background color
dsTable.SetCellBackgroundColor(1,1,dsColorTitle);
//Get the name of the TableStyle for the just-inserted Table
Debug.Print("TableStyle applied to this table: " + dsTableStyle.Name);
//Zoom to fit
dsApp.Zoom(dsZoomRange_e.dsZoomRange_Fit, null, null);
}
}