В этом цикле статей расскажу, как с помощью Dynamo, языка программирования Python и Revit API получать информацию с соединителей инженерных элементов. Пишу статью и для вас, и для себя, так как нерегулярно работаю в Динамо и могу что-то забывать. А так будет шпаргалка для всех.

Владение Питоном достаточно на новичковом уровне, как у меня. Ничего не бойтесь, ничего сложного тут нет. Я тоже когда-то думал, что это ужасные дебри и очень сложно. На деле — просто дебри и не очень сложно, как кажется.

Также для работы нам потребуется плагин Revit Lookup. О его возможностях несколько раз рассказывал в статьях с лайфхаками, очень полезный плагин, тут тоже пригодится. Именно ему посвящена первая статья цикла.

Оглавление цикла

По мере выхода статей будут добавлять сюда ссылки.

Свойства элементов в Ревит Лукап

Начнём с плагина. Объяснять буду по-простому, потому что тонкостей сам не знаю. Если вы опытный и разбираетесь, пишите в комментариях, как оно на самом деле, я почитаю.

С помощью Ревит Лукапа мы можем посмотреть на базу данных, которую из себя представляет наш проект в Ревите. Можно залезть во всю базу, а можно выделить отдельный элемент и посмотреть только его свойства. Будем смотреть на примере вентиляционного диффузора — это простой объект, а всё работает аналогично и для других элементов.

Выделяю диффузор, иду на вкладку «Надстройки», жму по кнопке плагина и выбираю Snoop Current Selection — «проинспектировать текущий выбор». Открывается окно плагина. В нём много всего, но сразу видно, что есть жирный текст, обычный и красный. Красный — это какая-то ошибка, то есть такого рода данных в элементе нет. Обычный — просто почитать информацию.

На жирный текст можно нажать и «провалиться» в новое окно с данными. Привычные нам параметры из окна свойств можно увидеть нажатием по строке «Parameters — ».

Выделяю диффузор и выбираю Snoop Current Selection...
Нажимаю по жирному тексту Parameters и проваливаюсь в параметры элемента
Вот пример параметра — Имя системы

Тут всё на английском, но потыкаться и разобраться можно. Если вернуться в первое окно, которое выдал плагин, тут есть ещё два важных моментах. Всё делится на несколько групп с бирюзовыми заголовками, а внутри есть подзаголовки «Properties» и «Methods» — свойства и методы. В дальнейшем нам это пригодится, пока коротко скажу: свойства — вывести информацию, а методы — что-то сделать. Далее всё это разберём на примерах.

Соединители в Ревит Лукап

Теперь определим, где у нас соединители в Ревит Лукапе. Для системных и загружаемых категорий они отображаются по-разному.

Системные категории

Для жёстких и гибких труб, воздуховодов, изоляции, лотков, коробов доступ к соединителям можно получить через свойство «ConnectorManager». Оно находится в группе «MEPCurve». Посмотрим на примере кабельного лотка. Выделю его, нажму по Snoop Current Selection, прокручу почти в самый низ.

ConnectorManager в Ревит Лукапе для системных категорий

Коннектор Менеджер — это класс объектов в Ревите, которых хранит в себе все соединители конкретного экземпляра. Так как соединителей может быть несколько у одного элемента, то их надо куда-то «сложить». Вот в Коннектор Менеджер и складывают. У воздуховода, трубы или лотка всегда два соединителя, у тройника — обычно три, а у сложного котла может быть и десяток.

Коннектор Менеджер написан жирным шрифтом, значит, можно по нему нажать. Жмём и видим, что у него есть набор свойств, а методов нет. То есть с Коннектор Менеджером ничего сделать нельзя, но какие-то свойства у него есть, что-то посмотреть можно.

Нажал по Коннектор Менеджеру и смотрю его свойства

Разберём свойства Коннектор Менеджера со скриншота выше. Столбец слева называется «field», поле. Столбец справа — «value», значение.

Connectors (соединители). Это свойство Коннектор Менеджера со всеми соединителями, они не просто «валяются» в менеджере, они лежат в своей коробочке — < ConnectorSet >, наборе соединителей. Для нас в Питоне это будет списком соединителей у элемента.

IsValidObject. Не знаю, что это, для работы нам не нужен. Опытные могут написать в комменты, что это, чтобы мы, новички, поняли, зачем это.

Owner. Свойство, которое показывает, кто является владельцем данного Коннектор Менеджера. По сути это наш лоток.

UnusedConnectors (неиспользуемые соединители). Список, набор соединителей, которые никуда не подключены. Если такие есть, то свойство будет жирным, если нет, то обычным текстом. Мой лоток никуда не подключён, просто лоток в воздухе, поэтому оба его соединителя открыты, то есть не используются.

Так как статья про соединители, то здесь нам нужно свойство Connectors. Если провалиться в него, то увидим сбоку список и там все соединители элемента. Если нажимать по ним, что будет видеть в правой части окна различные их свойства и методы. Это уже будет разбирать дальше в своём разделе.

Набор соединителей лотка

Загружаемые категории

Для загружаемых семейств вроде оборудования, сантехприборов или арматуры всё то же самое, но нельзя попасть в Коннектор Менеджер напрямую. Сначала нужно «зайти» в свойство «MEPModel», а уже оттуда попадём в Коннектор Менеджер. Покажу на примере всё того же диффузора.

Свойство MEPModel у семейства воздухораспределителя
Вот где затаился Коннектор Менеджер

Важность Ревит Лукапа

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

В большинстве случаев, когда хотите сделать что-то в Питоне с помощью Ревит АПИ, сначала вы можете в Ревит Лукапе посмотреть, как обратиться к нужному элементу, где взять нужные свойства, а уже потом реализуете в программу в Питоне. Это сильно упрощает работу.


В следующей статье посмотрим, как обратиться к соединителям через Динамо и Питон.