Взаимодействие Rhinoceros и Revit®. Grasshopper

Revit®. Grasshopper

22 октября 2021


Компоненты Grasshopper с поддержкой Revit®

Иконки компонентов с поддержкой Revit® помогают определить действие, выполняемое компонентом. Как показано ниже, базовый цвет показывает тип действия (Запрос, Анализ, Изменение, Создание). К иконкам также применяется ряд значков, которые показывают тип, идентичность или другие аспекты данных, для работы с которыми предназначен компонент:

grasshopper conventions

Например, вот как отображаются компоненты Запрос, Анализ, Изменение и Создание для Стены:


Сквозные компоненты

В некоторых случаях используется специальный тип сквозного компонента, который объединяет действия Анализ, Изменение, Создание в один компонент. Это помогает уменьшить количество компонентов и избежать загромождения интерфейса. Эти компоненты имеют разделенный фон, например Разворот элемента или Определение материала:

grasshopper passthrucomps

В качестве примера рассмотрим группу Определение материала. Эти компоненты принимают две группы входных данных. Первым входным параметром является элемент Revit, с которым работает этот компонент, в данном случае Материал. Ниже этого входного параметра приведен ряд входных данных, которые можно изменить в этом элементе Revit:

grasshopper passthruinputs

Другая сторона компонента, как обычно, показывает выходные параметры. Обратите внимание, что список входных и выходных параметров не всегда одинаков. Обычно для создания элемента требуется другой набор свойств, а также некоторые выходные свойства вычисляются на основе вычисляемого элемента (например, стены не принимают объем в качестве входных данных, но могут иметь его в качестве выходных данных). Более того, не все свойства элемента можно изменить с помощью Revit API:


У сквозных компонентов также есть необязательный выходной параметр для типа элемента Revit, с которым они имеют дело, в данном случае Материал:



Теперь становится понятнее, почему эти компоненты называются сквозными. В элемент, поступающий на вход, вносятся изменения, проводится его анализ и затем этот элемент передается на выход компонента. Для данных компонентов лучше объединять операции последовательно, а не параллельно. Это играет большую роль для обеспечения порядка операций, поскольку все целевые элементы фактически принадлежат Revit, и Grasshopper не может полностью определить результаты этих операций:


Транзакционные компоненты

Некоторым компонентам, поддерживающим Revit, необходимо запускать транзакции в активном документе, чтобы создавать новые элементы или вносить изменения. При каждом выполнении определения Grasshopper важно знать, какие компоненты внесли вклад в изменения документа. Это помогает лучше понимать и управлять транзакциями и их последствиями (например, разработчик может изменить логику графа, чтобы объединить многие транзакционные компоненты и повысить производительность).

Эти компоненты окрашиваются в темный цвет при выполнении транзакции:


Обратите внимание, что если входные параметры и целевой элемент не изменяются, компонент не будет вносить никаких изменений при следующем выполнении определения Grasshopper, а фон компонента изменится на серый по умолчанию.

Вы также можете использовать компонент Grasshopper Trigger, чтобы контролировать выполнение этих компонентов:


Предварительный просмотр геометрии

Вы можете использовать переключатель предварительного просмотра в компонентах Grasshopper, чтобы включить или отключить предварительный просмотр Revit. Вы также можете переключить предварительный просмотр глобально на вкладке Rhinoceros в Revit:

Переключение решателя

Решатель Grasshopper также можно переключить на вкладке Rhinoceros в Revit. Это особенно полезно для сокращения времени ожидания на больших моделях Revit:

Отслеживание элементов

Отслеживание позволяет Grasshopper заменять ранее созданные элементы Revit даже между сохранениями. Выходные данные каждого компонента запоминают, какие элементы Revit были добавлены, и избегают дублирования. Только добавление компонентов в Grasshopper использует отслеживание. Grasshopper запомнит эти элементы после закрытия файла и его повторного открытия в будущем.

Режимом отслеживания можно управлять, щелкнув правой кнопкой мыши в центре компонента.


Доступно 3 режима:

  • Отключить — отключает отслеживание созданных элементов Revit. Это может привести к созданию повторяющихся элементов в Revit;
  • Включить: Замена — при каждом запуске Grasshopper будут создаваться новые элементы в Revit, заменяющие ранее созданный элемент;
  • Включить: Обновление — настройка по умолчанию. Grasshopper попытается изменить существующие элементы в Revit, если это возможно (если Revit API допускает тип модификации). В противном случае будут созданы новые объекты, и компонент будет вести себя как Включено: Заменить.

Каждый выход на Добавление компонента имеет дополнительные элементы управления, помогающие управлять отслеживанием:



  • Выделить — выберите и выделите элементы Revit, созданные с помощью этого вывода;
  • Открепить — удалите булавку из любого элемента Revit, созданного с помощью этого вывода. Также для этого можно использовать компонент Unpin;
  • Удалить — удалить любые элементы, отслеживаемые этим выходом;
  • Освободить — при выводе объекты будут забыты и не будут отслеживаться. Имейте в виду, что это может создать повторяющиеся объекты, если определение Grasshopper будет запущено снова.

Системы единиц

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



Независимо от выбора в этом диалоговом окне, геометрия будет преобразована в правильный размер в обоих продуктах.

Имейте в виду, что масштабирование модели в Rhino также повлияет на допуски, указанные ниже. Модель, которую необходимо значительно увеличить, например с миллиметров до метров, может отрицательно повлиять на допуск.

Допуски

Revit может обрабатывать кривые, BREP (NURBS) и геометрию сетки из Rhino. Важным аспектом геометрии является геометрический допуск, с которым была построена любая форма. При преобразовании геометрии проблемы с допусками могут повлиять на Revit по-разному.

  • В идеале Rhino Breps можно напрямую преобразовать в Revit, но если допуски неверны, Revit может отклонить геометрию.
    Геометрия, которую невозможно преобразовать в Revit напрямую, будет направлена на вторичный метод передачи с использованием файлов SAT. Передача SAT происходит намного медленнее. Предупреждение появится на компонентах, которым необходимо использовать метод SAT;
  • Элементы Directshape, которые не проходят ни нормальную передачу, ни передачу SAT, могут быть импортированы как модели сетки с плотными черными краями.
    Типы семейств могут принимать только геометрию NURBS, поэтому необходимо решить проблемы с допусками. Сообщение об ошибке отобразится, если некоторая геометрия не преобразована в тип семейства;


  • Модели, находящиеся на большом расстоянии от исходной точки, могут не выдерживать жестких допусков и поэтому могут быть отклонены Revit.

В идеале модель Rhino и модель Revit можно моделировать с одинаковым допуском.

Для кривых Revit не принимает сегменты кривых длиной менее 1 мм. Сюда входят кромки обрезки поверхности.

  • 1/256 (0,0039) фута
  • 3/64 (0,047) дюйма
  • Около 1 мм

Для допусков NURBS Rhino должен быть установлен на встроенный допуск Revit. Чтобы установить допуск, перейдите в раскрывающееся меню Инструменты> Параметры> Единицы. Затем установите для него допуск Revit в зависимости от типа блока:

  • 0,1 мм
  • 0,0001 метра
  • 0,006 дюйма
  • 0,0005 фута

На практике не всегда возможно получить модели Rhino с таким же допуском, как хотелось бы Revit. Хорошим примером являются модели, созданные в другом программном обеспечении или импортированные. Общий процесс фиксации проблемных моделей выглядит следующим образом:

Необходимо обнаружить и исправить поврежденные объекты в Rhino, используя процесс ремонта Selbadobject.
Затем установить допуск в файле и сбросить допуск для объектов, как показано выше.
Существующие модели, у которых есть проблема с допуском, можно сбросить на новый допуск. Этот процесс может усложниться. Чтобы сбросить допуск и обновить всю информацию о соединениях в модели:

  • Разнесите многослойные поверхности на поверхности;
  • Выберите все поверхности и запустите команду RebuildEdges. Используйте настройки по умолчанию;
  • Выберите поверхности и нажмите команду «Соединить»;
  • Запустите команду «Показать край», чтобы проверить наличие оголенных краев. Это края, выходящие за пределы допуска.

Производительность Grasshopper

Как упоминалось в разделах выше, пристальное внимание нижеследующим элементам поможет повысить производительность определения Grasshopper:

  • Grasshopper работает поверх Revit. Поэтому, при увеличении (большие модели, слишком много открытых видов и т. д.), Grasshopper может не получить время, необходимое для обновления ресурсов и предварительных просмотров;
  • Grasshopper, предыдущий в Revit, требует преобразования геометрии. Слишком большое количество предварительных просмотров также замедляет просмотр Revit. При необходимости сохраните предварительный просмотр компонентов Grasshopper. Вы также можете переключить предварительный просмотр глобально на вкладке Rhinoceros в Revit;
  • Выполнение множества транзакций для отдельных элементов происходит медленнее, чем выполнение одной транзакции для нескольких элементов одновременно. Постарайтесь спроектировать логику графа таким образом, чтобы один компонент транзакции мог работать с любым количеством элементов, которые вам нужно изменить одновременно;
  • Переключение решателя Grasshopper может помочь сократить время ожидания на больших моделях Revit;
  • Геометрия низкого качества или модели за пределами допуска могут замедлить процесс переноса. См. pаздел «Допуски» выше.