如何在视野中获取 BlockReference 的 boxmin

How to get BlockReference's boxmin in eyeshot

我将一些实体添加到块中,并将引用添加到视口中。 我编码 "new blockReference(blockName).boxmin" , 它将捕获异常 "NullReferenceException"。 我还需要添加什么代码? 或者它有另一种方法来获取组实体框大小。

执行 new blockReference(blockName).BoxMin 不会重新生成块。 获取已插入视口中的块并检查该对象边界框。

假设块名是 "Block1" 你可以这样做:

var br = viewportLayout1.Entities.OfType<BlockReference>()
                                 .FirstOrDefault(b => b.BlockName == "Block1");

if(br != null)
{
    var boxMin = br.BoxMin;
    var boxMax = br.BoxMax;
}

你需要 ViewportLayout 中的方块的原因是 BoxMinBoxMax 与世界轴对齐,所以必须知道在世界中的位置才能计算盒子。如果旋转或平移 BlockReferenceBoxMinBoxMax 将不同。