GeometricExtents出错了,调试看不到文字
2024年11月3日小于 1 分钟
不是所有的元素都有包围盒,一个块里面只有属性定义时,包围盒为 null
包围盒获取出错 NullExtents
- AttributeDefinition(属性定义) 没有 Bounds,所以 GeometricExtents 报错,
- AttributeReference(属性参照) 有
- 同时一些 xline,ray 等等也是没有,它只能获取 Position.
public static bool HasGeometricExtents(this BlockReference blockReference)
{
bool hasExtents = false;
using var brt = (BlockTableRecord)blockReference.BlockTableRecord.GetObjectForRead();
foreach (var objId2 in brt)
{
using var ent2 = objId2.GetObjectForRead();
if (!(ent2 is AttributeDefinition))
{
// 有任意一个元素,并且不是属性文字,就能拿到包围盒。
hasExtents = true;
break;
}
}
return hasExtents;
}