Dynamo: копирование категорий помещений из связанного файла

17 September

Написал скрипт, который копирует из помещений в связанном файле их категорию и записывает в пространства в текущем файле.

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

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

Версии

Создавал в Revit 2019.2, Dynamo 2.0.4. Думаю, будет нормально работать и в более ранних и поздних версиях Dynamo 2.

Важно! Для работы потребуется пакет archi-lab.net версии 2019.2.27, возможно подойдут и другие версии этого пакета, но я использовал именно эту. Пакет нужен, чтобы получить все элементы из связанного файла.

Запуск в Проигрывателе Динамо

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

Параметры скрипта в Проигрывателе Динамо
Параметры скрипта в Проигрывателе Динамо

1 — здесь нужно указать имя файла, в котором у вас размещены помещения. Необязательно указывать имя целиком, если это файл АР и в его названии есть раздел, то можно просто указать раздел. Главное, чтобы текста в этом поле было достаточно для однозначного определения файла.

2 — если вы используете другие параметры в помещениях и пространствах для записи категорий, то можете тут вписать имя вашего параметра.

3 и 4 — если хотите, чтобы скрипт сам скопировал имена и номера помещений в ваши пространства, то ставьте переключатели в положение True, если не надо, оставляйте False. Это по сути то же самое, что делает стандартный инструмент «Именование пространств».

Я не стал заморачиваться и добавлять фильтр по уровням, скрипт будет обрабатывать все пространства в модели. Если хотите фильтрануть, читайте статью про фильтрацию в Динамо и добавьте фильтр сами.

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

Редактирование скрипта

По умолчанию всё работает на параметрах ADSK, а именно: «ADSK_Категория помещения». Его нужно добавить и в помещения, и в пространства через параметры проекта в Ревите. Если вам нужно поменять этот параметр на свой, то отредактируйте в скрипте вот этот участок, впишите в него своё имя параметра:

Тут просто впишите своё название
Тут просто впишите своё название

Если вам нужно скопировать категории из одного параметра, а записать в пространства в другой параметр, то нужно добавить ещё нод String или обычный Code Block и туда вписать имя параметра, в который будет идти запись. Этот новый нод надо подключить ко входу parameterName нода Element.SetParameterValueByName, к которому на скриншоте ниже идёт стрелочка с кругляшом.

Вот этот правый нод — для записи в Пространства, а слева — для получения категорий из помещений
Вот этот правый нод — для записи в Пространства, а слева — для получения категорий из помещений

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

Выделите всю группу и удалите, переключатели уйдут
Выделите всю группу и удалите, переключатели уйдут

Вроде всё.

Работа скрипта

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

Как видите, работает
Как видите, работает

Ссылка на скрипт

Забирайте с Яндекс.Диска

И помните, что:

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

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

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