public void CreateTable(string DevName, ObjectId TabObjId, List<string> CableNames) // Где TabObjId - ObjectId существующей таблицы
{
Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Editor ed = doc.Editor;
int TabLength = CableNames.Count();
Transaction tr = db.TransactionManager.StartTransaction();
using (tr)
{
try
{
Table tab = tr.GetObject(TabObjId, OpenMode.ForRead) as Table;
tab.UpgradeOpen();
tab = ClearTable(tab);
Cell c;
for (int i = 1; i < tab.Rows.Count; i++)
tab.DeleteRows(1, i);
for (int i = 1; i < tab.Columns.Count; i++)
tab.DeleteColumns(1, i);
Cell c = tab.Cells[0, 0];
tab.GenerateLayout();
//tab.DowngradeOpen();
tr.Commit();
ed.Regen();
}
catch (System.Exception ex)
{
Autodesk.AutoCAD.Runtime.Exception ex2 =
ex as Autodesk.AutoCAD.Runtime.Exception;
if (ex2 != null && ex2.ErrorStatus != ErrorStatus.WasOpenForUndo)
{
ed.WriteMessage("\nAutoCAD exception: {0}", ex2);
}
else if (ex2 == null)
{
ed.WriteMessage("\nSystem exception: {0}", ex);
}
}
}
}