Уральский государственный архитектурно-художественный университет

ISSN 1990-4126

Архитектон: известия вузов. №4 (68) Декабрь, 2019

Новые технологии

Згода Юрий Николаевич

магистрант,
ФГБОУ ВО «Санкт-Петербургский государственный архитектурно-строительный университет».

Россия, Санкт-Петербург, e-mail: yurii.zgoda@mail.ru

Шумилов Константин Августович

кандидат технических наук, доцент,
ФГБОУ ВО «Санкт-Петербургский государственный архитектурно-строительный университет».

Россия, Санкт-Петербург, e-mail: shkas@mail.ru

АВТОМАТИЗИРОВАННОЕ ПОСТРОЕНИЕ ИНТЕРАКТИВНОЙ ВИЗУАЛИЗАЦИИ BIM-МОДЕЛЕЙ С ОТОБРАЖЕНИЕМ МЕТАДАННЫХ

УДК: 004(72)
Шифр научной специальности: 30.2-5-05

Аннотация

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

Ключевые слова: BIM-технологии, виртуальная реальность, дополненная реальность, Autodesk Revit, Renga

Введение

Одна из основных причин высокой распространенности информационных моделей зданий (англ. Building Information Model – BIM) – возможность хранения информации о проектируемом сооружении во взаимосвязанном виде [1]. Различные составляющие проекта, разработанные архитекторами, конструкторами, инженерами и другими участниками проекта, оказываются взаимосвязанными. Таким образом, изменения в одной части проекта автоматически отражаются на других его составляющих, тем самым повышая качество проекта и скорость разработки.

Актуальное направление развития BIM-технологий – визуализация BIM-моделей [2]. Обычно под визуализацией BIM-модели подразумевают статические изображения модели (рендеры), или видеоряд. Характерной чертой подобных визуализаций является то, что пользователь не может каким-либо образом воздействовать на визуализацию после того, как она была сгенерирована. Для выполнения подобной визуализации требуется длительная и трудоемкая обработка модели в 3D-редакторе: необходимо экспортировать BIM-модель, оптимизировать и отредактировать ее в 3D-редакторе и сгенерировать итоговое изображение или видеоряд [3]. Генерация итогового изображения зачастую выполняется с использованием трассировки лучей, из-за чего подготовка одного кадра может занимать до нескольких часов. Из этого следует, что при внесении любых изменений в исходную BIM-модель необходимы существенные затраты по времени и вычислительным ресурсам для обновления визуализации.

Альтернативным решением может стать построение интерактивной визуализации. В отличие от ранее рассмотренной визуализации на основе трассировки лучей, конечным продуктом интерактивной визуализации является приложение, с которым пользователь взаимодействует посредством устройств ввода. Визуализации в реальном времени используют кардинально иные алгоритмы, нежели трассировка лучей, что позволяет эффективно использовать вычислительные возможности GPU и выполнять визуализацию модели с высокой частотой кадров (90–120 кадров в секунду). Современные технологии визуализации в реальном времени позволяют имитировать эффекты визуализации, доступные только при трассировке лучей, тем самым обеспечивая качество визуализации, близкое к фотореалистичному [4].

Однако подготовка интерактивной визуализации BIM-модели, особенно с поддержкой технологий виртуальной и дополненной реальности, – еще более трудоемкая задача, нежели построение визуализации на основе трассировки лучей, так как помимо участия в проекте специалиста по 3D-графике необходимо участие программиста, реализующего интерактивную составляющую визуализации.

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

Стоит отметить, что интерактивная визуализация BIM-модели сама по себе считается крайне сложной задачей. Некоторые зарубежные исследователи выделяют визуализацию BIM- и CAD-моделей как отдельный подкласс визуализации, требующий применения специальных алгоритмов [5], так как модель может включать тысячи раздробленных объектов и десятки миллионов полигонов. Поэтому подготовка интерактивных визуализаций BIM-моделей (особенно с использованием 3D-движков собственной разработки) требует применения целого ряда передовых техник оптимизации рендеринга, сложных в разработке и отладке [6].

В связи с этим ряд компаний [7–9] предложили решения, полностью автоматизирующие процесс построения интерактивной визуализации BIM-модели в виртуальной и дополненной реальности. В этом случае со стороны пользователя достаточно нескольких кликов для получения близкой к фотореалистичной визуализации в виртуальной реальности. Однако визуализацию BIM-модели и отображение метаданных в ходе визуализации реализуют крайне редко.

Единственным решением в области визуализации, официально поддерживающим отечественный BIM-пакет Renga, является Artisan. Однако Artisan – зарубежная разработка, что не позволяет использовать его в рамках импортозамещения, в нем отсутствует поддержка технологий виртуальной и дополненной реальности, а качество визуализации в Artisan значительно уступает аналогичным решениям для Autodesk Revit и ArchiCAD.

Цель данной работы – разработка программно-аппаратного комплекса (ПАК), позволяющего в полностью автоматическом режиме строить интерактивные визуализации BIM-моделей, спроектированных в BIM-пакетах Renga и Revit с использованием технологий виртуальной и дополненной реальности.

Для реализации этой цели было необходимо решить следующие задачи:
• разработать архитектуру ПАК, позволяющую выполнить экспорт данных о BIM-модели, включая метаданные. Архитектура ПАК должна обладать достаточной гибкостью, чтобы при необходимости позволить расширить перечень поддерживаемых BIM-пакетов без необходимости в существенных изменениях ПАК;
• выбрать оптимальные для решения данной задачи средства построения интерактивных визуализаций и языки программирования;
• реализовать ПАК в соответствии с разработанной архитектурой с использованием выбранного инструментария;
• провести анализ полученных результатов.

Методика построения интерактивной визуализации BIM-модели

Обобщенная архитектура разрабатываемого ПАК приведена на рис. 1.

Рис. 1. Архитектура проектируемого ПАК в общем виде

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

В качестве аппаратной составляющей для реализации виртуальной реальности был выбран шлем виртуальной реальности Oculus Rift DK2 в сочетании с компьютером на базе intel core i7-4770, 16 GB ОЗУ и видеокартой Nvidia Geforce GTX 980.

Для реализации мобильной виртуальной реальности и дополненной реальности выбран смартфон Xiaomi Mi Max. Для выбора средств разработки модулей экспорта и модулей интерактивной визуализации были подробно изучены API BIM-пакетов Autodesk Revit и Renga, а также архитектура и возможности сред разработки интерактивных визуализаций Unity и Unreal Engine 4.

Разработка расширений для Autodesk Revit ведется на любом языке программирования, поддерживающим .NET, хотя наиболее распространенными при программировании для Autodesk Revit являются C#, управляемый C++ (C++ CLI) и VB.NET (документация по Revit API содержит примеры исходного кода именно на этих языках программирования). Стоит отметить, что из-за использования не «обычного» C++, а его .NET-реализации какого-либо существенного прироста в производительности за счет программирования на C++ достичь не удастся. С другой стороны, будет наблюдаться замедление разработки в связи с высокой сложностью разработки на C++.

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

В данной работе в качестве инструмента разработки был выбран язык программирования C#. Основные критерии, определившие этот выбор, – функциональность языка, удобный, лаконичный синтаксис и большое количество встроенных в .NET библиотек. Немаловажно, что в движке Unity, который был выбран для разработки интерактивной визуализации (о чем речь пойдет далее), C# также является одним из основных языков программирования, т. е. не возникает необходимости в использовании нескольких языков в одном проекте (что существенно упрощает взаимодействие между модулями экспорта и интерактивной визуализации).

В качестве основных сред для разработки интерактивной визуализации рассматривались кросс-платформенные среды разработки интерактивных визуализаций Unity и Unreal Engine. Оба движка предоставляют обширную документацию, имеют крупные сообщества разработчиков и включают реализацию многих передовых технологий интерактивной визуализации (таких как трассировка лучей в реальном времени, физически достоверный рендеринг, кросс-платформенная разработка и т. д.).

Главные отличия между Unity и Unreal Engine 4 заключаются в качестве визуализации и подходе к написанию программной логики. На момент начала исследования Unity значительно уступал Unreal Engine по уровню визуализации, из-за чего первые версии ПАК были разработаны на Unreal Engine. Однако с последними версиями Unity его графические возможности существенно улучшились [10], и модуль интерактивной визуализации была переписан на Unity.

Основным языком разработки UE4 является C++. Кроме того, доступен визуальный язык программирования Blueprints, однако он в данном случае не рассматривается из-за низкой производительности. При написании кода на C++ в UE4 имеется ряд ограничений, например невозможность использовать обработчики исключений, что существенно усложняет написание кода. Поскольку нет возможности обнаружения исключений в коде, любая ошибка адресации приводит к аварийному завершению UE4, что требует постоянного перезапуска тяжеловесной среды разработки в процессе отладки. При этом незначительные изменения исходного кода требуют повторной компиляции, занимающей несколько минут.

Методология разработки Unity предполагает написание компонентов (подробно паттерн «Компонент» см. в [11]), множество компонентов формирует отдельный объект на сцене. Разработка компонентов ведется на языке программирования C# версии 7.3, при этом поддерживаются все возможности языка, в т. ч. и исключения.

Другая немаловажная составляющая при выборе между Unity и Unreal Engine в данном проекте – кросс-платформенность. У обоих движков заявлена поддержка мобильных устройств. Однако у Unreal Engine имеется ряд особенностей, усложняющих разработку под мобильные платформы в сравнении с Unity.

Таким образом, в качестве оптимальных средств разработки нами были выбраны язык программирования C# (как для модуля экспорта, так и для модуля интерактивной визуализации) и среда разработки интерактивных визуализаций Unity 2019.2.

 

Архитектура программной составляющей ПАК приведена на рис. 2.

Рис. 2. Архитектура программной составляющей ПАК

Модуль экспорта обращается к API BIM-пакета и собирает необходимые сведения о BIM-модели, затем определенным образом упаковывает эти сведения и передает их в модуль интерактивной визуализации. Единственный компонент в данной архитектуре, зависящий от конкретного BIM-пакета, – подмодуль сбора данных о BIM-модели, все остальные элементы не требуют обращения к API.

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

Рис. 3. Структура хранения данных о BIM-модели

Как можно видеть на приведенной диаграмме зависимостей, основа данного формата – класс BIMModel. Экземпляры этого класса являются абстракцией над BIM-моделями из различных BIM-пакетов. BIM-модель состоит из набора BIM-объектов (BIMObject). Каждый BIM-объект, в свою очередь, представляется в виде геометрических данных (GeometryCollection) и метаданных (BIMMetadata). Метаданные представляют собой пары «ключ-значение» (MetadataItem).

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

После представления данных о BIM-модели в виде подобной структуры их необходимо преобразовать в бинарную форму и передать в модуль интерактивной визуализации. Для уменьшения объема итогового файла перед передачей в модуль интерактивной визуализации осуществляется предварительное сжатие с использованием библиотеки zlib.

Модуль интерактивной визуализации представляет собой набор приложений с одинаковой функциональностью, реализованный под различные платформы: ОС Windows, Linux и Android.

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

Ключевой составляющей модуля интерактивной визуализации является отображение метаданных по любому из элементов BIM-модели и возможность скрытия различных категорий объектов из вида пользователя. Изначально предполагалось, что для реализации подобной функциональности достаточно сгенерировать геометрическое отображение для каждого из объектов BIMObject и отображать сведения об объекте, если пользователь выделил конкретный объект. Аналогично скрытие или отображение категории выполняется путем скрытия или отображения всех элементов из этой категории. Однако у подобного «тривиального» подхода есть ряд недостатков.

Если имеется множество различных геометрических объектов с разными материалами, выполнение draw call (запроса к видекарте на отрисовку) оказывается слишком медленным, так как GPU вынужден постоянно переключать контекст отрисовки. В данной ситуации использование системы пакетирования Unity (draw call dynamic batching [12]) невозможно: механизм работает только для геометрических объектов, включающих не более 300 вершин (что невозможно обеспечить при визуализации реальных BIM-моделей). При этом сгруппировать все объекты BIMObject по материалам тоже нельзя, так как в этом случае у пользователя не будет возможности выделить конкретный объект в модели.

Для решения этой проблемы предлагается следующий подход: помимо геометрической составляющей модели (сгруппированной по материалам и категории), визуализация включает неотображаемые по умолчанию дублирующие объекты. Они не участвуют в визуализации и не расходуют обращений к видеокарте. Единственная ситуация, при которой они каким-либо образом расходуют вычислительные ресурсы – это поиск коллизий при клике пользователя по экрану. Если пользователь захотел выбрать какой-либо из объектов, визуализация этого объекта активируется и пользователь видит его в «подсвеченном» виде (рис. 4), а в соответствующих разделах отображаются метаданные.

Рис. 4. Отображение метаданных по выбранному объекту

Таким образом, с использованием всех описанных оптимизаций удалось достичь высокой частоты обновления кадров, сохранив при этом представление проекта в виде отдельных объектов. Для одной из наиболее сложных тестовых BIM-моделей Autodesk Advanced Sample данный подход позволил повысить частоту кадров при визуализации с 30-50 FPS до стабильных 90-120 FPS.

Результаты

Разработанный ПАК был апробирован на различных тестовых моделях, спроектированных в BIM-пакетах Revit и Renga. В качестве тестовых моделей использовались как авторские, так и демонстрационные модели, поставляемые вместе с BIM-пакетами. Сведения о моделях и производительности экспорта приведены в табл. 1 и 2. Внешний вид моделей в соответствующих BIM-пакетах представлен на рис. 5.

Рис. 5. Внешний вид моделей

Таблица 1
Производительность экспорта BIM-моделей из Renga

Таблица 2
Производительность экспорта BIM-моделей из Autodesk Revit 

Как видно из представленных данных, экспорт самых геометрически сложных BIM-моделей, участвовавших в тестировании, занимает не более минуты (в некоторых случаях и быстрее), что соизмеримо с экспортом через стандартные форматы экспорта 3D-моделей (OBJ для Renga и FBX для Autodesk Revit).

Модуль интерактивной визуализации апробирован в трех режимах работы: в режиме интерактивной визуализации на мониторе (рис. 6), интерактивной визуализации в виртуальной реальности (рис. 7) и интерактивной визуализации в дополненной реальности (рис. 8).

Рис. 6. Интерактивная визуализация для монитора

Рис. 7. Интерактивная визуализация в виртуальной реальности (приведены изображения для левого и правого глаза)

Рис. 8. Интерактивная визуализация BIM-модели в дополненной реальности

Таким образом, разработанный ПАК обеспечивает достаточно высокий уровень производительности, позволяя оперативно вносить изменения в BIM-модель и визуализировать ее с использованием технологий виртуальной и дополненной реальности.

По результатам тестирования модуль интерактивной визуализации показал высокую производительность – минимальную длительность импорта моделей и стабильно высокую частоту кадров, позволяющую комфортно изучать BIM-модель в виртуальной и дополненной реальности (если частота кадров для интерактивной визуализации в виртуальной реальности оказывается ниже 90 FPS, значительно возрастает риск головокружения и головных болей от использования шлемов и очков виртуальной реальности [13]).

Выводы

В рамках работы был выполнен анализ существующих на данный момент способов построения интерактивных визуализаций, приведены их преимущества и недостатки. Разработан программно-аппаратный комплекс, позволяющий в полностью автоматизированном режиме выполнять построение интерактивных визуализаций BIM-моделей в виртуальной и дополненной реальностях. ПАК позволяет экспортировать не только геометрическую составляющую модели, но и, что очень важно, метаданные. Для решения поставленных задач предложен ряд решений, направленных на повышение функциональности ПАК, а также на оптимизацию модулей экспорта и интерактивной визуализации.

Тестирование разработанного ПАК показало, что он обладает высокой производительностью как по скорости экспорта/импорта, так и по частоте кадров, что позволяет пользователю в комфортном режиме анализировать BIM-модель.

Библиография

1. Соловьева, Е.В., Сельвиан, М.А. Основные этапы внедрения технологии информационного моделирования (ВIМ) в строительных организациях / Е.В. Соловьева, М.А. Сельвиан // Науч. тр. Кубан. гос. технолог. ун-та. – 2016. – № 11. – С. 110–119.

2. Li, X. et al. Mapping the knowledge domains of Building Information Modeling (BIM): A bibliometric approach / X. Li et al. // Automation in Construction. – 2017. – Vol. 84. – P. 195–206.

3. Згода, Ю.Н., Шумилов, К.А. Проблемы и перспективы автоматизированного построения интерактивной визуализации информационных моделей зданий Autodesk Revit и Renga / Ю.Н. Згода, К.А. Шумилов // BIM-моделирование в задачах строительства и архитектуры. – СПб., 2019. – С. 118–123.

4. Akenine-Moller, T. Real-time rendering. AK Peters / T. Akenine-Moller, E. Haines, N. Hoffman // CRC Press, 2018.

5. Xue, J. Efficient GPU out-of-core visualization of large-scale CAD models with voxel representations / J. Xue, G. Zhao, W. Xiao // Advances in Engineering Software. – 2016. – Vol. 99. – P. 73–80.

6. Johansson, M. Efficient Stereoscopic Rendering of Building Information Models (BIM) / M. Johansson // Journal of Computer Graphics Techniques (JCGT). – 2016. – Vol. 5, – № 3. – P. 1–17.

7. EnscapeTM: Real-Time Rendering & Virtual Reality for Revit, SketchUp, Rhino & ArchiCAD [Электронный ресурс]. URL: https://enscape3d.com/ 

8. Lumion 3D Rendering Software | Architectural Visualization [Электронный ресурс]. – URL: https://lumion.com/ 

9. Unreal Engine | Twinmotion [Электронный ресурс]. – URL: https://www.unrealengine.com/en-US/twinmotion 

10. Unity Technologies. High-Definition Render Pipeline (HDRP) [Электронный ресурс] // Unity. – URL: https://unity.com/ru/srp/High-Definition-Render-Pipeline 

11. Nystrom, R. Game programming patterns / R. Nystrom. – Genever Benning, 2014.

12. Unity-Руководство: Батчинг вызовов отрисовки (Draw Call Batching) [Электронный ресурс] – URL: https://docs.unity3d.com/ru/current/Manual/DrawCallBatching.html 

13. Jerdan S.W. et al. Head-Mounted Virtual Reality and Mental Health: Critical Review of Current Research / S.W. Jerdan et al. // JMIR Serious Games. – 2018. – Vol. 6. – № 3.

Ссылка для цитирования статьи

Згода Ю.Н., Шумилов К.А. АВТОМАТИЗИРОВАННОЕ ПОСТРОЕНИЕ ИНТЕРАКТИВНОЙ ВИЗУАЛИЗАЦИИ BIM-МОДЕЛЕЙ С ОТОБРАЖЕНИЕМ МЕТАДАННЫХ [Электронный ресурс] / Ю.Н. Згода, К.А. Шумилов //Архитектон: известия вузов. – 2019. – №4(68). – URL: http://archvuz.ru/2019_4/15 


Лицензия Creative Commons
Это произведение доступно по лицензии Creative Commons "Attrubution-ShareALike" ("Атрибуция - на тех же условиях"). 4.0 Всемирная


Дата поступления: 11.11.2019
Просмотров: 247