Продолжаю цикл статей про оформление узлов. В прошлой статье показывал квартирный узел ввода водоснабжения, а в этой разберу два вида узлов обвязки радиатора. В первом случае прибор будет с вложенными общими семействами для обвязки, во втором — с общими вложенными пустышками. Посмотрим на то, какие коррективы внесут пустышки в алгоритм.
В первой статье я описывал практически все действия по созданию 3Д-вида с узлом, поэтому здесь повторяться не буду. По-прежнему нужен какой-то параметр, чтобы фильтром видимости скрывать все ненужные элементы модели. Однако в этом примере мы не будем подписывать комплектующие номерами, здесь расставим только маркировку, это и будет узел.
Арматура для обвязки общими вложенными
Сначала разберём более простой случай: есть радиатор, в него общими вложенными добавлена арматура, термоголовка, H-образный клапан, угольники-удлинители из нержавейки, накидные гайки и небольшая трасса из сшитого полиэтилена.
Здесь у нас два трудных момента: как отфильтровать нужные элементы на виде и как промаркировать вложенные семейства.
Чтобы отфильтровывать, нужны заполненные параметры. Для этого нужно выделять элементы, но выделять вложенные общие возможно, но очень муторно. Хочется как-то упростить себе задачу. Мой вариант — скриптом Динамо заполнять выбранный параметр у всех элементов на виде. Скрипт очень простой, поэтому давайте прямо сейчас его пошагово разберём.
Скрипт для заполнения параметра у элементов
Вот у нас есть вид с разными элементами. В узел будем превращать радиатор справа.
В Динамо есть возможность выбрать все элементы на виде одним нодом. Для этого нужно оставить на виде только нужные элементы. Тут нам и пригодится временное скрытие/изоляция. Выделяем элементы с нашего будущего узла и нажимаем внизу Ревита по команде «Очки» и выбираем «Изолировать элемент». На виде останутся только те элементы, что выбирали перед применением команды.
Теперь запускаем Динамо и создаём новый скрипт. Показывать буду в Динамо из Ревита 2023, но алгоритм одинаковый для любых версий. В пространстве скрипта нажимаем правой кнопкой мыши и пишем в поиске «all ele». В вариантах ниже появится название нужного нода — All Elements in Active View, Все элементы на активном виде. Запускаем скрипт, наводим мышку на нижний правый угол нода и жмём по появившемуся списку, чтобы раскрыть его. В списке будут все наши элементы.
Теперь нужно взять нод, который будет записывать значение в параметр. Жмём правой кнопкой мыши по рабочему пространству и пишем в поиск «setparam». Нам нужен нод SetParameterByName, задать значение параметра по имени параметра. У этого нода три входа: список элементов, имя параметра для записи и значение, которое будем записывать. Все входы нужно заполнить, чтобы нод работал.
Элементы у нас уже есть, их мы просто подадим на первый вход нода. Два других нужно заполнить. По сути нам нужны два текстовых значения: имя параметра и значение для записи. Для этого можно создать Код Блок — специальный нод, в который можно писать код на языке Дизайн Скрипт. Нам нужно просто две строки, для этого достаточно написать текст в кавычках и всё.
Однако хочется сделать скрипт более универсальным, чтобы была возможность в Проигрывателе Динамо менять на ходу имя параметра и вводимое значение. Тут не обойтись без нодов String — это нод для ввода строковых значений (string). Ищем их правой кнопкой и добавляем два раза в рабочее пространство.
Чтобы в эти поля для ввода отображались в Проигрывателе, сделаем вот что: изменим заголовок и включим их отображение в Проигрывателе. Сделайте двойной клик на заголовке нода, появится поле для ввода, дайте нодам понятные названия. Затем нажмите по обоим нодам правой кнопкой мыши и поставьте галочку «Является вводом».
В качестве параметра я буду использовать встроенный параметр «Комментарии», но вам рекомендую для этих целей создать свой собственный параметр проекта, как описывал в первой статье цикла. В значение параметра буду писать текст "Биметаллический радиатор".
Впишите значения в ноды — без кавычек, а имя параметра должно быть в точности таким же, как оно отображается в Ревите. Регистр в программировании важен. Далее соединяем ноды. Перед этим рекомендую внизу слева включить режим ручного запуска скриптов.
Скрипт готов — можно сохранять на диск и пользоваться. Не забудьте написать всем знакомым, что вы теперь программист и автоматизируете бизнес-процессы, а также подыскиваете себе небольшую уютную виллу на Бали и ждёте, пока бариста принесёт латте на соевом молоке.
Отхлебнули латте и продолжаем. Скрипт вы можете запускать в Проигрывателе Динамо, это последняя кнопка на вкладке «Управление». Запустите его, в правом верхнем углу нажмите на значок папки с плюсом и укажите путь до папки со скриптом. Потом в выпадающем списке наверху выберите это расположение. Появится скрипт. Нажмите на него и появятся его параметры: наши два поля для ввода данных. Здесь вы можете менять имя и значение параметра.
Можно открыть Проигрыватель и запускать скрипт каждый раз, как подготовите вид в проекте. Каждый раз он будет записывать значения в указанный параметр. Если что-то не получилось, можете скачать скрипт с моего Яндекс-диска, но лучше попытаться сделать самому, скрипт очень простой.
Далее создаём отфильтрованный 3Д-вид, как показывал в первой статье про узел ввода воды в квартиру.
Пока писал статью, Саша Пекшев выпустил обновление в МодПлюсе для плагина «Выбрать компоненты». С помощью этого плагина можно выделить вложенные общие семейства. С этим плагином задача упрощается: выбрали элементы, нажали кнопку на ленте, вбили значение в параметр. Для самого радиатора нужно будет вбить значение отдельно, плагин нужен именно для обработки вложенных.
Маркировка элементов
Промаркировать можно всё вручную. Наводим курсор на элемент: если он вложенный общий, то щёлкаем ТАБ и подсвечиваем компонент. Подсветился — кликаем по нему и ставим марку. И таким образом маркируем все вложенные элементы. Сам радиатор маркируется без проблем обычным способом. Всё, наш узел готов, вид можно выносить на лист.
В следующем примере покажу, как можно облегчить маркировку, если вложенные элементы слишком мелкие или вложены в другие вложенные.
Если на виде нужны какие-то подписи с текстом, которого нет в семействах, то можно прямо на лист добавить семейство типовой аннотации «ADSK_A_Текст с выноской». Его нельзя разместить на 3Д-виде, только на листе, поэтому в дальнейшем нужно будет не забывать перемещать узел вместе с этой аннотацией. В ней уже можно писать любой текст.
Например, если нужно подписать прибор не конкретной маркой одного типоразмера, а закодировать все варианты. Не указывать 22-300x1200, а указать AA-HхL, где АА — тип радиатора, H — его высота, L — длина. Так как такой информации нет в модели, то придётся делать вот такой колхоз. Ну или специальную марку и параметр под нужды таких абстракций.
В этом узле я использовал семейство из моей платной библиотеки биметаллических радиаторов. В них уже вложена разная арматура, чтобы ускорить работу по обвязке радиатора.
Арматура для обвязки пустышками
В этом случае прибор с вложенной арматурой устроен немного иначе. Сама геометрия арматуры — это обычные не общие вложенные семейства, то есть в проекте Ревит будет воспринимать её не как отдельные элементы, а как часть геометрии семейства. При этом в спецификации такие элементы учитывать всё равно нужно, поэтому их отдельно добавляем вложенными общими, но без геометрии. Именно такие общие вложенные называю «пустышками».
По такой же логике делал пожарные шкафы: из геометрии в них только сам шкаф, а вся начинка — набор пустышек.
На скриншоте ниже — стальной панельный радиатор. В него вложил термоголовку и H-образный клапан, сама геометрия не общая, в спецификацию попадают пустышки.
Раз общие вложенные как бы есть, но как бы и нет, то возникает проблема: а как до них дотянуться марками, куда наводить мышкой и тыкать на ТАБ? Некуда. Однако и тут есть решение: использовать встроенную автоматическую маркировку в Ревите.
Настроили вид, заблокировали. Рекомендую отключить границы 3Д-вида, чтобы точно все пустышки попали на вид.
Переходим на вкладку «Аннотации», ищем команду «Маркировать все». Нажимаем, появится окно, в котором нужно выбрать подходящую марку. В данном случае все пустышки сделал в категории «Оборудование», поэтому достаточно выбрать только марку этой категории галочкой, а затем указать типоразмер марки. Внизу включите выноску, если она отключена. Длину можете указать любую, пусть будет 20 мм. Можно и стандартную оставить.
Появляются марки. В моём случае марка H-образного клапана не появлялась, пока не выключил границы 3Д-вида. Это мой косяк, забыл привязать на замок пустышку к опорным плоскостям, в итоге радиатор меняет размеры, а пустышка остаётся там же, куда положил её в семействе.
Чтобы сделать марки красивыми, выберу их и под лентой включу им режим «Со свободным концом». После руками растащу все марки, чтобы выноски получались аккуратными.
Дальше можно выносить узлы на лист и наслаждаться красотой. В третьей статье цикла посмотрим на узлы для нестандартных деталей на примере соединительных деталей воздуховодов.
За статью 👍, но здесь можно написать ещё об одном способе фильтрации вложенных: когда параметр вложенного, по которому идёт фильтрация, приравниваешь к такому же параметру в родительском семействе, и не нужно использовать скрипты и плагины
Спасибо.
Да, этот способ тоже подходит, но только если у вас либо целиком своя библиотека, настроенная для работы в вашем шаблоне, либо есть штат БИМ-спецов, кто донастроит семейства. То есть это хороший способ, но менее универсальный, так как требует дополнительной настройки семейств и создание специального общего параметра под эти нужды.
Что-то я не понял, для чего нам нужен скрипт, если для его работы мы всё равно выделяем и изолируем необходимые нам элементы на виде?
Чтобы обработать вложенные общие.