public void CreateBtrPanelFromBase(int i, string[] marks) { // Тест создания определения блока панели по описанию в xml базе. PanelBase panelBase; string testFile = @"c:\temp\test\АКР\Base\Tests\CreateBlockPanelTest\TestCreatePanels.dwg"; //File.Copy(@"c:\Autodesk\AutoCAD\Pik\Settings\Template\АР\АР.dwt", testFile, true); using (var db = new Database(false, true)) { db.ReadDwgFile(testFile, FileOpenMode.OpenForReadAndAllShare, false, ""); db.CloseInput(true); using (AcadLib.WorkingDatabaseSwitcher dbSwitcher = new AcadLib.WorkingDatabaseSwitcher(db)) { baseService.ClearPanelsAkrFromDrawing(db); baseService.InitToCreationPanels(db); Point3d pt = Point3d.Origin; List <ObjectId> idsBtrPanels = new List <ObjectId>(); // Создание определениц блоков панелей foreach (var mark in marks) { Panel panelXml = baseService.GetPanelXml(mark); panelBase = new PanelBase(panelXml, baseService); panelBase.CreateBlock(); if (!panelBase.IdBtrPanel.IsNull) { idsBtrPanels.Add(panelBase.IdBtrPanel); } } // Вставка вхождениц блоков панелей в модель using (var t = db.TransactionManager.StartTransaction()) { foreach (var idBtrPanel in idsBtrPanels) { var blRefPanel = new BlockReference(pt, idBtrPanel); var ms = db.CurrentSpaceId.GetObject(OpenMode.ForWrite) as BlockTableRecord; ms.AppendEntity(blRefPanel); t.AddNewlyCreatedDBObject(blRefPanel, true); pt = new Point3d(0, pt.Y + 10000, 0); } t.Commit(); } } db.SaveAs(testFile, DwgVersion.Current); } }