Расскажу, что делать с выпадающими списками, чтобы они не сбоили.
Проблема
Бывает ситуация, когда запускаю скрипт в Проигрывателе Динамо, а он выдаёт ошибку. Открываю скрипт в Динамо и вижу, что ноды с выпадающими списками пустые. Почему такое происходит, не знаю, но оно происходит и раздражает. В моей практике такое обычно случается с нодом Categories.
![Накидал возможное начало скрипта для иллюстрации ошибки Накидал возможное начало скрипта для иллюстрации ошибки](https://muratovbim.pro/wp-content/uploads/2022/12/pub_5ed135346dcd086841870a7a_5ed5c62d7e78ba3b541fe29a.png)
Решение
Выпадающие списки ненадёжны, поэтому лучше выбирать категорию или тип семейства чуть более сложным и стабильным способом. Через имя категории или типа семейства.
Для этого используйте ноды ByName. В этом случае вам нужно будет задать текстом имя категории или типа семейства, но сбоить ничего не будет. И от языка Ревита зависеть тоже не будет.
![Примеры нодов ByName Примеры нодов ByName](https://muratovbim.pro/wp-content/uploads/2022/12/pub_5ed135346dcd086841870a7a_5ed5c6b7ce461a662171491f.png)
С их использованием скрипт будет выглядеть вот так:
![Использование нодов ByName для получения категории или типов семейств Использование нодов ByName для получения категории или типов семейств](https://muratovbim.pro/wp-content/uploads/2022/12/pub_5ed135346dcd086841870a7a_5ed5c73ff0ab5e1f549cde84.png)
Ошибки уже нет, всё работает замечательно.
С этим методом связаны два вопроса:
- Что за странное обозначение для категории и где его взять?
- Что делать, если надо выбирать для скрипта новые категории/типы семейств и т. д.?
Отвечаю. Посмотреть обозначения можно в гугл-таблице. Её собрали какие-то зарубежные коллеги, она на английском языке, это единственное препятствие. Я её пересохранил к себе, вдруг удалят.
В целом в ней всё понятно. Слева у вас список категорий Ревита без аннотаций и марок, справа под столбцом Y будут имена категорий такими, какими их видит внутри себя Ревит. Вот это имя вам и нужно.
![Пример таблицы по ссылке Пример таблицы по ссылке](https://muratovbim.pro/wp-content/uploads/2022/12/pub_5ed135346dcd086841870a7a_5ed5c8828e01ac764064a6ef.png)
В примере у меня была категория «Оборудование». На английском она звучит Mechanical Equipment. Ищу это категорию в первом столбце, потом ищу соответствие в столбце Built-In Category Name и копирую его к себе в скрипт. Именно из-за того, что это встроенное в Ревит имя категории, программа не будет сбиваться, если вдруг изменился язык Ревита.
На второй вопрос ответ такой: можно сделать так, что имя семейства или категории нужно будет вводить руками в Проигрывателе Динамо. Это не так удобно, как выпадающий список, но, во-первых, это плата за надёжность, а во-вторых, выбирать нужный тип или категорию из огромного выпадающего списка — тоже так себе удовольствие.
Чтобы в Проигрыватель выводилось поле для заполнения, заменю Code Block на нод String, нажму на него правой кнопкой мыши и проверю, что там стоит галочка «Является вводом».
![Такие ноды будут выводится в Проигрыватель Динамо Такие ноды будут выводится в Проигрыватель Динамо](https://muratovbim.pro/wp-content/uploads/2022/12/pub_5ed135346dcd086841870a7a_5ed5cb3f28ce915c068bd53f.png)
Чтобы эти ноды не просто выводились в Проигрыватель, но ещё и были понятно подписаны, то нужно два раза кликнуть по заголовку нода String и ввести нужный текст.
![Этот текст будет выводиться в Проигрывателе Этот текст будет выводиться в Проигрывателе](https://muratovbim.pro/wp-content/uploads/2022/12/pub_5ed135346dcd086841870a7a_5ed5cb8ad6a5077e1c7c9e10.png)
![Если нажать на кнопку-калькулятор, то появятся поля для заполнения Если нажать на кнопку-калькулятор, то появятся поля для заполнения](https://muratovbim.pro/wp-content/uploads/2022/12/pub_5ed135346dcd086841870a7a_5ed5cd041642f94d932e8a4b.png)
На этом всё. Приятного динамитто.