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

Rhino.Inside.Revit

4 октября 2021


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

Элемент ДНК

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

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

Сгенерированные элементы затем сохраняются в документе Revit. Они также организованы сериями Контейнеров, каждый из которых имеет определенную цель.

Подкатегории определяются как вложенный уровень организации внутри категорий, но на практике их легче рассматривать как свойство геометрии, а не как уровень организации. Когда функция семейства генерирует геометрию, она может сгруппировать их в подкатегории основной категории. Их основная цель — обеспечить более точный контроль над графическим представлением каждой части геометрии.

Элементы и экземпляры

Часто задаваемый вопрос: что такое элемент? Элементы являются основными строительными блоками в модели данных Revit. Элементы организованы в категории. Список категорий встроен в каждую версию Revit и не может быть изменен. Элементы имеют параметры, которые содержат данные, связанные с элементом. В зависимости от категории, элементы получат ряд встроенных параметров, а также могут принимать настраиваемые параметры, определенные пользователем. Элементы могут иметь геометрию, например. Стены (3D) или Компоненты деталей (2D) или могут вообще не включать какую-либо геометрию, например Информация о проекте (Да, даже это элемент в модели данных Revit, хотя его нельзя выбрать, поскольку виды Revit созданы на основе геометрических элементов, поэтому Revit предоставляет настраиваемое окно для редактирования информации о проекте). У элементов есть типы, которые определяют поведение элемента в модели Revit.

В Revit API элементы представлены классом DB.Element, а каждый параметр элемента представлен классом DB.Parameter. Класс DB.Element имеет несколько методов для предоставления доступа к своей коллекции свойств.

Каждый элемент имеет идентификатор (DB.Element.Id), который является целочисленным значением. Однако этот идентификатор нестабилен при обновлениях и операциях с рабочими наборами, таких как «Сохранить в хранилище», и может измениться. Как правило, безопаснее получать доступ к элементам по их уникальному идентификатору (DB.Element.UniqueId), особенно если вы собираетесь сохранить ссылку на элемент вне модели Revit, например, внешняя база данных. Обратите внимание, что хотя DB.Element.UniqueId выглядит как номер UUID, это не так. Имейте это в виду, если вы отправляете эту информацию во внешние базы данных.

Параметры

Элементы содержат параметры, которые могут нести метаданные. Например, высота — это свойство элемента стены, а его значение передается параметром высоты. Давайте посмотрим на различные типы параметров, с которыми мы сталкиваемся при работе с элементами Revit.

Встроенные параметры

Это наиболее очевидный набор параметров, которые встроены в Revit в зависимости от типа элемента. Например, элемент «Стена» или «Комната» имеет параметр «Объем». Этот параметр не имеет смысла для элемента 2D-области с заливкой и, следовательно, не связан с этим типом элемента.

Revit отображает список встроенных параметров на панели «Свойства элемента».

В Revit API все встроенные параметры представлены перечислением в классе DB.BuiltInParameter.

Проект/общие параметры

Revit позволяет пользователю создавать ряд настраиваемых параметров и применять их глобально к выбранным категориям. Панель «Свойства элемента» также отображает параметры проекта, прикрепленные к выбранному элементу.

Глобальные параметры

Глобальные параметры — это параметры, не зависящие от категории, которые могут применяться к диапазону параметров экземпляра или типа во многих различных категориях Revit.

Категории, семейства и типы

Как показано на приведенном выше рисунке, Revit упорядочивает компоненты здания по категориям, семействам и типам. Обсудим каждый подробнее.

Категории

Категории — это группы самого высокого уровня. Эти категории встроены в Revit и свободно организуют компоненты по их функциям.

    В модели Revit также есть несколько типов категорий:

  • Категории моделей, например Стены, двери, полы, крыша и т.д.;
  • Аналитические категории, например Аналитические поверхности, структурные нагрузки и т.д.;
  • Категории аннотаций, например Теги, размеры и т.д.;
  • В каждом типе категорий содержится много категорий. Некоторые утверждают, что тип категории на самом деле является организацией более высокого уровня, но на практике, следуя системе организации категорий, семейств и типов, легче понять и запомнить.

В Revit API все встроенные категории представлены перечислением в классе DB.BuiltInCategory, а все встроенные типы категорий – в классе DB.CategoryType.

Типы

Прежде чем обсуждать семейства, нам нужно обсудить типы в Revit. В каждой из рассмотренных выше категорий Revit может быть несколько типов элементов. Например, однопанельная дверь размером 1 м x 2 м представляет собой тип двери в категории «Двери» или деревянная колонна 0,6х1,2 представляет собой тип колонна в категории «Структурные колонны».

Каждый тип может иметь ряд параметров типа, которые изменяют поведение или другие аспекты этого конкретного типа. При работе с Revit мы стремимся определять или изменять различные типы и размещать экземпляры этих типов в модели. Например, мы можем определить тип однопанельной двери размером 1 м x 2 м и разместить множество экземпляров этого типа в модели. Все эти экземпляры будут следовать логике, установленной этим конкретным типом. Однако определения типа могут также разрешить изменение определенных параметров экземпляра, чтобы изменить поведение или графику конкретного экземпляра.

Семейства

Теперь, когда мы знаем, что такое Типы, мы можем обсудить Семейства. Существует большая проблема со структурой категорий и типов, которые мы обсуждали выше. В модели Revit может быть много разных типов, и они могут радикально отличаться друг от друга. Например, у нас могут быть сотни типов дверей различного дизайна и размеров. Гаражные ворота сильно отличаются от одностворчатых межкомнатных дверей. Итак, нам нужен способ организовать эти типы в связанные группы:

  • Системные семейства — это именованные группы, например Система воздуховодов или основная стена;
  • Пользовательские семейства (или загружаемые семейства) намного сложнее. Это способ создания нестандартных типов с индивидуальным дизайном и поведением. Например, вы можете создать новое семейство столов, которое выглядит как космический корабль, парит над полом и может отображать от 6 до 12 стульев в зависимости от желаемой конфигурации. Редактор семейств Revit можно использовать для определения новых пользовательских семейств на основе файла шаблона семейств (* .rft). Пользовательские семейства могут храниться во внешних файлах семейств (* .rfa) и использоваться совместно с другими пользователями Revit. Фактические семейства — это упрощенный вариант пользовательских семейств, специально созданный для геометрии, которая имеет ограниченное использование в модели.

В Revit API пользовательские семейства представлены в классе DB.Family, их различные типы представлены в классе DB.FamilySymbol, а каждый экземпляр представлен в классе DB.FamilyInstance

Определение новых пользовательских семейств — нетривиальная задача, особенно если они должны быть умными и гибкими, чтобы адаптироваться к различным условиям модели, и, возможно, это одна из самых важных тем автоматизации в Revit. Большинство компаний создают собственный набор пользовательских семейств для различных компонентов, которые часто используются в своих моделях. Встречаются компании, которые создают собственные семейства или решения для организации семейств.

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

Контейнеры

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

Документы и ссылки

Проще говоря, документы Revit представляют собой коллекции элементов Revit. Документ Revit может представлять модель здания (проекты Revit) или определение пользовательского семейства (семейства Revit).