Адаптация
Last updated
Last updated
Ранее мы рассмотрели редактирование базового формообразующего элемента здания. Теперь мы предлагаем подробнее изучить взаимодействие Dynamo и Revit путем редактирования большого количества элементов за один подход. Адаптация усложняется при увеличении масштаба, так как структура данных требует более сложных операций со списками. Однако основные принципы работы при этом остаются прежними. Рассмотрим возможности расчета с помощью набора адаптивных компонентов.
Предположим, что вы создали набор адаптивных компонентов и хотите отредактировать параметры на основании местоположений точек. Например, точки могут определять параметр толщины, который связан с площадью элемента. Кроме того, они могут отвечать за параметр непрозрачности, связанный с уровнем инсоляции за год. Dynamo позволяет связать расчет с параметрами за несколько простых шагов. Основы этого процесса будут приведены в упражнениях ниже.
Опросите адаптивные точки выбранного адаптивного компонента с помощью узла AdaptiveComponent.Locations. Это позволяет выполнить расчет для абстрагированной версии элемента Revit.
Получив местоположение точек адаптивных компонентов, можно запустить несколько расчетов для элемента. Например, адаптивный компонент по четырем точкам позволяет изучить отклонение от плоскости для заданной панели.
Используя повторное сопоставление, можно сопоставить набор данных с диапазоном параметров. Это основной инструмент параметрического моделирования, который вы сможете изучить подробнее, выполнив упражнение ниже.
В Dynamo местоположения точек адаптивных компонентов можно использовать для создания плоскости наилучшего вписывания для каждого элемента. Кроме того, можно запросить положение солнца в файле Revit и изучить относительную ориентацию плоскости к солнцу по сравнению с другими адаптивными компонентами. Давайте выполним это путем создания алгоритмической кровли в упражнении ниже.
Скачайте файл примера, щелкнув указанную ниже ссылку.
Полный список файлов примеров можно найти в приложении.
В данном упражнении будут подробнее рассмотрены техники из предыдущего раздела. Вам понадобится определить параметрическую поверхность на основе элементов Revit, создать экземпляры адаптивных компонентов по четырем точкам, а затем отредактировать их на основании ориентации относительно солнца.
Для начала выберите два ребра с помощью узла Select Edge. Два ребра представляют собой длинные пролеты атриума.
Объедините два ребра в один список, используя узел List.Create.
Создайте поверхность между двумя ребрами с помощью узла Surface.ByLoft.
В узле Code Block задайте диапазон от 0 до 1 с 10 равномерно распределенными значениями:
0..1..#10;
.Соедините Code Block с портами ввода \u\ и v узла Surface.PointAtParameter, а также соедините узел Surface.ByLoft с портом ввода surface. Щелкните узел правой кнопкой мыши и задайте для параметра Переплетение значение Векторное произведение. На поверхности появится сетка из точек.
Эта сетка из точек служит в качестве управляющих точек для параметрической поверхности. Необходимо извлечь положения u и v каждой из этих точек, чтобы ввести их в параметрическую формулу и сохранить существующую структуру данных. Это можно сделать, запросив местоположения параметров только что созданных точек.
Добавьте узел Surface.ParameterAtPoint в рабочую область и соедините порты ввода, как показано выше.
Запросите значения u для этих параметров с помощью узла UV.U.
Запросите значения v для этих параметров с помощью узла UV.V.
В выходных данных отображаются соответствующие значения u и v для каждой точки поверхности. Вы получили диапазон от 0 до 1 для каждого значения, обеспечена правильная структура данных, и можно применять параметрический алгоритм.
Добавьте узел Code Block в рабочую область и введите код:
Math.Sin(u*180)*Math.Sin(v*180)*w;
. Это параметрическая функция, которая создает синусоидальную выпуклость на основе плоской поверхности.Соедините UV.U с входным параметром u и UV.V с входным параметром v.
Порт ввода w представляет амплитуду формы, поэтому к нему нужно присоединить узел Number Slider.
Теперь у вас есть список значений в соответствии с алгоритмом. Используйте этот список для перемещения точек вверх по оси +Z. Используя узел Geometry.Translate, соедините Code Block с портом ввода zTranslation, а Surface.PointAtParameter — с портом ввода geometry. В области предварительного просмотра Dynamo отображаются новые точки.
Наконец, создайте поверхность с помощью узла NurbsSurface.ByPoints, соединив узел из предыдущего шага с портом ввода points. В результате получается параметрическая поверхность. Перетаскивайте регулятор, чтобы уменьшить или увеличить выпуклость.
Теперь нам нужно найти способ разбить полученную параметрическую поверхность на панели, чтобы разместить адаптивные компоненты по четырем точкам в формате массива. В Dynamo нет готовой функции для работы с панелями, поэтому обратимся к сообществу пользователей за полезными пакетами Dynamo.
Перейдите к разделу «Пакеты» > «Поиск пакета...».
Найдите LunchBox и скачайте файл LunchBox for Dynamo. Это очень полезный набор инструментов для подобных операций с геометрией.
После скачивания вы получите полный доступ к пакету LunchBox. Найдите Quad Grid и выберите LunchBox Quad Grid By Face. Соедините параметрическую поверхность с портом ввода surface и установите деления U и V на 15. В области предварительного просмотра Dynamo должна отобразиться поверхность с прямоугольными панелями.
Если вас заинтересовала ее настройка, дважды щелкните узел Lunch Box и просмотрите параметры.
Вернитесь в Revit, чтобы узнать, какой адаптивный компонент используется в этой программе. Нет необходимости его повторять, но это панель крыши, которая будет использоваться в качестве экземпляра массива. Это адаптивный компонент по четырем точкам, который является грубым представлением системы ЭТФЭ. Апертура центральной полости находится на параметре ApertureRatio.
Так как вы собираетесь создать большое количество экземпляров геометрии в Revit, убедитесь, что решатель Dynamo находится в ручном режиме.
Добавьте узел Family Types в рабочую область и выберите ROOF-PANEL-4PT.
Добавьте узел AdaptiveComponent.ByPoints в рабочую область, соедините порт вывода Panel Pts узла LunchBox Quad Grid by Face с портом ввода points. Соедините узел Family Types с портом ввода familySymbol.
Нажмите кнопку Запуск. Для создания геометрии программе Revit потребуется немного времени на раздумья. Если это занимает слишком много времени, слегка уменьшите значение 15 в узле Code Block. Это уменьшит количество панелей на крыше.
Примечание. Если Dynamo требуется много времени для расчета узлов, возможно, вам следует воспользоваться функцией заморозки, чтобы поставить на паузу выполнение операций Revit во время создания графика. Дополнительные сведения о замораживании узлов см. в разделен «Замораживание» в главе «Тела».
В Revit мы видим массив панелей на крыше.
Увеличив масштаб, можно детально рассмотреть свойства их поверхности.
Используя результаты, полученные на предыдущем шаге, настройте апертуру каждой панели с учетом инсоляции. Увеличьте масштаб в Revit и выберите одну панель, чтобы увидеть на панели свойств параметр Коэффициент апертуры. В настройках семейства задан диапазон апертуры от 0,05 до 0,45.
Если включить траекторию солнца, можно увидеть текущее положение солнца в Revit.
С помощью узла SunSettings.Current можно задать положение солнца в качестве опорного значения.
Соедините узел SunSettings с узлом Sunsetting.SunDirection, чтобы получить вектор солнца.
На основе значения, полученного из порта вывода Panel Pts, использованного для создания адаптивных компонентов, выполните аппроксимацию плоскости для компонента с помощью узла Plane.ByBestFitThroughPoints.
Запросите нормаль этой плоскости.
Для расчета ориентации инсоляции используйте скалярное произведение. Скалярное произведение — это формула, которая определяет, насколько параллельны или не параллельны два вектора. Чтобы приблизительно смоделировать ориентацию инсоляции, вы сравниваете нормаль плоскости каждого адаптивного компонента с вектором солнца.
Извлеките абсолютное значение результата. Это гарантирует точность скалярного произведения, если нормаль плоскости повернута в обратном направлении.
Нажмите кнопку Запуск.
Скалярное произведение предоставляет широкий диапазон чисел. Нужно использовать их относительное распределение, однако необходимо объединить числа в соответствующем диапазоне редактируемого параметра Коэффициент апертуры.
Узел Math.RemapRange отлично для этого подходит. Он извлекает список входных данных и сопоставляет его пределы с двумя целевыми значениями.
Задайте целевые значения 0,15 и 0,45 с помощью узла Code Block.
Нажмите кнопку Запуск.
Соедините сопоставленные значения с узлом Element.SetParameterByName.
Соедините строку Aperture Ratio с портом ввода parameterName.
Соедините адаптивные компоненты с портом ввода element.
Нажмите кнопку Запуск.
Уменьшив масштаб в Revit, можно изучить влияние ориентации солнца на апертуру панелей ЭТФЭ.
При увеличении изображения видно, что панели ЭТФЭ более закрыты по направлению солнца. Цель данного упражнения — уменьшить перегрев из-за инсоляции. Если требуется увеличить проникновение света в помещение на основании инсоляции, просто смените область на Math.RemapRange.