namespace SLDBuilder_2
{
public class RunSLDbuilder : IExtensionApplication
{
[CommandMethod("sldbuilder")]
public void RunSLD()
{
Document currentDoc = Application.DocumentManager.MdiActiveDocument;
Database currentDataBase = currentDoc.Database;
Editor currentEditor = currentDoc.Editor;
currentEditor.WriteMessage("\nSLD Builder started...");
string dwgFilePath = @"C:\Users\11177\Documents\SLDBuilder_2\_test\SLD_template_EN.dwg";
string dwgFileName = Path.GetFileName(dwgFilePath);
Document dwgDoc = Application.DocumentManager.Open(dwgFilePath, false);
Application.DocumentManager.MdiActiveDocument = dwgDoc; // Эту строчку советует добавить Copilot, но это ничего не меняет.
Database newDatabase = dwgDoc.Database;
Editor newEditor = dwgDoc.Editor;
using (Transaction tr = newDatabase.TransactionManager.StartTransaction())
{
BlockTable blockTable = (BlockTable)tr.GetObject(newDatabase.BlockTableId, OpenMode.ForRead);
BlockTableRecord modelSpace = (BlockTableRecord)tr.GetObject(blockTable[BlockTableRecord.ModelSpace], OpenMode.ForWrite);
Line line = new Line();
line.StartPoint = new Point3d(-100, -100, 0);
line.EndPoint = new Point3d(100, 100, 0);
line.ColorIndex = 7;
ObjectId objectIdLine = modelSpace.AppendEntity(line);
tr.AddNewlyCreatedDBObject(line, true);
tr.Commit();
}
}
public void Initialize()
{
Editor editor = Application.DocumentManager.MdiActiveDocument.Editor;
editor.WriteMessage("\nSLD Builder loaded...");
}
public void Terminate()
{
}
}
}