Найти тему

Dynamo: заполнение параметров у семейств в проекте

Оглавление

Расскажу, как автоматизировать заполнение параметров у семейств, которые есть в файле проекта.

Кажется, тут всё просто, но есть нюанс. Семейства могут быть двух видов: размещённые в пространстве модели и неразмещённые. Для Ревита это разные сущности.

Первая называется Family Instance — экземпляр семейства, вторую обозначают как Family Symbol, по сути это типоразмер семейства, который загружен в файл проекта. Фактически Family Symbol — это вообще любой тип семейства из проекта, неважно, разместили вы его или нет.

Если типоразмер размещён в пространстве модели, то работаем с ним, как с экземпляром. Если не размещён, то для нас это будет family symbol. И работа с ними немного разная.

Family Instance

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

про перенос параметров с помощью Динамо, тут про параметры экземпляра;

про работу с параметрами типа и экземпляра, тут информация о том, как получить из экземпляра его тип.

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

Другое дело, когда семейства загружены в проект, но не размещены в пространстве модели. Здесь нам и пригодится работа со второй «сущность» семейства.

Family Symbol

Чтобы получить типоразмеры семейств, которые загружены в проект, нужно взять нод-выпадающий список Element Types и соединить с нодом All Elements of Type. В итоге получим все типы семейств из файла.

Получение типов из проекта
Получение типов из проекта

В принципе, всё, список на выходе — это типоразмеры, с ними можно работать: получать данные и записывать. Давайте для большей ясности покажу на примере той задачи, которую решал.

Задача

В 2018 году разрабатывал библиотеку арматуры Tecofi — ударение на последний слог, это французский бренд. Теперь из-за санкций и изменений в линейке нужно внести корректировки, заодно поправить семейства так, чтобы они хорошо дружили с шаблонами ADSK, которые я тоже разрабатываю с ребятами из BIM2B.

Одна из корректировок — поменялась версия Ревита с 2016 на 2017, нужно банально поменять значение в параметре. Но семейств много — аж 78 штук да ещё и типоразмеров может быть несколько: менять руками долго и неприятно. Причём больше неприятно, чем долго. Значит, нужно автоматизировать задачу.

Решение

Работай я в Ревите 2019+, то всё легко делается с помощью «Кулька параметров», но в данном случае Ревит 2017 версии.

Загружаю семейства в пустой проект. У меня в параметре «ADSK_Версия Revit» записана формула «2016». Соответственно, не получится перебить значение через спецификацию, но главное — чтобы их там перебить, семейства нужно разместить в модели. Это тоже долго.

Поэтому с помощью плагина Revit Lookup, о котором уже рассказывал в статье с лайфхаками, удаляю параметр из проекта. Заодно он удалится и из всех семейств. Далее добавлю этот же параметр в одно из семейств, загружу в проект. С помощью плагина «Family Parameters» раскопирую его по другим семействам. О нём тоже рассказывал в статье про автоматизацию работы, в этой же статье и про «Кулёк параметров».

Теперь у меня во всех семействах есть параметр «ADSK_Версия Revit». Осталось только заполнить всё значением «2017». Запускаю Динамо. Получаю все family symbol, отфильтровываю только арматуру Tecofi, благо для этого в имени семейства есть префикс. Далее обычным нодом по записи значений в параметр Element.SetParameterByName вношу значение.

-3
-4

Готово!

Способ многоступенчатый, но для тех, кто не программирует и не работает с Ревит АПИ, в самый раз. Результат ведь есть, и не нужно было руками заходить в каждое семейство.

Добавьте в закладки мой личный сайт, блог переезжает туда: muratovbim.pro

Видеокурс по семействам трубопроводных фитингов. Подробный 10-часовой курс, в котором научу создавать семейства и поделюсь лайфхаками.

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

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

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

КлаудТипс — можете нажать тут по ссылке и откроется интерфейс для перевода денег или используйте QR-код ниже:

QR-код для перевода благодарности за материалы блога
QR-код для перевода благодарности за материалы блога

Уведомления о новых статьях

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

Методичка по работе в Ревите

Читайте методичку для проектировщиков: полезный материал, в котором последовательно рассказываю, как создавать модель.

Манифест по разработке семейств для ОВ, ВК, ТМ

Подробная инструкция, как следует разрабатывать семейства для инженерных разделов.

Мини-курс по моделированию ОВ и ВК

В специальный плейлист на Ютубе выкладываю свои ролики по работе в Ревите. Этот курс записывал для студентов, разбираю базовые моменты по моделированию.