Namespace formats

xeokit Model Formats


Import, export, and conversion support for multiple 3D and BIM file formats


This module allows applications to load, parse, encode, and export models in a variety of 3D, BIM, and point cloud formats. Every format ships behind a uniform ModelLoader / ModelExporter interface so tooling and applications can work with multiple formats through one API.


%%{init:{"theme":"dark"}}%% classDiagram direction TB class ModelLoader { <<abstract>> +format : string +versions : string[] +fileDataType : string +load(params, options?) Promise~void~ } class ModelExporter { <<abstract>> +format : string +versions : string[] +fileDataType : string +write(params, options?) Promise~fileData~ } class ModelParser { <<abstract>> +parse(params) Promise~void~ } class ModelEncoder { <<abstract>> +encode(params) Promise~fileData~ } class GeometryFormats { gltf / ifc / dotbim / las / xgf / xkt cityjson / obj / mtl / rvm / step } class XeokitNativeFormats { scenemodel / datamodel / metamodel } ModelLoader <|-- GeometryFormats ModelExporter <|-- GeometryFormats ModelLoader <|-- XeokitNativeFormats ModelExporter <|-- XeokitNativeFormats
%%{init:{"theme":"default"}}%% classDiagram direction TB class ModelLoader { <<abstract>> +format : string +versions : string[] +fileDataType : string +load(params, options?) Promise~void~ } class ModelExporter { <<abstract>> +format : string +versions : string[] +fileDataType : string +write(params, options?) Promise~fileData~ } class ModelParser { <<abstract>> +parse(params) Promise~void~ } class ModelEncoder { <<abstract>> +encode(params) Promise~fileData~ } class GeometryFormats { gltf / ifc / dotbim / las / xgf / xkt cityjson / obj / mtl / rvm / step } class XeokitNativeFormats { scenemodel / datamodel / metamodel } ModelLoader <|-- GeometryFormats ModelExporter <|-- GeometryFormats ModelLoader <|-- XeokitNativeFormats ModelExporter <|-- XeokitNativeFormats
classDiagram
    direction TB
    class ModelLoader {
      <<abstract>>
      +format         : string
      +versions       : string[]
      +fileDataType   : string
      +load(params, options?) Promise~void~
    }
    class ModelExporter {
      <<abstract>>
      +format         : string
      +versions       : string[]
      +fileDataType   : string
      +write(params, options?) Promise~fileData~
    }
    class ModelParser {
      <<abstract>>
      +parse(params) Promise~void~
    }
    class ModelEncoder {
      <<abstract>>
      +encode(params) Promise~fileData~
    }
    class GeometryFormats {
      gltf / ifc / dotbim / las / xgf / xkt
      cityjson / obj / mtl / rvm / step
    }
    class XeokitNativeFormats {
      scenemodel / datamodel / metamodel
    }
    ModelLoader <|-- GeometryFormats
    ModelExporter <|-- GeometryFormats
    ModelLoader <|-- XeokitNativeFormats
    ModelExporter <|-- XeokitNativeFormats

  • Uniform loader / exporter interface — every format subclasses ModelLoader or ModelExporter so callers can swap formats without changing call shape.
  • Multi-version per format — many formats (XGF, XKT, glTF) ship multiple readers / writers under one class; version selects which one to use, defaulting to the latest.
  • Cooperative yields — every loader / exporter honours the yieldToHost interval so very large files don't block the host's UI thread.
  • Progress reportingoptions.onProgress fires from inside loader / exporter hot loops at ~60 Hz; pair with SDKProgress for typed updates.
  • AbortSignal cancellation — loaders and exporters check options.signal.aborted at every yield and reject with DOMException("Aborted", "AbortError") when the caller cancels.
  • Browser-side I/O — file fetches go through BrowserFileIO, which wraps the fetch API.

The following formats are supported:

  • gltf – glTF and GLB
  • ifc – Industry Foundation Classes (IFC)
  • cityjson – CityJSON
  • dotbim – DotBIM
  • las – LAS / LAZ point cloud formats
  • xkt – xeokit XKT
  • xgf – xeokit Geometry Format
  • obj – Wavefront OBJ
  • mtl – Wavefront MTL
  • rvm – AVEVA RVM
  • step – ISO 10303-21 STEP (.step / .stp)
  • scenemodel – xeokit SceneModel
  • datamodel – xeokit DataModel
  • metamodel – xeokit Metadata and schema-level information (legacy support)

Each format's namespace typically provides one or more of the following:

  • Loaders for importing external files
  • Exporters for writing files from xeokit models
  • Parsers and encoders for converting intermediate representations

In addition to external file formats, this module includes support for xeokit's native JSON-based serialization formats:

These formats are typically used for persistence, interchange between applications, or pre-processing workflows.


The module defines generic base types that are shared across format implementations:

These abstractions allow tooling and applications to work with multiple formats through a consistent API, independent of the underlying file type.

Namespaces

cityjson
datamodel
dotbim
dwg
dxf
gltf
ifc
las
metamodel
mtl
obj
pdf
rvm
scenemodel
step
svg
xgf
xkt

Classes

ModelExporter
ModelLoader

Interfaces

LoaderProgress
ModelEncodeParams
ModelExporterParams
ModelExportParams
ModelLoaderParams
ModelLoadOptions
ModelLoadParams
ModelParseParams

Type Aliases

ModelEncoder
ModelExportOptions
ModelParser