for (int i = 0; i < coll.Count(); i++)
{
using (Transaction tr = db.TransactionManager.StartTransaction())
{
BlockTableRecord ms = (BlockTableRecord)tr.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(db), OpenMode.ForWrite);
using (Database newDb = new Database(true, false))
{
var oldDia = Application.GetSystemVariable("CMDDIA");
Application.SetSystemVariable("CMDDIA", 0);
ed.Command("_.MAPTRIM",
/* Выбрать */ "В",
/* Объект */ coll[i].ObjectId,
/* Нет */ "Н",
/* Нет */ "Н",
/* Внутри */ "С",
/* Нет */ "Н",
/* Нет */ "Н",
/* Игнорировать */ "И",
/* Да */ "Д"
);
Application.SetSystemVariable("CMDDIA", oldDia);
List<ObjectId> objlist = new List<ObjectId>();
foreach (ObjectId id in ms)
{
objlist.Add(id);
}
ObjectIdCollection objlistColl = new ObjectIdCollection();
foreach (ObjectId objId in objlist)
{
objlistColl.Add(objId);
}
db.Wblock(newDb, objlistColl, Point3d.Origin, DuplicateRecordCloning.Ignore);
string FileName = "D:/X" + i.ToString() + ".dwg";
newDb.SaveAs(FileName, DwgVersion.Newest);
}
tr.Commit();
doc.Editor.Command("_undo", 1);
}
}