Создание семейства светильника
- Открываем шаблон семейства «Метрическая система, типовая модель на основе грани».
- Присваиваем семейству категорию «Осветительные приборы» и ставим галочку «Источник света».
- Редактируем источник света — делаем полусферу, уменьшаем размер .
- Создаем нишу для вставки светильника в тело, полым элементом выдавливания.
- Создаем тело плафона создав элемент вращения.
- Загружаем семейство светильника в проект с имеющимся криволинейным потолком.
Создание скрипта Dynamo
Выбор поверхности расстановки светильников
- Открываем Динамо, создаем новый файл.
- В дереве выбираем Revit — Selection — Select Face (Выбрать грань). Нажимаем «Выбрать» и выбираем мышкой в проекте поверхность размещения светильников. Жмём «Запуск».
- Включаем в поле Динамо 3D-навигацию и кнопку «Вписать». Появится 3D — поверхность.
Выбор точки установки светильника
- Ставим нод: Geometry — Point — ByCoordinates (вставка точки по координатам).
- Выбираем Geometry — Surface — ProjectInputOnto (проецирование объекта на какую-либо поверхность в направлении заданного вектора).
- Выбираем Geometry — Vector — ZAxis (задание направления).
- Подключаем Point — geometryToProject.
- Подключаем — Поверхность — Surface.
- Подключаем Vector — projectionDirection.
- К ноду Point.ByCoordinates к каждой координате подключаем CodeBlock c числом 1000. Запускаем алгоритм.
Установка точки по U V координатам
- Ставим нод Surface.PointAtParametr.
- Ставим два нода Number Slider с минимальным значением 0 и максимальным 1.
- Подключаем слайдеры к U и V входам. Меняя значения в слайдерах при включенном запуске алгоритма «Автоматически», видим изменение расположения второй точки.
Установка светильника в точку
- Ставим нод Revit — Elements — Familyinstance — ByFace (размещение экземпляра семейства по грани).
- Для выбора семейства ставим нод: Select — FamilyTypes, в раскрывающемся списке делаем выбор и подключаем ко входу familyType.
- Подключаем поверхность: выход Поверхность ко входу face.
- Ко входу location подключим точку с u v координатами (point).
- К четвертому входу подключим вектор: Geometry — Vector — XAxis.
Задание траектории из линий в Dynamo
- Вернемся в проект, перейдем на план и временно скроем потолок.
- Линиями модели на плане нарисуем криволинейную линию. Это будет траектория для Динамо.
- В скрипте Динамо отключим входы face и location и нажимаем запуск.
- Ставим ноды Revit — Selection — Select Model Element в таком количестве, сколько участков создано в криволинейной линии. В каждом ноде нажимаем Выбрать и выбираем участки линии в проекте.
- Ставим ноды Revit — Elements — Element — Curves по количеству предыдущих нодов. Цель — преобразовать кривые Ревита в кривые Динамо.
- Соединяем выход Element со входом element в каждом ноде.
- Нажимаем запуск алгоритма — в окне Динамо появятся кривые.
8. Объединяем кривые. Ставим ноды Geometry — Curve — Join и последовательно соединяем участки кривых по два.
Создание точки на траектории
- Ставим нод Geometry — Curve — PointAtParameter. Подключаем к нему выход с нода, формирующего объединенную кривую. А ко второму входу подключаем слайдер.
- Запускаем скрипт в автоматическом режиме. На кривой появится точка, которая будут перемещаться при передвижении ползунка слайдера.
Создание нескольких точек на траектории
- Отсоединим от связи вход param.
- Создадим Code Block, напишем в нём 0..1..n#. n — это будет переменная.
- Ко входу n нода подключаем слайдер с минимальным значением 1, максимальным — 20, и шагом 1. При перемещении ручки слайдера, будут создаваться списки с соответствующим количеством строк.
- Подключаем выход из Code Block ко входу param, нажимаем правую кнопку мыши, выбираем Переплетение — Самый длинный. Появятся точки на траектории.
Проецирование точек на поверхность
- Удалим ноды, создающие одну точку: Code Block и Point.ByCoordinates
- Создадим группу из нодов, формирующих точки из списка.
- Подключим выход из группы к ноду, формирующему проекцию на поверхность (ко входу geometryToProject. Затем выделяем узел, правой кнопкой — Переплетение — Самый длинный.
- Убираем лишние ноды по созданию точек.
- Соединяем выход Geometry и вход location.
- Соединяем выход Поверхность и вход face.
- На последнем ноде делаем Переплетение — Самый длинный.
В проекте Ревита появятся светильники на проекции траектории, их количество будет меняться в зависимости от положения ползунка слайдера при включенном автоматическом запуске скрипта.