Где в справке искать метод .Select()?

Автор Тема: Где в справке искать метод .Select()?  (Прочитано 963 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн Gr.OmАвтор темы

  • ADN OPEN
  • Сообщений: 19
  • Карма: 0
Здравствуйте.
Вижу в .NET Reference Guide методы для выбора объектов от SelectAll до SelectWindowPolygon.
У объекта Editor наравне с ними вроде как должен быть и .Select. По крайней мере вижу это в примерах, которые выдает поисковик.
Но отдельно метод "Select" упоминается в справке только в контексте таблиц.
Почему я не могу его найти и где мне его искать?

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

  • Administrator
  • *****
  • Сообщений: 13933
  • Карма: 1794
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Где в справке искать метод .Select()?
« Ответ #1 : 26-10-2025, 23:13:16 »
Если я правильно понял что ты ищешь, то это Editor.GetSelection()
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Gr.OmАвтор темы

  • ADN OPEN
  • Сообщений: 19
  • Карма: 0
Re: Где в справке искать метод .Select()?
« Ответ #2 : 26-10-2025, 23:36:44 »
Нет, мне нужно ранее сделанный программно набор (selectionSet) дополнительно отфильтровать по кодам DXF.
Поисковик стабильно выдает мне пример метода Select, одна из перегрузок которого якобы позволяет указать в параметрах существующий набор и фильтр:
// Вызываем метод Select()
PromptSelectionResult result = ed.Select(
    previousSelection: initialResult.Value,
    filter: filter
);
VS2022 сам метод Editor.Select принимает, но на перечень параметров жалуется:


Поэтому и хочу выяснить, какие перегрузки допустимы.

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

  • Administrator
  • *****
  • Сообщений: 13933
  • Карма: 1794
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Где в справке искать метод .Select()?
« Ответ #3 : 26-10-2025, 23:45:10 »
Среди стандартных методов в AutoCAD.NET API такого нет. Скорее всего это какое-то расширение.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Gr.OmАвтор темы

  • ADN OPEN
  • Сообщений: 19
  • Карма: 0
Re: Где в справке искать метод .Select()?
« Ответ #4 : 27-10-2025, 00:11:34 »
Хотя да.. Если оставить один параметр, тогда уже редактор жалуется и на сам метод..



Видимо типичная выдумка AI.
Александр, тогда подскажите пожалуйста оптимальный путь для решения этой задачи (фильтрации ранее сделанной выборки)
Только начинаю изучать API, голова пухнет. Смотрю на Editor.SelectPrevious, но не вижу, чтобы он принимал какие-либо параметры. А мне нужно подсунуть фильтр.
.GetSelection использует фильтр, но не вижу как подсунуть какой-либо предварительный набор ему.
На VBA пусть с костылями, но решал эту задачу без перебора.. А тут вроде бы возможностей больше, но не вижу способа их применить.

Отмечено как Решение Gr.Om 27-10-2025, 00:23:21

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

  • Administrator
  • *****
  • Сообщений: 13933
  • Карма: 1794
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Где в справке искать метод .Select()?
« Ответ #5 : 27-10-2025, 00:16:48 »
Костыль - это загнать твой набор в набор предварительного выбора Editor.SetImpliedSelection, а затем использовать GetSelection с фильтром. При этом если был набор предварительного выбора, то он пропадает. Ну и команда должна быть с флагом Redraw. Или перебором. Если фильтр простой, то метод с перебором предпочтительней.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Gr.OmАвтор темы

  • ADN OPEN
  • Сообщений: 19
  • Карма: 0
Re: Где в справке искать метод .Select()?
« Ответ #6 : 28-10-2025, 00:37:30 »
И все же еще раз. Может я чего-то недопонимаю в великом и могучем .NET.
Если в VBA я могу в методе .Select выбрать любой способ выделения, и каждый из этих способов может сделать DXF-фильтрацию:



То для API это уже неподъемная задача?!

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

  • Administrator
  • *****
  • Сообщений: 13933
  • Карма: 1794
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Где в справке искать метод .Select()?
« Ответ #7 : 28-10-2025, 00:52:02 »
Ну и где ты нашел, что в VBA для метода Select на вход можно подать набор?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Gr.OmАвтор темы

  • ADN OPEN
  • Сообщений: 19
  • Карма: 0
Re: Где в справке искать метод .Select()?
« Ответ #8 : 28-10-2025, 09:18:32 »
Ровно так же, как и в NET. Создание выборки с использованием другой выборки возможно (только?) через .SelectPrevious (на VBA это .Select acSelectionSetPrevious), собственно на картинке он и используется.
Вопрос был в том, что на VBA все способы создания SelectionSet могут использовать фильтрацию, а в NET почему-то только .GetSelection (.SelectOnScreen в VBA) удостоился этой чести.
Из того, что успел изучить в части методов получения наборов выделения, .NET предоставляет ровно тот же перечень инструментов только с обрезанной функциональностью. Поэтому я собственно и задался вопросом. Т.к. только начал штудировать Reference Guide по .NET, возможно далеко не всю картину вижу. Но то, что вижу, что-то как-то расстроило.

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

  • Administrator
  • *****
  • Сообщений: 13933
  • Карма: 1794
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Где в справке искать метод .Select()?
« Ответ #9 : 28-10-2025, 12:28:24 »
а в NET почему-то только .GetSelection (.SelectOnScreen в VBA) удостоился этой чести.
Нет. Смотри внимательно документацию.
https://help.autodesk.com/view/OARX/2024/ENU/?guid=OARX-ManagedRefGuide-Autodesk_AutoCAD_EditorInput_Editor_SelectWindow_Point3d_Point3d_SelectionFilter


Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Gr.OmАвтор темы

  • ADN OPEN
  • Сообщений: 19
  • Карма: 0
Re: Где в справке искать метод .Select()?
« Ответ #10 : 28-10-2025, 14:10:47 »
Да, был неправ частично..
Вот так нагляднее видно, что большая часть поддерживает фильтрацию.



Что в целом не отменяет меньшую функциональность по сравнению с VBA.

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

  • Administrator
  • *****
  • Сообщений: 13933
  • Карма: 1794
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Где в справке искать метод .Select()?
« Ответ #11 : 29-10-2025, 00:06:29 »
Что в целом не отменяет меньшую функциональность по сравнению с VBA.
Никто не мешает использовать в AutoCAD.NET API элементы COM/ActiveX (т.е. то, что есть в VBA).
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение