Выбор

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

Пользовательский интерфейс

Библиотека Revit, доступная в пользовательском интерфейсе, включает категорию Selection, которая предлагает несколько способов выбора геометрии.

Для использования правильного метода выбора элементов Revit необходимо иметь четкое представление об их иерархии. Необходимо выбрать все стены в проекте? Используйте выбор по категории. Требуется выбрать все кресла фирмы Eames для приемной в стиле 1950-х? Используйте выбор по семейству. Перед переходом к упражнению ознакомьтесь с кратким обзором иерархии Revit.

Иерархия Revit

Пользовательский интерфейс

Помните таксономические ранги, которые проходят на уроках биологии? Согласно им, все организмы в природе делятся на царства, типы, классы, порядки, семейства, рода и виды. Элементы Revit упорядочены аналогичным образом. На базовом уровне иерархию Revit можно разделить на категории, семейства, типы* и экземпляры. Экземпляр представляет собой отдельный элемент модели (с уникальным идентификатором), а категория определяет типовую группу (например, «стены» или «полы»). Организация базы данных Revit подобным образом позволяет выбрать один элемент и все аналогичные ему элементы на основании указанного уровня иерархии.

* Примечание. Определение типов в Revit отличается от определения типов в программировании. В Revit термин «тип» относится к ветви иерархии, а не к типу данных.

Навигация по базе данных с помощью узлов Dynamo

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

Пользовательский интерфейс

Щелчок кнопкой мыши — самый простой способ непосредственного выбора элементов в Revit. Таким образом можно выбрать весь элемент модели или части его топологии (например, грань или ребро). При этом сохраняется динамическая связь с объектом Revit, благодаря чему при обновлении местоположения или параметров файла Revit связанный элемент Dynamo будет обновлен на графике.

Пользовательский интерфейс

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

Пользовательский интерфейс

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

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

Упражнение

Скачайте файлы примера для этого упражнения (щелкните правой кнопкой мыши и выберите «Сохранить ссылку как...»). Полный список файлов примеров можно найти в приложении.

  1. Selecting.dyn
  2. ARCH-Selecing-BaseFile.rvt

Упражнение

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

  1. Формообразующий элемент здания
  2. Фермы (адаптивные компоненты)
  3. Балки (несущий каркас)

Упражнение

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

  1. Так как мы используем базовую настройку, выберите формообразующий элемент здания, щелкнув Mass в раскрывающемся меню узла Categories. Эта функция также доступна на вкладке Revit > «Выбор».
  2. На выходе узла категории Mass мы получаем только саму категорию. Необходимо выбрать элементы. Для этого используйте узел All Elements of Category.

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

В данном случае вы работаете с простой геометрией, поэтому ее вполне можно добавить в область предварительного просмотра Dynamo. Рядом с элементом BldgMass узла Watch отображается зеленое число*. Это идентификатор элемента, который позволяет понять, что вы работаете с элементом Revit, а не геометрией Dynamo. Теперь необходимо преобразовать этот элемент Revit в геометрию Dynamo.

Упражнение

  1. С помощью узла Element. Faces мы получаем список поверхностей, представляющий каждую грань формообразующего элемента. Теперь можно просмотреть геометрию на видовом экране Dynamo и использовать грань как опорный элемент для параметрических операций.

Упражнение

Есть и другой способ. Вместо выбора с помощью иерархии Revit (узел All Elements of Category) можно выбрать геометрию непосредственно в Revit.

  1. В узле Select Model Element щелкните кнопку «Выбрать» (или Изменить). На видовом экране Revit выберите нужный элемент. В данном случае следует выбрать формообразующий элемент здания.
  2. Вместо выбора с помощью узла Element.Faces можно выбрать весь формообразующий элемент как единое геометрическое тело, применив Element.Geometry. При этом будет выбрана вся геометрия в пределах формообразующего элемента.
  3. С помощью Geometry.Explode можно снова сформировать список поверхностей. Эти два узла работают аналогично Element.Faces, но содержат дополнительные параметры для изучения геометрии элемента Revit.

Упражнение

  1. Используя базовые операции для списков, можно опросить нужную грань.
  2. Узел List.Count показывает, что в пределах формообразующего элемента присутствует 23 поверхности.
  3. Учитывая эти сведения, измените максимальное значение узла Integer Slider на 22.
  4. С помощью узла List.GetItemAtIndex мы используем списки в качестве входных данных и соединяем Integer Slider с портом ввода index. Изменяя положение регулятора с выбранными элементами, остановитесь на индексе 9, когда будет изолирован главный фасад с фермами.

Упражнение

  1. Предыдущий шаг был довольно трудоемким. Его можно выполнить гораздо проще и быстрее с помощью узла Select Face. Он позволяет изолировать в проекте Revit грань, которая не является самостоятельным элементом. Это же действие можно выполнить с помощью Select Model Element, выбрав поверхность вместо целого элемента.

Упражнение

Предположим, вам нужно изолировать стены главного фасада здания. Для этого можно использовать узел Select Faces. Нажмите кнопку выбора, а затем выберите четыре основных фасада в Revit.

Упражнение

  1. Выбрав четыре стены, нажмите в Revit кнопку Готово.

Упражнение

  1. Грани были импортированы в Dynamo в качестве поверхностей.

Упражнение

  1. Теперь рассмотрим балки над атриумом. С помощью узла Select Model Element выберите одну из балок.
  2. Соедините элемент балки с портом ввода узла Element.Geometry, после чего балка появится на видовом экране Dynamo.
  3. С помощью узла Watch 3D можно увеличить геометрию (если балка не отображается в Watch 3D, щелкните правой кнопкой мыши и выберите «Вписать»).

Упражнение

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

  1. Соедините элемент балки с портом ввода узла FamilyInstance.Symbol*.
  2. Изображение в узле Watch показывает, что выходные данные теперь являются обозначением семейства, а не элементом Revit.
  3. FamilyInstance.Symbol — это простой запрос, который можно легко выполнить в узле Code Block с помощью синтаксиса x.Symbol; и получить те же результаты.

* Примечание. Обозначение семейства — это термин API-интерфейса Revit для типоразмера в семействе. Чтобы не вызывать путаницы, в следующих выпусках термин будет обновлен.

Упражнение

  1. Для выбора остальных балок используйте узел All Elements of Family Type.
  2. Узел Watch показывает, что выбрано пять элементов Revit.

Упражнение

  1. Эти пять элементов также можно преобразовать в геометрию Dynamo.

Что если бы в проекте было 500 балок? Преобразование всех этих элементов в геометрию Dynamo заняло бы очень много времени. Если Dynamo требуется много времени для расчета узлов, возможно, вам следует воспользоваться функцией заморозки, чтобы поставить на паузу выполнение операций Revit во время создания графика. Для получения дополнительных сведений о заморозке узлов ознакомьтесь с разделом, посвященным заморозке, в главе о твердых телах.

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

Упражнение

С помощью того же графика узлов выберите элемент фермы вместо балки. Перед этим удалите узел Element.Geometry, добавленный в предыдущем шаге.

Упражнение

  1. В узле Watch отображается список адаптивных компонентов из Revit. Так как необходимо извлечь основную информацию, начните с адаптивных точек.
  2. Соедините узел All Elements of Family Type с узлом AdaptiveComponent.Location. В результате получится список списков, каждый из которых содержит три точки, представляющие местоположения адаптивных точек.
  3. При присоединении узла Polygon.ByPoints образуется сложная кривая. Она отображается на видовом экране Dynamo. Благодаря этому методу вы визуализировали геометрию одного элемента и абстрагировали геометрию оставшегося массива элементов (которых может быть больше, чем в данном примере).

* Совет. Если щелкнуть зеленый номер элемента Revit в Dynamo, видовой экран Revit увеличит этот элемент.