Копирование атрибутов в блок

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

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

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

  • ADN OPEN
  • ***
  • Сообщений: 152
  • Карма: 2
Добрый день!
Передо мной стоит задача: есть два блока, в одном из них есть атрибуты. Мне нужно второй блок обеспечить такими же атрибутам как в первом.
Можно ли описания атрибутов скопировать в блок? В каком направлении лучше двигаться?

Отмечено как Решение Александр Ривилис 15-09-2019, 12:11:34

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Копирование атрибутов в блок
« Ответ #1 : 14-09-2019, 20:41:17 »
Можно ли описания атрибутов скопировать в блок? В каком направлении лучше двигаться?
Можно. Двигаться в направлении Document.CopyObjects. Нужно отобрать определеня атрибутов в одном из блоков и скопировать во второй. Если второй блок уже имел вставки, то необходимо будет выполнить команду _ATTSYNC
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 152
  • Карма: 2
Re: Копирование атрибутов в блок
« Ответ #2 : 15-09-2019, 11:04:24 »
Да, получилось, я вместо AttributeDefinition пытался скопировать AttributeReference, у меня это не получалось, можно ли как то имея ссылку на AttributeReference получить ссылку на AttributeDefinition?

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Копирование атрибутов в блок
« Ответ #3 : 15-09-2019, 12:11:22 »
можно ли как то имея ссылку на AttributeReference получить ссылку на AttributeDefinition?
Прямой связи между ними нет. Если из вставки блока не удалялись и не добавлялись AttributeReference'ы, которым нет соответствующих AttributeDefinition, то они должны совпадать по порядку (с учетом пропуска константных атрибутов - для них во вставке блока нет атрибутов). Т.е. первый AttributeReference соответствует первому AttributeDefinition, второй - второму, и т.д.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 152
  • Карма: 2
Re: Копирование атрибутов в блок
« Ответ #4 : 16-09-2019, 10:42:16 »
А как правильно отправить команду на обновление атрибутов из программы?
Я использовал SendCommand и передачу имени блока в качестве аргумента. Это работает, но до тех пор, пока в блоке есть атрибуты.
Если получается так, что я удалил из блока все атрибуты, то выскакивает ошибка - Блок отсутствует в словаре атрибутов или типа того (Если атрибуты в блоке есть, то вроде все ок). Если я вручную команду передаю и вместо имени блока делаю выбор блока, тогда все обновляется и я вижу что в блоке атрибуты отсутствуют.
Как нужно сформировать строку команды, чтобы ее отправить в SendCommand?

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Копирование атрибутов в блок
« Ответ #5 : 16-09-2019, 10:52:26 »
Если получается так, что я удалил из блока все атрибуты, то выскакивает ошибка - Блок отсутствует в словаре атрибутов или типа того (Если атрибуты в блоке есть, то вроде все ок). Если я вручную команду передаю и вместо имени блока делаю выбор блока, тогда все обновляется и я вижу что в блоке атрибуты отсутствуют.
Как нужно сформировать строку команды, чтобы ее отправить в SendCommand?
Не уверен, что это сработает. Поэтому проще найти все вставки этого блока и удалить из них все вставки атрибутов.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 152
  • Карма: 2
Re: Копирование атрибутов в блок
« Ответ #6 : 16-09-2019, 16:10:55 »
Понятно, спасибо большое!