Teigha遍历所有实体
public static ObjectIdCollection GetAllEntitiesByLayerId(Database database, string layerName)
{
ObjectIdCollection ids = new ObjectIdCollection();
using (var t = database.TransactionManager.StartTransaction())
{
using (var table = (BlockTable)database.BlockTableId.GetObject(OpenMode.ForRead))
{
using (var enumerator = table.GetEnumerator())
{
while (enumerator.MoveNext())
{
using (var record = (BlockTableRecord)enumerator.Current.GetObject(OpenMode.ForRead))
{
foreach (ObjectId id in record)
{
var entity = (Entity)id.GetObject(OpenMode.ForRead, false);
if (entity.Layer == layerName)
{
ids.Add(id);
}
}
}
}
}
}
}
return ids;
}