Как получить Boxmin Boxmin в поле зрения

Я добавляю некоторую сущность в блок и добавляю ссылку в область просмотра. Я кодировал "новый blockReference(blockName).boxmin", и он будет ловить исключение "NullReferenceException". какой еще код мне нужно добавить? Или есть другой способ получить размер группы объектов.

1 ответ

Решение

Делать 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 в том, что BoxMin а также BoxMax выровнены по мировой оси, поэтому необходимо знать положение в мире, чтобы вычислить прямоугольник. Если вы вращаете или переводите BlockReference BoxMin а также BoxMax будет другим.

Другие вопросы по тегам