В этой статье для начинающих расскажу, как получать с элементов значения параметров типа и экземпляра. Ничего сложного тут нет, просто делается это по-разному. Что такое параметры типа и экземпляра, читайте в отдельной статье.

Параметры экземпляра

Когда мы получаем данные напрямую из элемента с помощью нода Element.GetParameterValueByName, то получаем параметры экземпляра.

На скриншоте внизу скрипт делает следующее: получаем категорию «Воздуховоды» → получаем все элементы этой категории → получаем из каждого воздуховода значение параметра «Длина».

Пример скрипта для получения значения из параметра экземпляра
Пример скрипта для получения значения из параметра экземпляра

Если использовать другой нод — Element.Parameters, — то с его помощью можно получить все допустимые параметры экземпляра, которые есть у элемента. Некоторые из них могут быть не видны в окне свойств, но всё равно будут у элемента, поэтому иногда полезно использовать этот нод, чтобы убедиться, что нужная информация есть в параметрах экземпляра. Ну или что её нет. Параметров типа тут как раз и не будет.

Все параметры экземпляра у воздуховодов. В данном примере у одного воздуховода аж 52 параметра, пусть и не все из них несут какую-то пользу
Все параметры экземпляра у воздуховодов. В данном примере у одного воздуховода аж 52 параметра, пусть и не все из них несут какую-то пользу

Вот так можно получать данные из параметров экземпляра.

Параметры типа

Чтобы получить параметры типа, нам недостаточно подать список элементов на Element.GetParameterValueByName. Сначала придётся «провалиться» в тип элемента и уже с него получить нужную информацию.

Для этого в Динамо 2.0+ есть специальный нод Element.ElementType. С его помощью мы переходим от экземпляра типа к самому типу и уже с типа получаем данные. Выглядит это на примере воздуховодов вот так:

Получаем значение параметра типа с воздуховода
Получаем значение параметра типа с воздуховода

Получили список элементов → получили список типов этих элементов → получаем значения параметров с помощью всё того же ГетПараметра.

В Динамо 1.3 нода Element.ElementType нет, там есть FamilyInstance.GetType, он делает то же самое.

Обновления статей удобно получать в Телеграм-канале «Блог Муратова про Revit MEP». Подписывайтесь и приглашайте коллег. Можно обсудить статью и задать вопросы в специальном чате канала.

Бесплатные обзоры ваших моделей

Раз в две недели провожу «Ревит-линчи» — разбираю файлы семейств и проектов пользователей и отвечаю на вопросы по Ревиту и БИМ-технологиям. Дату и ссылку на Ревит-линч публикую в Телеграм-канале. Приходите, там интересно.

Отблагодарить автора

Я много времени уделяю блогу. Если хотите отблагодарить меня, то можете сделать небольшой подарок (именно подарок, такой перевод не облагается налогом).