добраться до атрибутов блока

Автор Тема: добраться до атрибутов блока  (Прочитано 14388 раз)

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

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

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
Re: добраться до атрибутов блока
« Ответ #15 : 23-09-2018, 19:19:50 »
Цитата: simson43 от 23-09-2018, 19:08:14
ее же надо передать по ссылке будет? а ее нельзя передать по ссылке.
А зачем её передавать по ссылке?
и то верно!
в таком виде работает
Код - C# [Выбрать]
  1. public void FormatAttributeBlocks(ref BlockReference myBlock, Transaction myTransaction)

Кстати, а в какой версии ты проверяешь?
2108

Цитата: simson43 от 23-09-2018, 18:29:27
эта строчка разве не спасает ситуацию?
Цитата: simson43 от 23-09-2018, 17:33:39

    if (bl.IsDynamicBlock) btid = bl.DynamicBlockTableRecord;
Нет конечно.

кажется у вас и стащил эти строчки
http://adn-cis.org/forum/index.php?topic=1105.0

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: добраться до атрибутов блока
« Ответ #16 : 23-09-2018, 19:23:37 »
2108
Это "версия" автомобиля Жигули, а не AutoCAD :-)
кажется у вас и стащил эти строчки
http://adn-cis.org/forum/index.php?topic=1105.0
Это уж точно не у меня.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
Re: добраться до атрибутов блока
« Ответ #17 : 23-09-2018, 19:25:35 »
2018*

определенно у вас) сообщение ваше ведь.
у девушки про динамические ни слова вовсе.
как в таком случае будет верно выглядеть?

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

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
Re: добраться до атрибутов блока
« Ответ #18 : 23-09-2018, 19:28:48 »
проверил на быстренько собраном простейшем динамическом блоке, поменял параметры подвигал подергал, запустил код- сработало...
я тоже усомнился.. но вроде выглядит законно. присвоил ведь динамический blocktable
а дальше тип blocktablerecord
DynamicBlockTableRecord такого типа и нет кажется...

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: добраться до атрибутов блока
« Ответ #19 : 23-09-2018, 19:29:06 »
определенно у вас) сообщение ваше ведь.
у девушки про динамические ни слова вовсе.
как в таком случае будет верно выглядеть?
Ты про это: http://adn-cis.org/forum/index.php?topic=1105.msg6224#msg6224 ???
Обрати внимание для чего используется там:
Код - C# [Выбрать]
  1.               AcDb.ObjectId idBtr;
  2.               if (bRef.IsDynamicBlock)  idBtr = bRef.DynamicBlockTableRecord;
  3.                             else        idBtr = bRef.BlockTableRecord;
Только (!!!) для получения имени блока, чтобы для динамического блока не получить имя "*UNNN" вместо имени "SHTAMP". Но внутрь этого блока в коде мы не лезем.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: добраться до атрибутов блока
« Ответ #20 : 23-09-2018, 19:31:49 »
проверил на быстренько собраном простейшем динамическом блоке, поменял параметры подвигал подергал, запустил код- сработало...
Ты в один блок вложил модифицированный динамический блок? Тогда у него изменилось имя на "*UNNN" и ты его не обрабатывал. Так что ничего сработать не могло на том коде, который ты показывал выше.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
Re: добраться до атрибутов блока
« Ответ #21 : 23-09-2018, 19:34:24 »
вы как всегда правы(

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: добраться до атрибутов блока
« Ответ #22 : 23-09-2018, 19:35:47 »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
Re: добраться до атрибутов блока
« Ответ #23 : 23-09-2018, 20:11:13 »
запутался..
т е перебирая всю blocktable я не получу всех блоков?
нужно еще getanonymous смотреть?

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: добраться до атрибутов блока
« Ответ #24 : 23-09-2018, 20:51:15 »
нужно еще getanonymous смотреть?
Угу. Возможно и еще сложнее. Но я не увидел постановки задачи. Поэтому сложно что-то советовать.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
Re: добраться до атрибутов блока
« Ответ #25 : 23-09-2018, 22:31:47 »
да она проста... перебрать все блоки ( и блоки в блоках).. все вставки все все все и залезть в атрибут каждого
разве перебирая все оъекты в BlockTableRecord пространства я переберу не все объекты данного пространства?
где можно это почитать? где это хорошо описано?

Отмечено как Решение simson43 23-09-2018, 22:50:12

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: добраться до атрибутов блока
« Ответ #26 : 23-09-2018, 22:39:56 »
да она проста... перебрать все блоки ( и блоки в блоках).. все вставки все все все и залезть в атрибут каждого
разве перебирая все оъекты в BlockTableRecord пространства я переберу не все объекты данного пространства?
где можно это почитать? где это хорошо описано?
Тогда всё намного проще.
1. Ты проходишь о всем BlockTableRecord в BlockTable
2. Находишь в каждом BlockTableRecord все BlockReference
3. В каждом BlockReference находишь все AttributeReference и модифицируешь их по своим правилам
Тебя не должна интересовать вложенность блоков, динамические они или нет (разве что если тебя интересуют не все блоки, а блоки с определёнными именами) так как ты всё-равно при такой схеме их обработаешь.
Никакая рекурсия не нужна.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: добраться до атрибутов блока
« Ответ #27 : 23-09-2018, 23:39:18 »
Напоминаю про правило "Один вопрос - одна тема". Тему разделил: http://adn-cis.org/forum/index.php?topic=8745.0
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение