При построении трасс труб (или воздуховодов, лотков, коробов) часто возникает ситуация, когда нужно обойти нашей трубой какой-либо элемент в модели по вертикали под заданным углом. Чтобы обойти элемент мы строим разрез, потом на разрезе выполняем само построение (разделяем трубу, растаскиваем трубы от соединительной детали, удаляем соеддеталь и .т.д). Такое количество действий отнимает много времени, а в больших моделях становится долгим само создание и открытие разреза.
Данный скрипт как раз и позволяет выполнить обход прямо на 3Д виде или плане, не создавая дополнительного разреза, и обойтись существенно меньшим количеством действий.
Рассмотрим работу со скриптом в тестовом проекте:
Перейдем на необходимый нам вид, в проигрывателе Dynamo перейдем в папку, где находится скрипт и у нашего скрипта нажмем кнопку «Отредактируйте введенные данные»(3).
Вариант 1 – нам нужно разделить трубу (напомню, что для труб команда «разделить с зазором» не работает):
1.1 Выбираем команду «разделить элемент» (1), в нужном нам месте деления трубы ставим соед.деталь(2) и с помощью клавиши Esc выходим из команды «разделить элемент»
1.2 выбираем поставленную нами соед.деталь(2) и запускаем скрипт
1.3 убеждаемся, что трубы разделились и соед.деталь(2) удалена
Вариант 2 – нам нужно опустить трубу*:
2.1 проделываем тоже, что и в п1.1 -т.е. ставим соед.деталь в место предполагаемого опуска трубы
2.2 в соответствующие поля проигрывателя Dynamo вводим необходимые нам значения угла от горизонтальной плоскости(1) и смещения по высоте(2)
2.3 выбираем соед.деталь(3) и соединённую с ней трубу, которую собираемся сместить вниз(4) и запускаем скрипт
2.4 убеждаемся в выполненном построении
Вариант 3 – нужно выполнить обход*:
3.1 по аналогии с п1.1. и 2.1 ставим соед.детали, но уже 2шт(1 и 2) – т.е. таким образом мы определяем какой участок нужно сместить вниз
3.2 как и в п2.2 в соответствующие поля проигрывателя Dynamo вводим необходимые нам значения угла от горизонтальной плоскости и смещения по высоте
3.3 выбираем трубу(3) межу соед.деталями(1 и 2) и запускаем скрипт
3.4 убеждаемся в выполненном построении
*Если значение в поле «Смещение по высоте» положительное, то обход будет сверху, а вместо опуска - подъем. Для обхода снизу или для опуска в значение в поле должно быть со знаком «–»
Скрипт работает не только с действиями над одной трубой, но и с несколькими, что и продемонстрировано в кратком видео.
Т.е. краткая логика работы такая:
Расставляем соед.детали(с типом детали соединение) и выбираем элементы в соответствием с тем что мы хотим сделать:
- если выбрали только соед.детали – то скрипт разделит с зазором
- если выбрали только трубы между 2-мя соед.деталями – то будет выполнен обход
- если выбрали и соед.детали и подсоединенные к ним трубы – то будет выполнен подъем/опуск, но если вы выбрали неравное количество труб и соед.деталей, то скрипт вам об этом сообщит)
Дополнительно:
- все, что говорю о трубах применимо и к лоткам, коробам, воздуховодам;
- скрипт не работает если у вас не настроена трассировка или вы выбрали такие значения угла и смещения по высоте при которых у вас невозможно. Как честны пример , чтобы пользоваться командой «разделить элемент» в типоразмерах в настройках трассировки в поле “соединение” должна быть соед.деталь.
- скрины из тестового проекта, в который загрузил воздуховоды, трубы, лотки и короба из шаблонов АДСК;
- проверял на реальных проектах в 20 версии Revit;
- для наглядности и чтобы в списке действий можно было отличить операции скрипта добавил в имена транзакций знаки характеризующие действия:
Сам скрипт здесь. Убедительная просьба дать обратную связь.
Планы и обновления скрипта:
- добавлена возможность работы с воздуховодами
- добавлена более полное описание работы
- добавлены знаки в имена транзакций
- в поисках идей какие еще функции добавить в скрипт