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

Пример оформленного узла
Пример оформленного узла

В первой статье я описывал практически все действия по созданию 3Д-вида с узлом, поэтому здесь повторяться не буду. По-прежнему нужен какой-то параметр, чтобы фильтром видимости скрывать все ненужные элементы модели. Однако в этом примере мы не будем подписывать комплектующие номерами, здесь расставим только маркировку, это и будет узел.

Арматура для обвязки общими вложенными

Сначала разберём более простой случай: есть радиатор, в него общими вложенными добавлена арматура, термоголовка, H-образный клапан, угольники-удлинители из нержавейки, накидные гайки и небольшая трасса из сшитого полиэтилена.

Вот так выглядит модель в проекте

Здесь у нас два трудных момента: как отфильтровать нужные элементы на виде и как промаркировать вложенные семейства.

Чтобы отфильтровывать, нужны заполненные параметры. Для этого нужно выделять элементы, но выделять вложенные общие возможно, но очень муторно. Хочется как-то упростить себе задачу. Мой вариант — скриптом Динамо заполнять выбранный параметр у всех элементов на виде. Скрипт очень простой, поэтому давайте прямо сейчас его пошагово разберём.

Скрипт для заполнения параметра у элементов

Вот у нас есть вид с разными элементами. В узел будем превращать радиатор справа.

В Динамо есть возможность выбрать все элементы на виде одним нодом. Для этого нужно оставить на виде только нужные элементы. Тут нам и пригодится временное скрытие/изоляция. Выделяем элементы с нашего будущего узла и нажимаем внизу Ревита по команде «Очки» и выбираем «Изолировать элемент». На виде останутся только те элементы, что выбирали перед применением команды.

Теперь запускаем Динамо и создаём новый скрипт. Показывать буду в Динамо из Ревита 2023, но алгоритм одинаковый для любых версий. В пространстве скрипта нажимаем правой кнопкой мыши и пишем в поиске «all ele». В вариантах ниже появится название нужного нода — All Elements in Active View, Все элементы на активном виде. Запускаем скрипт, наводим мышку на нижний правый угол нода и жмём по появившемуся списку, чтобы раскрыть его. В списке будут все наши элементы.

Теперь нужно взять нод, который будет записывать значение в параметр. Жмём правой кнопкой мыши по рабочему пространству и пишем в поиск «setparam». Нам нужен нод SetParameterByName, задать значение параметра по имени параметра. У этого нода три входа: список элементов, имя параметра для записи и значение, которое будем записывать. Все входы нужно заполнить, чтобы нод работал.

Элементы у нас уже есть, их мы просто подадим на первый вход нода. Два других нужно заполнить. По сути нам нужны два текстовых значения: имя параметра и значение для записи. Для этого можно создать Код Блок — специальный нод, в который можно писать код на языке Дизайн Скрипт. Нам нужно просто две строки, для этого достаточно написать текст в кавычках и всё.

Однако хочется сделать скрипт более универсальным, чтобы была возможность в Проигрывателе Динамо менять на ходу имя параметра и вводимое значение. Тут не обойтись без нодов String — это нод для ввода строковых значений (string). Ищем их правой кнопкой и добавляем два раза в рабочее пространство.

Чтобы в эти поля для ввода отображались в Проигрывателе, сделаем вот что: изменим заголовок и включим их отображение в Проигрывателе. Сделайте двойной клик на заголовке нода, появится поле для ввода, дайте нодам понятные названия. Затем нажмите по обоим нодам правой кнопкой мыши и поставьте галочку «Является вводом».

В качестве параметра я буду использовать встроенный параметр «Комментарии», но вам рекомендую для этих целей создать свой собственный параметр проекта, как описывал в первой статье цикла. В значение параметра буду писать текст "Биметаллический радиатор".

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

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

Отхлебнули латте и продолжаем. Скрипт вы можете запускать в Проигрывателе Динамо, это последняя кнопка на вкладке «Управление». Запустите его, в правом верхнем углу нажмите на значок папки с плюсом и укажите путь до папки со скриптом. Потом в выпадающем списке наверху выберите это расположение. Появится скрипт. Нажмите на него и появятся его параметры: наши два поля для ввода данных. Здесь вы можете менять имя и значение параметра.

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

Далее создаём отфильтрованный 3Д-вид, как показывал в первой статье про узел ввода воды в квартиру.

Пока писал статью, Саша Пекшев выпустил обновление в МодПлюсе для плагина «Выбрать компоненты». С помощью этого плагина можно выделить вложенные общие семейства. С этим плагином задача упрощается: выбрали элементы, нажали кнопку на ленте, вбили значение в параметр. Для самого радиатора нужно будет вбить значение отдельно, плагин нужен именно для обработки вложенных.

После установки плагина при выделении элемента появится вот такая кнопка на панели

Маркировка элементов

Промаркировать можно всё вручную. Наводим курсор на элемент: если он вложенный общий, то щёлкаем ТАБ и подсвечиваем компонент. Подсветился — кликаем по нему и ставим марку. И таким образом маркируем все вложенные элементы. Сам радиатор маркируется без проблем обычным способом. Всё, наш узел готов, вид можно выносить на лист.

Готовый 3Д-вид с узлом обвязки биметаллического радиатора

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

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

Например, если нужно подписать прибор не конкретной маркой одного типоразмера, а закодировать все варианты. Не указывать 22-300x1200, а указать AA-HхL, где АА — тип радиатора, H — его высота, L — длина. Так как такой информации нет в модели, то придётся делать вот такой колхоз. Ну или специальную марку и параметр под нужды таких абстракций.

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

Арматура для обвязки пустышками

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

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

На скриншоте ниже — стальной панельный радиатор. В него вложил термоголовку и H-образный клапан, сама геометрия не общая, в спецификацию попадают пустышки.

Вот пример радиатора. Это радиатор из шаблона ADSK, он бесплатный

Раз общие вложенные как бы есть, но как бы и нет, то возникает проблема: а как до них дотянуться марками, куда наводить мышкой и тыкать на ТАБ? Некуда. Однако и тут есть решение: использовать встроенную автоматическую маркировку в Ревите.

Настроили вид, заблокировали. Рекомендую отключить границы 3Д-вида, чтобы точно все пустышки попали на вид.

Переходим на вкладку «Аннотации», ищем команду «Маркировать все». Нажимаем, появится окно, в котором нужно выбрать подходящую марку. В данном случае все пустышки сделал в категории «Оборудование», поэтому достаточно выбрать только марку этой категории галочкой, а затем указать типоразмер марки. Внизу включите выноску, если она отключена. Длину можете указать любую, пусть будет 20 мм. Можно и стандартную оставить.

Команда для маркировки всех элементов
Настройки марки

Появляются марки. В моём случае марка H-образного клапана не появлялась, пока не выключил границы 3Д-вида. Это мой косяк, забыл привязать на замок пустышку к опорным плоскостям, в итоге радиатор меняет размеры, а пустышка остаётся там же, куда положил её в семействе.

Чтобы сделать марки красивыми, выберу их и под лентой включу им режим «Со свободным концом». После руками растащу все марки, чтобы выноски получались аккуратными.

Автоматическая расстановка марок
Поправил марки, красиво расставил — вот и красивый узел

Дальше можно выносить узлы на лист и наслаждаться красотой. В третьей статье цикла посмотрим на узлы для нестандартных деталей на примере соединительных деталей воздуховодов.