跳转至

GeometricExtents出错了,调试看不到文字

不是所有的元素都有包围盒,一个块里面只有属性定义时,包围盒为 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;
}

评论