Получение размеров атрибута

Автор Тема: Получение размеров атрибута  (Прочитано 4677 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AlexxАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 76
  • Карма: 1
Продолжая мучительное переписывание кода с VBA на .NET, столкнулся с новой проблемой. В коде на VBA, я получал BlockReference, вызывал у него метод GetAttributes и получал коллекцию AttributeReference, для которых можно было получить BoundingBox.

Сейчас же я получаю BlockReference, получаю у него AttributeCollection а там AttributeDefinition, у которых, соответственно нет размеров  :(

Что я опять делаю не так?

Спасибо!

Оффлайн AlexxАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 76
  • Карма: 1
Re: Получение размеров атрибута
« Ответ #1 : 31-07-2015, 13:18:51 »
Дико извиняюсь, AttributeDefinition я оказывается получаю не из BlockReference, а из BlockDefinition (BlockTableRecord), что логично...
Проблема оказалась в том, что проходя по блоку листа, я почему-то не встречаю ни одного BlockReference, хотя блоки на листе есть... А встречаю BlockDefinition... (((

Задача в целом такая: обойти все листы и все объекты на них. Получить границы объектов относительно листа.
на VBA я для каждого листа в блоке листа перебирал нужные мне объекты ссылки на блоки, получал при помощи GetAttributes()  ссылки на атрибуты и читал их координаты, затем получал блок, на который указывает ссылка, обходил в нем все объекты и транслировал координаты этих объектов относительно листа.

Видимо, на .NET нужен другой подход. Тут я для каждого листа получаю его блок и перебираю на нем нужные мне объекты, при этом вместо ссылок на блоки я получаю сами блоки... и атрибуты, вместо ссылок на атрибуты.... Просто праздник какой-то )))

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Получение размеров атрибута
« Ответ #2 : 31-07-2015, 13:42:19 »
Проблема оказалась в том, что проходя по блоку листа, я почему-то не встречаю ни одного BlockReference, хотя блоки на листе есть... А встречаю BlockDefinition... (((
Этого не может быть, потому что не может быть никогда. В блоке (BlockDefinition) не могут содержаться другие BlockDefinition.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн AlexxАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 76
  • Карма: 1
Re: Получение размеров атрибута
« Ответ #3 : 31-07-2015, 14:25:18 »
Все, нашел где я лоханулся! Я после проверки на BlockReference тут же получал для него него BlockTableRecord и уже с ним работал  ::)

Сроки поджимают, внимание рассеивается...