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, nullnull); 
 
	} 
 
}