Как получить блокмин BlockReference в поле зрения - PullRequest
0 голосов
/ 08 июня 2018

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

1 Ответ

0 голосов
/ 08 июня 2018

Выполнение 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 будут другими.

...