[CommandMethod("WBD")]
public void WBDhandler() // This method can have any name
{
Document doc = Application.DocumentManager.MdiActiveDocument;
Database currentDb = doc.Database;
ObjectIdCollection copiedIds = new ObjectIdCollection();
Database tempDb = null;
using (Database srcDb = new Database(false, false))
{
srcDb.ReadDwgFile("C:\\srcDwg.dwg", FileShare.Read, false, "");
using (Transaction tr = srcDb.TransactionManager.StartTransaction())
{
BlockTableRecord ms = tr.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(srcDb), OpenMode.ForRead) as BlockTableRecord;
foreach (ObjectId id in ms)
{
copiedIds.Add(id);
}
tr.Commit();
tempDb = srcDb.Wblock(copiedIds, Point3d.Origin);
}
if (tempDb != null)
{
currentDb.Insert(Matrix3d.Identity, tempDb, true);
tempDb.Dispose();
}
}
}