@ActivistInvestor,
Thank you, I've made 2 options:
>> 1st option uses Wblock(ObjectId id) as you suggest;
>> 2nd option uses Wblock(ObjectIdCollection col, Point3d pt)
Unfortunately, both of them led me to the same result -- new file is empty.
Here's code:
public void WblockEntity()
{
Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
using (Transaction tr = db.TransactionManager.StartTransaction())
{
BlockTable acBlkTbl = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
if (acBlkTbl.Has("054010V"))
{
var blkTblRecId = acBlkTbl["054010V"];
using (Database newDb = new Database(true, false))
{
db.Wblock(blkTblRecId);
string fileName = "C:\\Users\\User\\OneDrive\\Desktop\\wblock.dwg";
newDb.SaveAs(fileName, DwgVersion.Newest);
}
}
tr.Commit();
}
}
public void WblockEntity() // ObjectId of the BlockTableRecord for the block
{
Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
using (Transaction tr = db.TransactionManager.StartTransaction())
{
BlockTable acBlkTbl = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
if (acBlkTbl.Has("054010V"))
{
ObjectIdCollection objIds = new ObjectIdCollection();
var blkTblRecId = acBlkTbl["054010V"];
var blkTblRec = tr.GetObject(blkTblRecId, OpenMode.ForRead) as BlockTableRecord;
foreach (var ObjId in blkTblRec)
{
objIds.Add((ObjectId)ObjId);
}
using (Database newDb = new Database(true, false))
{
db.Wblock(objIds, new Point3d(0, 0, 0));
string fileName = "C:\\Users\\User\\OneDrive\\Desktop\\wblock.dwg";
newDb.SaveAs(fileName, DwgVersion.Newest);
}
}
tr.Commit();
}
}