Размещение светильников с Dynamo

Создание семейства светильника

  1. Открываем шаблон семейства «Метрическая система, типовая модель на основе грани».
  2. Присваиваем семейству категорию «Осветительные приборы» и ставим галочку «Источник света».
  3. Редактируем источник света — делаем полусферу, уменьшаем размер .
  4. Создаем нишу для вставки светильника в тело, полым элементом выдавливания.
  5. Создаем тело плафона создав элемент вращения.
  6. Загружаем семейство светильника в проект с имеющимся криволинейным потолком.

Создание скрипта Dynamo

Выбор поверхности расстановки светильников

  1. Открываем Динамо, создаем новый файл.
  2. В дереве выбираем Revit — Selection — Select Face (Выбрать грань). Нажимаем «Выбрать» и выбираем мышкой в проекте поверхность размещения светильников. Жмём «Запуск».
  3. Включаем в поле Динамо 3D-навигацию и кнопку «Вписать». Появится 3D — поверхность.

Выбор точки установки светильника

  1. Ставим нод: Geometry — Point — ByCoordinates (вставка точки по координатам).
  2. Выбираем Geometry — Surface — ProjectInputOnto (проецирование объекта на какую-либо поверхность в направлении заданного вектора).
  3. Выбираем Geometry — Vector — ZAxis (задание направления).
  4. Подключаем Point — geometryToProject.
  5. Подключаем — Поверхность — Surface.
  6. Подключаем Vector — projectionDirection.
  7. К ноду Point.ByCoordinates к каждой координате подключаем CodeBlock c числом 1000. Запускаем алгоритм.

Установка точки по U V координатам

  1. Ставим нод Surface.PointAtParametr.
  2. Ставим два нода Number Slider с минимальным значением 0 и максимальным 1.
  3. Подключаем слайдеры к U и V входам. Меняя значения в слайдерах при включенном запуске алгоритма «Автоматически», видим изменение расположения второй точки.

Установка светильника в точку

  1. Ставим нод Revit — Elements — Familyinstance — ByFace (размещение экземпляра семейства по грани).
  2. Для выбора семейства ставим нод: Select — FamilyTypes, в раскрывающемся списке делаем выбор и подключаем ко входу familyType.
  3. Подключаем поверхность: выход Поверхность ко входу face.
  4. Ко входу location подключим точку с u v координатами (point).
  5. К четвертому входу подключим вектор: Geometry — Vector — XAxis.

Задание траектории из линий в Dynamo

  1. Вернемся в проект, перейдем на план и временно скроем потолок.
  2. Линиями модели на плане нарисуем криволинейную линию. Это будет траектория для Динамо.
  3. В скрипте Динамо отключим входы face и location и нажимаем запуск.
  4. Ставим ноды Revit — Selection — Select Model Element в таком количестве, сколько участков создано в криволинейной линии. В каждом ноде нажимаем Выбрать и выбираем участки линии в проекте.
  5. Ставим ноды Revit — Elements — Element — Curves по количеству предыдущих нодов. Цель — преобразовать кривые Ревита в кривые Динамо.
  6. Соединяем выход Element со входом element в каждом ноде.
  7. Нажимаем запуск алгоритма — в окне Динамо появятся кривые.

8. Объединяем кривые. Ставим ноды Geometry — Curve — Join и последовательно соединяем участки кривых по два.

Создание точки на траектории

  1. Ставим нод Geometry — Curve — PointAtParameter. Подключаем к нему выход с нода, формирующего объединенную кривую. А ко второму входу подключаем слайдер.
  2. Запускаем скрипт в автоматическом режиме. На кривой появится точка, которая будут перемещаться при передвижении ползунка слайдера.

Создание нескольких точек на траектории

  1. Отсоединим от связи вход param.
  2. Создадим Code Block, напишем в нём 0..1..n#. n — это будет переменная.
  3. Ко входу n нода подключаем слайдер с минимальным значением 1, максимальным — 20, и шагом 1. При перемещении ручки слайдера, будут создаваться списки с соответствующим количеством строк.
  4. Подключаем выход из Code Block ко входу param, нажимаем правую кнопку мыши, выбираем Переплетение — Самый длинный. Появятся точки на траектории.

Проецирование точек на поверхность

  1. Удалим ноды, создающие одну точку: Code Block и Point.ByCoordinates
  2. Создадим группу из нодов, формирующих точки из списка.
  3. Подключим выход из группы к ноду, формирующему проекцию на поверхность (ко входу geometryToProject. Затем выделяем узел, правой кнопкой — Переплетение — Самый длинный.
  4. Убираем лишние ноды по созданию точек.
  5. Соединяем выход Geometry и вход location.
  6. Соединяем выход Поверхность и вход face.
  7. На последнем ноде делаем Переплетение — Самый длинный.

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