Расскажу, что делать с выпадающими списками, чтобы они не сбоили.

Проблема

Бывает ситуация, когда запускаю скрипт в Проигрывателе Динамо, а он выдаёт ошибку. Открываю скрипт в Динамо и вижу, что ноды с выпадающими списками пустые. Почему такое происходит, не знаю, но оно происходит и раздражает. В моей практике такое обычно случается с нодом Categories.

Накидал возможное начало скрипта для иллюстрации ошибки
Накидал возможное начало скрипта для иллюстрации ошибки

Решение

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

Для этого используйте ноды ByName. В этом случае вам нужно будет задать текстом имя категории или типа семейства, но сбоить ничего не будет. И от языка Ревита зависеть тоже не будет.

Примеры нодов ByName
Примеры нодов ByName

С их использованием скрипт будет выглядеть вот так:

Использование нодов ByName для получения категории или типов семейств
Использование нодов ByName для получения категории или типов семейств

Ошибки уже нет, всё работает замечательно.

С этим методом связаны два вопроса:

  1. Что за странное обозначение для категории и где его взять?
  2. Что делать, если надо выбирать для скрипта новые категории/типы семейств и т. д.?

Отвечаю. Посмотреть обозначения можно в гугл-таблице. Её собрали какие-то зарубежные коллеги, она на английском языке, это единственное препятствие. Я её пересохранил к себе, вдруг удалят.

В целом в ней всё понятно. Слева у вас список категорий Ревита без аннотаций и марок, справа под столбцом Y будут имена категорий такими, какими их видит внутри себя Ревит. Вот это имя вам и нужно.

Пример таблицы по ссылке
Пример таблицы по ссылке

В примере у меня была категория «Оборудование». На английском она звучит Mechanical Equipment. Ищу это категорию в первом столбце, потом ищу соответствие в столбце Built-In Category Name и копирую его к себе в скрипт. Именно из-за того, что это встроенное в Ревит имя категории, программа не будет сбиваться, если вдруг изменился язык Ревита.

На второй вопрос ответ такой: можно сделать так, что имя семейства или категории нужно будет вводить руками в Проигрывателе Динамо. Это не так удобно, как выпадающий список, но, во-первых, это плата за надёжность, а во-вторых, выбирать нужный тип или категорию из огромного выпадающего списка — тоже так себе удовольствие.

Чтобы в Проигрыватель выводилось поле для заполнения, заменю Code Block на нод String, нажму на него правой кнопкой мыши и проверю, что там стоит галочка «Является вводом».

Такие ноды будут выводится в Проигрыватель Динамо
Такие ноды будут выводится в Проигрыватель Динамо

Чтобы эти ноды не просто выводились в Проигрыватель, но ещё и были понятно подписаны, то нужно два раза кликнуть по заголовку нода String и ввести нужный текст.

Этот текст будет выводиться в Проигрывателе
Этот текст будет выводиться в Проигрывателе
Если нажать на кнопку-калькулятор, то появятся поля для заполнения
Если нажать на кнопку-калькулятор, то появятся поля для заполнения

На этом всё. Приятного динамитто.

Подписаться на обновления блога

в Телеграм-канале «Блог Муратова про Revit MEP»