|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
09.10.2019, 15:12 | #1 | |
VBA. Как отфильтровать по DXF-кодам расширенные данные, находящиеся в списке?
Инженер кадастровый
Москва
Регистрация: 27.04.2010
Сообщений: 28
|
||
Просмотров: 5440
|
|
||||
Сидор Лютый,
Фильтровать расширенные данные можно только по группе 1001 (имя приложения).
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
|
||||
Инженер кадастровый Регистрация: 27.04.2010
Москва
Сообщений: 28
|
Цитата:
Благополучно все фильтруется при условии, что данные группы 1000 находятся на одном уровне с группой 1001. (Правда при этом получается, что объект может содержать только одну строку группы 1000, но пока это тоже не суть..) Как только убираешь строки 1000 в список, они становятся невидимыми для Select. Последний раз редактировалось Сидор Лютый, 09.10.2019 в 17:24. |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
мне подумалось, что автор спрашивает про что то типа:
Код:
|
|||
|
||||
Инженер кадастровый Регистрация: 27.04.2010
Москва
Сообщений: 28
|
Сергей812, вопрос не в том, как это сделать другими способами Я б не ковырял интернет целый день, а потом не писал сюда, чтобы выяснить, что могу перебирать объекты по одному..))
Вопрос в данном случае - как правильно сделать фильтр для Select ? |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,046
|
Цитата:
Цитата:
|
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
У меня повторить такую фильтрацию по 1000 не получилось, только по 1001 (Acad 2017)
Это говорит о том, что если у Вас, на вашем рабочем месте это получилось, не факт что получится где то еще и уж точно никто не гарантирует совместимости в дальнейшем. Сергей дело говорит, у Вас в объекте SSet01 и так уже все объекты приложения в наличии, просто пройтись по списку через For Each и переложить в другую коллекцию нужные объекты. Зачем тратить кучу времени на поиск способов фильтрации, если есть простое и надежное решение? В погоне за производительностью? Так VBA и скорость они в разных вселенных, как припарки при гангрене. Да и вообще использовать acSelectionSetAll с фильтом по расширенным данным... ну такое... лучше уж по пространству модели в цикле пробежаться, скорость та же, а контроля больше. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,046
|
|
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
Возможно ошибюсь, но всегда думал, что скорость VBA сильно зависит от скорости взаимодействия по COM и под "капотом" у этого фильтра, все тот же перебор.
С другой стороны, ну выполниться скрипт не за 5 сек, а за 6... много ли это изменит? Если нужна скорость, то на VBA писать и не стоило. В любом случае, если бы я писал для себя, я бы прошелся по модели... но на вкус все фломастеры разные... =) |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,046
|
|
|||
|
||||
Инженер кадастровый Регистрация: 27.04.2010
Москва
Сообщений: 28
|
Цитата:
В расширенных данных: Код:
Код:
В любом случае спасибо за обсуждение. |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
Наверняка есть и первое что приходит на ум:
Код:
все остальные проверки требуют получения и открытия объекта, а у автора фильтрация по XData... С другой стороны, кому как удобно, главное что бы задача решалась и иногда, долго работающая программа это ооооочень нужная вещь =)) |
|||
|
||||
Инженер кадастровый Регистрация: 27.04.2010
Москва
Сообщений: 28
|
В моем случае все примитивы находятся в модели. В различных слоях, с различными свойствами, с различными AppName. Только структура строки с кодом 1000 связывает примитивы, указывая, что они относятся к одному объекту. Поэтому никакого предварительного набора нет.
|
|||
|
||||
Если не хочешь проблем - забудь про это. Это случайный побочный эффект.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,046
|
имхо, неправильная организация данных приложения, вывернутая "наизнанку". Зачем плодить разные зарегистрированные приложения для совокупности примитивов, которые должны потом выбираться как одно целое?
|
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Какие исходные данные необходимы для расчёта мелкозаглубленного фундамента? | Двоечник | Основания и фундаменты | 2 | 19.01.2012 20:25 |
Можно ли суммировать данные атрибутов от одинаковых блоков? | Максим_Александрович | AutoCAD | 5 | 14.10.2011 09:31 |
VIEWPORT и расширенные данные | ===AAA=== | Программирование | 4 | 22.12.2005 12:17 |
Lisp и данные | paha | LISP | 9 | 26.08.2004 14:49 |