<aside> ℹ️ See also: Converting Models to XKT with convert2xkt
</aside>
<aside> ℹ️ See also: Converting IFC Models to XKT using 3rd-Party Open Source Tools
</aside>
<aside> ℹ️ See also: Automatically Splitting Large Models for Better Performance
</aside>
The xeokit SDK enables us to load large, full-precision BIM models over the Web in seconds and view them in the browser. To do this, we pre-convert our IFC files into xeokit's native XKT format. The XKT format compresses model geometry and metadata into a compact payload that a xeokit viewer can load quickly while using minimal browser resources.
In this tutorial, we'll use a combination of the closed-source ifc2gltfcxconverter
tool from Creoox AG and the open source convert2xkt
tool from xeolabs to convert an IFC 4 model into an XKT file, which we'll then load into a xeokit Viewer. This combination is the most efficient IFC → XKT conversion option we have so far, industrial-strength stuff.
The Industry Foundation Classes (IFC) data model is used to describe architectural, building and construction industry data.
IFC defines an entity-relationship model consisting of various entities organized into a object-based inheritance model, with classes representing various building elements such as IfcWall
, geometry such as IfcExtrudedAreaSolid
, and basic constructs such as IfcCartesianPoint
.
The data model is developed by buildingSMART to facilitate interoperability in the AEC industry, and is a commonly used open collaboration format in BIM based projects.
An IFC file is usually provided as an IFC-SPF file ("STEP-file") , which is a text format in which each line represents an entity that instantiates a class within the data model.
XKT is xeokit's native 3D model format, which compresses IFC models (and other formats) into a compact binary payload from which we can load large numbers of objects over the Web in seconds, at full geometric precision.
An XKT file also contains metadata on its objects, which enables a xeokit viewer to navigate them according to their types. That's useful for building things like object tree view UIs, automatic building storey plan views, and so on.
For each object/element, the metadata stores: