<aside> 🆕 This feature was introduced in xeokit-sdk v2.0.

</aside>

<aside> ℹ️ See also: Converting IFC Models to XKT using 3rd-Party Open Source Tools

</aside>

<aside> ℹ️ See also: Converting IFC Models to XKT using ifc2gltf

</aside>


The xeokit SDK enables us to load large, full-precision BIM and AEC models over the Web in seconds and view them in the browser. To do this, we pre-convert our models 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 mini-tutorial, we introduce [convert2xkt](<https://xeokit.github.io/xeokit-convert/docs/>), a new JavaScript function and CLI tool that converts several 3D model formats into XKT format.

We provide convert2xkt as an additional conversion option for your models, alongside our existing standard open source IFC→XKT conversion pipeline.



Introduction

What's IFC?

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.

What's XKT?

XKT is xeokit's native 3D model format, which compresses IFC and CAD models 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 classify and manipulate 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: