IFC praxe III. - knihovna IFC.JS
Vzhledem k obsahu předchozího dílu minisérie dnes uděláme trochu cimrmanovský úkrok stranou - IFC.JS knihovna
Na internetu jsme si všimli, že skupina mladých vývojářů sestavila s pomocí nejnovějších softwarových technologií knihovnu pro práci s IFC soubory - viz např. https://bimwhale.gitbook.io/ifc-js
Tato knihovna se skládá z několika částí, které umožňují sestavit si vlastní řešení pro čtení, parserování dat, zobrazování grafického modelu i datové struktury a nakonec i návrh uživatelské aplikace pro jednoduchý BIM server.
Pro naší práci se zprvu jevila jako nejzajímavější ta část, která umožňuje načtení zdrojového IFC souboru a jeho transformaci do strukturovaného tvaru ve formě několika JSON entit.
Pozn.: JSON (Java Script Object Notation) je popis datových struktur ve formě textového zápisu, podobně jako XML.
Tato cesta umožnila obejít složitý - a pomalý - proces převodu surových IFC dat do kódování shodného pro další zpracování a analýzu.
Jako první krok je možno pomocí této knihovny získat kaskádu prostorové struktury projektu (projekt / budova / podlaží / místnost / element). V dalším kroku lze získat parametry všech produktových elementů (konstrukčních prvků i prvků vybavení) a to bez nutnosti zabývat se ostatními entitami ve zdrojových datech.
Standardně knihovna IFC.JS umožňuje získat tyto JSON struktury:
- prostorová struktura projektu
- seznam elementů a jejich parametrů (pojmenování, popisů a dalších přímo navázaných informací)
- seznamy sad specifických vlastností (property setů) přiřazených jednotlivým elementům
- sady množství
- sady přiřazených materiálů
- sady použitých klasifikací
- sady specifických vlastností ve vazbě na typ entity
Zdá se, že obdobným způsobem by bylo možno získat i prostorovou obálku grafické reprezentace elementu, tzv. bounding box, ale tuto funkcionalitu se nám prozatím nepodařilo spolehlivě ověřit.
Takže (poměrně) jednoduchá aplikace ve formě konverzní utility nám umožňuje získat cca deset přiměřeně malých souborů z dodaného IFC, které nám dovolují efektivně vytvořit SQL databázi, a to, jak pro analýzu kvality obsahu IFC, tak i pro přípravu datových vstupů do FM aplikace.