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

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


person Hsin Hsien-Huang    schedule 08.06.2018    source источник


Ответы (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 будут другими.

person Franck    schedule 08.06.2018