Расскажу, что делать с выпадающими списками, чтобы они не сбоили.
Проблема
Бывает ситуация, когда запускаю скрипт в Проигрывателе Динамо, а он выдаёт ошибку. Открываю скрипт в Динамо и вижу, что ноды с выпадающими списками пустые. Почему такое происходит, не знаю, но оно происходит и раздражает. В моей практике такое обычно случается с нодом Categories.
Решение
Выпадающие списки ненадёжны, поэтому лучше выбирать категорию или тип семейства чуть более сложным и стабильным способом. Через имя категории или типа семейства.
Для этого используйте ноды ByName. В этом случае вам нужно будет задать текстом имя категории или типа семейства, но сбоить ничего не будет. И от языка Ревита зависеть тоже не будет.
С их использованием скрипт будет выглядеть вот так:
Ошибки уже нет, всё работает замечательно.
С этим методом связаны два вопроса:
- Что за странное обозначение для категории и где его взять?
- Что делать, если надо выбирать для скрипта новые категории/типы семейств и т. д.?
Отвечаю. Посмотреть обозначения можно в гугл-таблице. Её собрали какие-то зарубежные коллеги, она на английском языке, это единственное препятствие. Я её пересохранил к себе, вдруг удалят.
В целом в ней всё понятно. Слева у вас список категорий Ревита без аннотаций и марок, справа под столбцом Y будут имена категорий такими, какими их видит внутри себя Ревит. Вот это имя вам и нужно.
В примере у меня была категория «Оборудование». На английском она звучит Mechanical Equipment. Ищу это категорию в первом столбце, потом ищу соответствие в столбце Built-In Category Name и копирую его к себе в скрипт. Именно из-за того, что это встроенное в Ревит имя категории, программа не будет сбиваться, если вдруг изменился язык Ревита.
На второй вопрос ответ такой: можно сделать так, что имя семейства или категории нужно будет вводить руками в Проигрывателе Динамо. Это не так удобно, как выпадающий список, но, во-первых, это плата за надёжность, а во-вторых, выбирать нужный тип или категорию из огромного выпадающего списка — тоже так себе удовольствие.
Чтобы в Проигрыватель выводилось поле для заполнения, заменю Code Block на нод String, нажму на него правой кнопкой мыши и проверю, что там стоит галочка «Является вводом».
Чтобы эти ноды не просто выводились в Проигрыватель, но ещё и были понятно подписаны, то нужно два раза кликнуть по заголовку нода String и ввести нужный текст.
На этом всё. Приятного динамитто.