Ural State University of Architecture and Art

ISSN 1990-4126

Architecton: Proceedings of Higher Education №4 (68) December, 2019

New technologies

Zgoda Yury N.

Master’s Degree student,
Saint Petersburg State University of Architecture and Civil Engineering.

Russia, St. Petersburg, e-mail: yurii.zgoda@mail.ru

Shumilov Konstantin A.

PhD. (Engineering), Associate Professor, 
Saint Petersburg State University of Architecture and Civil Engineering.

Russia, St. Petersburg, e-mail: shkas@mail.ru

AUTOMATED GENERATION OF INTERACTIVE BIM-MODEL VISUALIZATIONS WITH METADATA MAPPING

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

Abstract

We have developed a software and hardware complex (SHC) to generate interactive visualizations of BIM-models supported by virtual and augmented reality technologies. The main feature of the HSC is its ability to visualize metadata in both virtual and augmented realities. In our case, HSC supports Autodesk Revit and Renga BIM-packages but its architecture allows it to be quickly readjusted to support any other BIM software. Several techniques are proposed for optimizing HSC performance in the communication with BIM-software API and BIM model rendering.
HSC tests have demonstrated high performance, and now BIM professionals have an opportunity to prepare, within a very short time, interactive visualizations of BIM-models created by different tools on various platforms.

Keywords: BIM, virtual reality, augmented reality, 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-модель.

References

1. Solovieva, E.V., Selvian, M.A. (2016) Main stages in the introduction of information technologies (BIM) in building companies. Transactions of the Kuban State Technological University, No. 11, pp. 110–119. (in Russian)

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

3. Zgoda, I.N, Shumilov, K.A. (2019) Issues in and prospects for automated interactive visualization of information building models in Autodesk Revit and Renga. BIM in Construction & Architecture, pp. 118–123. (in Russian)

4. Akenine-Möller, T., Haines, E., Hoffman, N. (2918) Real-time rendering. A.K. Peters/CRC Press.

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

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

7. EnscapeTM: Real-Time Rendering & Virtual Reality for Revit, SketchUp, Rhino & ArchiCAD [Online]. Available at: https://enscape3d.com/  (accessed: 08.11.19).

8. Lumion 3D Rendering Software | Architectural Visualization [Online]. Available at: https://lumion.com/  (accessed: 08.11.2019).

9. Unreal Engine | Twinmotion [Online]. Available at: https://www.unrealengine.com/en-US/twinmotion  (accessed: 08.11.2019).

10. Technologies U. High-Definition Render Pipeline (HDRP) in Unity for high-resolution graphics [Online]. Unity. Available at: https://unity.com/ru/srp/High-Definition-Render-Pipeline  (accessed: 08.11.2019).

11. Nystrom, R. (2014) Game programming patterns. Genever Benning. (in Russian)

12. Unity - Documentation: Draw Call Batching [Online]. Available at: https://docs.unity3d.com/ru/current/Manual/DrawCallBatching.html  (accessed: 08.11.2019). (in Russian)

13. Jerdan, S.W. et al. (2018) Head-Mounted Virtual Reality and Mental Health: Critical Review of Current Research. JMIR Serious Games, Vol. 6, No. 3. (in Russian)

Citation link

Zgoda Yu.N., Shumilov K.A. AUTOMATED GENERATION OF INTERACTIVE BIM-MODEL VISUALIZATIONS WITH METADATA MAPPING [Online] //Architecton: Proceedings of Higher Education. – 2019. – №4(68). – URL: http://archvuz.ru/en/2019_4/15 


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


Receipt date: 11.11.2019
Views: 246