Последние новости
Архитектурные изображения с Nano Banana 2: гид по промптам для интерьеровКонсорциум SGLang сосредоточится на открытом ИИ-инференсеДом Кенго Кумы с соломенной крышей получил награду в 2026 годуStaera представила Lightwire: передача данных между ИИ-чипами с помощью светаРендеринг в Blender из командной строки: отдельный кадр и анимацияCORTAO стал открытым: Fenris Creations поделилась техникой затенения в реальном времениNeuweilerstrasse: Volpatohatz выиграла конкурс на жилой дом в БазелеУправление файлами проектов Blender: сохранение, резервные копии и путиBlender 5.3 Project Setup: настройки и библиотеки ресурсов для каждого проектаВышла llama.cpp v1.0.0: эпоха API для локальной ИИ-инфраструктуры
УрокиRevit

Фильтры видов в Revit API: создание и управление

Фильтры видов в Revit API позволяют разделять элементы по категориям и правилам параметров или по идентификаторам выбранных элементов. В руководстве описаны создание фильтров, их применение к виду, а также настройка видимости и графики.

Светлая минималистичная дизайн-студия, где элементы архитектурного чертежа выделены разными цветамиИИ-изображение
Иллюстрация создана с помощью ИИ.Изображение: 3dsınıfı / FCA AI

Коротко

  1. ParameterFilterElement работает с категориями и одним или несколькими правилами.
  2. SelectionFilterElement использует идентификаторы элементов, включённых в фильтр, а не правила.
  3. View.SetFilterVisibility() управляет видимостью, а View.SetFilterOverrides() — графическими настройками.
  4. В Revit 2024 внутреннее хранение ElementId перешло на 64 бита; некоторый код, собранный для старого API, может потребовать повторной компиляции.

Чему вы научитесь в этом руководстве?

Фильтр видов в Revit API позволяет управлять тем, какие элементы отображаются в виде и как они выглядят. В этом руководстве рассматриваются два типа фильтров: ParameterFilterElement, который использует условия категорий и параметров, и SelectionFilterElement, состоящий из идентификаторов определённых элементов. Пошагово разберём создание фильтра, добавление его к виду, изменение видимости и применение графических настроек.

В архитектурной документации такой подход можно использовать, например, чтобы скрыть в виде стены, соответствующие заданным условиям, или выделить выбранные элементы другим цветом линий. Это примеры, поясняющие метод; категории и правила следует выбирать с учётом потребностей проекта.

Требования и проверка версии

Руководство посвящено разработке плагинов с помощью Revit API, а не последовательности команд в пользовательском интерфейсе Revit. Описание API в источниках охватывает создание фильтра и работу с ним в документе Revit и виде. Требования к определённому типу аккаунта, оплате или дополнительному оборудованию не указаны.

Важно использовать документацию API для целевой версии Revit. В документации Autodesk по API Revit 2024 указано, что разработчики могут обращаться к справочному файлу RevitAPI.chm и решению Samples\SDKSamples.sln, входящим в SDK. Не следует считать, что код, написанный для старой версии, без изменений заработает в новой.

Например, в Revit 2024 внутреннее хранение значения ElementId было расширено с 32 до 64 бит. Свойство Value, возвращающее полное 64-битное значение, пришло на смену прежнему свойству IntegerValue. Autodesk сообщает, что в коде, собранном для предыдущих версий API, могут возникать проблемы с преобразованием типов и что такой код необходимо пересобрать для API Revit 2024. Поэтому при разработке фильтров следует сверяться с документацией целевой версии для используемых классов и методов.

Пошагово: создание фильтра параметров

  1. Определите категории и условия. ParameterFilterElement использует одну или несколько допустимых категорий и правила, применяемые к элементам этих категорий. До создания фильтра определите, какие элементы должны попасть в область его действия и какие значения параметров нужно искать. В примере Autodesk выбрана категория стен; среди условий — значение функции стены “Exterior” и длина, равная заданному порогу или превышающая его.

  2. Создайте фильтр и назначьте ему правила. ParameterFilterElement.Create создаёт элемент фильтра на основе документа, имени фильтра и списка категорий. После подготовки правил они назначаются фильтру с помощью SetRules. В источнике приведены примеры условий равенства, «больше или равно» пороговому значению и начала текста с заданной строки. Это не означает, что во всех проектах будут использоваться одинаковые параметры: правило должно соответствовать нужным категориям и параметрам.

  3. Свяжите фильтр с видом. View.AddFilter() применяет фильтр к целевому виду. Однако этот вызов использует графические переопределения по умолчанию, поэтому вид может визуально не измениться, даже если фильтр уже применён. Рассматривайте наличие фильтра и то, как он отображается в виде, как отдельные вопросы.

  4. Настройте видимость. View.SetFilterVisibility() определяет, будут ли видны элементы, соответствующие условиям фильтра. Если фильтр ещё не применён к виду, этот метод одновременно добавляет его туда, поэтому отдельно вызывать AddFilter() необязательно. Например, чтобы скрыть совпавшие элементы, настройте видимость соответствующим образом.

  5. Примените графические настройки. Чтобы изменить свойства отображения подходящих под фильтр элементов, например цвет линий, можно использовать View.SetFilterOverrides(). Текущие настройки доступны через View.GetFilterOverrides(). Таким образом, фильтр можно применять не только для управления видимостью, но и для визуального выделения элементов в виде.

Пошагово: фильтр выбора и редактирование фильтров

  1. Определите элементы для фильтра. SelectionFilterElement работает с идентификаторами группы элементов, а не с правилами параметров. В примере из источника сначала собираются марки помещений в определённом виде, затем в список добавляются идентификаторы марок, соответствующих условию номера помещения. В этом случае область действия определяется выбранными идентификаторами элементов, а не правилами фильтра.

  2. Создайте фильтр выбора. Элемент фильтра создаётся с помощью SelectionFilterElement.Create, а идентификаторы элементов назначаются ему через SetElementIds. Идентификатор фильтра добавляется в целевой вид с помощью View.AddFilter(). Проверка правильности списка элементов поможет избежать неожиданных результатов.

  3. При необходимости добавьте графическое переопределение. В примере Autodesk считываются текущие настройки фильтра вида, цвет линий задаётся синим, а результат применяется через View.SetFilterOverrides(). Пример показывает, как добавить графическую настройку к фильтру выбора; цвет и другие параметры отображения следует выбирать в соответствии со стандартами проекта.

  4. Проверьте существующие фильтры. View.GetFilters() возвращает идентификаторы фильтров в виде. Видимость конкретного фильтра можно проверить с помощью View.GetFilterVisibility(), а графические настройки — через View.GetFilterOverrides(). View.RemoveFilter() удаляет фильтр из вида. Чтобы изменить текущие настройки, сначала прочитайте значения фильтров, а затем примените подходящие графические настройки с помощью View.SetFilterOverrides().

В примерах Autodesk операции, изменяющие документ, выполняются внутри транзакции. При создании фильтра, связывании его с видом и изменении графических настроек учитывайте, что эти действия изменяют документ. Проверка функций по отдельности помогает понять, связана ли проблема с правилом фильтра, видимостью или графическими настройками.

Частые ошибки и дальнейшие шаги

Фильтр добавлен, но вид не изменился: AddFilter() использует графические настройки по умолчанию и сам по себе может не привести к заметным изменениям. Проверьте SetFilterVisibility() для управления видимостью и SetFilterOverrides() для графических различий.

Правило не находит ожидаемые элементы: Ещё раз проверьте допустимые категории фильтра и параметры, используемые в условиях. Фильтр параметров ограничен категорией, поэтому элемент другой категории не попадёт в фильтр, даже если соответствует правилу.

Фильтр выбора содержит не те элементы: Проверьте список идентификаторов, сформированный перед вызовом SetElementIds, и условия, по которым он был составлен. Этот тип фильтра не применяет правила параметров автоматически: идентификаторы целевых элементов нужно явно назначить фильтру.

Плагин не работает в другой версии Revit: Проверьте изменения API в целевой версии. Изменение ElementId на 64-битный тип в Revit 2024 может потребовать повторной компиляции кода, собранного для более старого API. Перед разработкой или обновлением полезно проверить решение на тестовом виде и сверить используемую документацию API с нужной версией.

Для архитектурных, интерьерных и визуализационных команд фильтры можно рассматривать как способ единообразно управлять группами элементов на видах. Фильтр параметров задаёт критерии через категории и правила, а фильтр выбора нацелен непосредственно на определённые группы элементов. Выбор подхода зависит от стандартов вида и способа отбора элементов. Совместимость плагинов и переход между версиями также следует учитывать в рабочем процессе.

При внедрении начните с небольшого тестового вида: сначала ограничьте область действия, затем отдельно проверьте соответствие фильтру, видимость и графические настройки. Когда результат будет соответствовать ожиданиям, адаптируйте подход к стандартам проекта.

Источники и лицензия

Руководство подготовлено на основе раздела “View Filters” из Revit API Developers Guide от Autodesk и справочных материалов Autodesk об изменениях API Revit 2024. Согласно указанной в источниках информации, материалы доступны свободно; текст представляет собой русскую адаптацию технических описаний из источников.

Источники

Источников: 2
H
help.autodesk.comhelp.autodesk.com/cloudhelp/2018/ENU/Revit-API/Revit_API_Developers_Guide/Basic_Interaction_with_Revit_Elements/Views/View_Filters.html
Пересказ
H
help.autodesk.comhelp.autodesk.com/view/RVT/2024/ENU
Пересказ

Тексты источников не перепечатываются; короткие цитаты отмечены, остальное — наш пересказ и комментарий.

Мнение 3dsınıfı
3dОценка редактора

Фильтры Revit API помогают офисам упорядоченно управлять группами элементов на видах. Правила, привязанные к параметрам, полезны в повторяющихся ситуациях, а фильтр выбора позволяет ограничить область действия заранее определёнными элементами.

В источниках нет информации о ценах или лицензировании для офисов и студентов в Турции, поэтому эти вопросы нужно изучить отдельно при выборе решения. На практике важно не упускать из виду совместимость версий: изменения Revit API могут повлиять на старые плагины. Перед переходом к рабочим файлам разумнее протестировать фильтры и плагин в целевой версии.

Частые вопросы

Как создать фильтр параметров в Revit API?

С помощью `ParameterFilterElement.Create` задаётся область категорий, затем подготавливаются правила фильтра и назначаются через `SetRules`. После этого фильтр можно связать с видом и настроить его видимость и графические параметры.

Чем фильтр выбора в Revit API отличается от фильтра параметров?

Фильтр параметров работает на основе категорий и правил. Фильтр выбора использует идентификаторы добавленных в него элементов, а не проверяет правила.

Влияют ли изменения API Revit 2024 на старые плагины?

В Revit 2024 хранение `ElementId` стало 64-битным, а свойство `Value` пришло на смену `IntegerValue`. Autodesk отмечает, что в некоторых программах, собранных для предыдущих версий API, могут возникать проблемы с типами и что их может потребоваться пересобрать для API Revit 2024.

Комментарии и форум — на турецком языке.Присоединиться к обсуждению
+

Похожие новости