Сегодня разберем создание скрипта, отменяющего/разрешающего соединения концов балок в Revit.
Когда это может понадобиться? Во многих случаях. Например, если Вы строите ферму из отдельных элементов или какую-нибудь балочную клетку, Revit любит автоматически соединять элементы в точках пересечения.
Получается так:
Кликать правой кнопкой по каждому концу балки и отсоединять вручную? Ну такое себе занятие…
И в Revit API есть методы, которые позволяют отменять и разрешать соединения концов балок.
Скорее всего есть какие-то кастомные пакеты нодов, в которых это уже реализовано, но… Сделаем самостоятельно :)
Создаем скрипт в Dynamo и вытягиваем для начала пять нодов: Boolean-переключатель (на скрине ниже я его уже переименовал), Select Model Elements, Categories, Category.Name, Python Script. Для первых двух надо будет правой кнопкой мыши поставить чек «Является вводом», чтобы потом использовать в плеере Dynamo.
Разберём основные моменты кода Python-скрипта (на всякий случай выложил сам код, если захотите повторить самостоятельно):
- Импорт необходимых библиотек
- Создание переменных
- Проверка принадлежности подаваемых элементов нужной категории и выведение их в отдельный список
- Взятие текущего документа
- Открытие транзакции
- Цикл с применением методов Revit API для отмены/разрешения соединения концов
- Закрытие транзакции
В принципе на скрине каждый этап прокомментирован, затруднений вызвать не должно. На крайний случай ссылочка на pastebin выше приложена.
Далее всё сохраняем и пробуем применить скрипт, не забыв предварительно выбрать элементы нодом Select Model Elements. Если всё ок, то можно применять через плеер Dynamo.
Готовый скрипт можно скачать по ссылке.
На сегодня у меня всё. До новых встреч!