Идейным создателем и одним из разработчиков решения IFC.js, является Antonio González Viegas — BIM software developer. И в качестве вступления и описания продукта, приведу вольный перевод с его слов:
Сектор AEC традиционно был рынком нескольких богатых ресурсами игроков. Крупные компании годами создавали свои собственные продукты: миллионы строк кода, решающие проблемы, которые в конечном итоге составляют приложения для реализации BIM и которые мы знаем из повседневной жизни.
Проблема в этой ситуации заключается в том, что новым разработчикам и компаниям очень трудно предлагать свои идеи и конкурировать на равных условиях на этом рынке. И получается, что доступ к "высшей лиге" имеют те, кто может себе это позволить.
Это не относится к таким секторам, как видеоигры, где существует множество инструментов и технологий (видеоигровых движков), которые позволяют любому создать продукт высокого уровня с минимальными затратами времени и ресурсов. Было бы здорово иметь то же самое в секторе AEC?
Вот почему мы запустили IFC.js. Вместо того, чтобы создавать решение для реализации технологии BIM и продавать его как продукт, мы делаем его свободно доступным, чтобы каждый мог создавать свои собственные BIM-продукты высокого уровня. Таким образом, мы все можем конкурировать на рынке программного обеспечения с одним и тем же инструментом, где каждый может предложить свои идеи по улучшению.
IFC.js — молодой проект, который развивается и растет с каждым днем. Наша цель — позволить каждому разрабатывать программное обеспечение BIM с такой же легкостью, с какой разрабатываются видеоигры. IFC.js бесплатен, у него нет владельца, и любой может использовать его или участвовать в проекте.
Как вы уже поняли, преследуется концепция Open BIM, противопоставляя решение тяжеловесным и закрытым проприетарным программам, таким как Autodesk Revit, например.
IFC.js даёт возможность BIM-специалистам или разработчикам из других сфер создавать свои собственные BIM-решения, решающие их бизнес-задачи внутри компаний или же создавать свои коммерческие BIM-стартапы. В этом плане, лицензия IFC.js даёт полную свободу действий. Библиотека предназначена для всех, кто хочет разрабатывать BIM-приложения, будь то разработчики, создающие решения для строительной отрасли, так и архитекторы совместно с другими специалистами. Для полноценной работы с IFC.js необходимо иметь базовые знания JavaScript, HTML и CSS, а так же не плохо, если вы знакомы с некоторыми 3D- библиотеками для отображения геометрии (Three.js или Babylon.js)
Структура IFC.js
В связи с тем, что IFC.js большая, мульти-язычная библиотека (C++, TypeScript JavaScript и т.д.) и держать её в одном репозитории было бы сложно и громоздко, её разбили на три основные части:
- web-ifc — Ядро библиотеки: IFC парсер и генератор геометрии, написанные с нуля на языке C и скомпилирован через Emscripten в WebAssembly. Этот репозиторий инкапсулирует сложность чтения файлов IFC и загрузки их данных в память. Demo
- web-ifc-three — Эта библиотека адаптирует web-ifc к Three.js, создавая оптимизированную 3D-сцену, в которой пользователи могут напрямую взаимодействовать с IFC. Эта библиотека является официальным загрузчиком Three.js IFC. Благодаря этому приложения BIM можно создавать с помощью Three.js всего за пару строк кода. Demo
- web-ifc-viewer — Это решение для просмотра IFC в браузере со множеством примеров того, что можно сделать с помощью IFC.js. Навигация по сценам, изменение материалов, выбор элементов по нажатию на них, планы разрезов и т. д. В этом репозитории есть пример всех этих функций, поэтому его можно повторно использовать в открытых приложениях BIM из коробки. Demo
Каждая последующая часть зависит от предыдущей, в такой последовательности: web-ifc — web-ifc-three — web-ifc-viewer
Обучение
Помимо всего прочего, Antonio проводит два курса IFC.js crash course и Advanced BIM frontend course по работе с их библиотекой и в целом с web разработкой. Курс IFC.js crach cource, как заявляет создатель, подходит для начального уровня и обучение ведётся с нуля, но под конец, как по мне, без хорошей базы в программировании будет тяжеловато.
Программа поддержки
В целях ускорения разработки проекта, а так же его улучшения — команда IFC.js реализовала программу поддержки, где даёт возможность заработать сообществу, принося свой вклад в проект. Если вкратце, то формируются карточки с разного рода заданиями, например исправление бага или реализации инструментов, таких как проверка на коллизии, формирование планов, разрезов и т.д.
Примеры BIM-решений с использованием IFC.js
Ниже представлен список некоторых решений для просмотра и работы с IFC, базирующихся на ядре IFC.js
В заключении
Библиотека IFC.js действительно довольно молодой проект и развивается довольно быстро, но уже сейчас даёт возможность реализовывать полноценные BIM-приложения. В связи с последними тенденциями и активным интересом в сторону подхода Open BIM — IFC.js прокладывает отличный путь для достижения определённых целей.
А в следующей статье рассмотрим, как с нуля создать свой IFC-viewer на основе IFC.js
Спасибо за внимание. Дальше — интереснее.
bimatter - with love for data.