As variant:
[code]
static public ObjectIdCollection GetAllObjectIdsInBlockDef(ObjectId idBlockDef)
{
ObjectIdCollection ids = new ObjectIdCollection();
Database db = idBlockDef.Database;
Transaction trans = db.TransactionManager.StartTransaction();
try
{
BlockTableRecord btr = (BlockTableRecord)(trans.GetObject(idBlockDef, OpenMode.ForRead));
foreach (ObjectId id in btr) ids.Add(id);
trans.Commit();
}
finally
{
trans.Dispose();
}
return ids;
}
[/code]
Only for testing:
[code]
[CommandMethod("GetAllIdsInCurrentSpace")]
static public void GetAllIdsInCurrentSpace()
{
Autodesk.AutoCAD.EditorInput.Editor ed =
Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
Database db = HostApplicationServices.WorkingDatabase;
ObjectIdCollection ids = GetAllObjectIdsInBlockDef(db.CurrentSpaceId);
ed.WriteMessage("\nNumber of entities in current space: {0}",ids.Count);
}
[/code]