Namespace datamodel

xeokit DataModelParams Importer and Exporter


Import and export semantic DataModels using xeokit’s JSON-based DataModelParams interchange format.


This module provides utilities for serializing and deserializing DataModels to and from the SDK’s canonical JSON representation, DataModelParams. The format captures a DataModel’s complete semantic state, including objects, relationships, properties, and metadata.



%%{init:{"theme":"dark"}}%% classDiagram direction TB class DataModelImporter { +format : "DataModelParams" +load(params, options?) Promise~void~ } class DataModelExporter { +format : "DataModelParams" +write(params, options?) Promise~DataModelParams~ } class DataModelParams { <<data>> } class ModelLoader { <<formats>> } class ModelExporter { <<formats>> } ModelLoader <|-- DataModelImporter ModelExporter <|-- DataModelExporter DataModelImporter ..> DataModelParams : reads DataModelExporter ..> DataModelParams : writes
%%{init:{"theme":"default"}}%% classDiagram direction TB class DataModelImporter { +format : "DataModelParams" +load(params, options?) Promise~void~ } class DataModelExporter { +format : "DataModelParams" +write(params, options?) Promise~DataModelParams~ } class DataModelParams { <<data>> } class ModelLoader { <<formats>> } class ModelExporter { <<formats>> } ModelLoader <|-- DataModelImporter ModelExporter <|-- DataModelExporter DataModelImporter ..> DataModelParams : reads DataModelExporter ..> DataModelParams : writes
classDiagram
    direction TB
    class DataModelImporter {
      +format : "DataModelParams"
      +load(params, options?) Promise~void~
    }
    class DataModelExporter {
      +format : "DataModelParams"
      +write(params, options?) Promise~DataModelParams~
    }
    class DataModelParams {
      <<data>>
    }
    class ModelLoader {
      <<formats>>
    }
    class ModelExporter {
      <<formats>>
    }
    ModelLoader <|-- DataModelImporter
    ModelExporter <|-- DataModelExporter
    DataModelImporter ..> DataModelParams : reads
    DataModelExporter ..> DataModelParams : writes

  • xeokit-native JSON — round-trips a DataModel to and from DataModelParams JSON.
  • Pairs with XGF — geometry in .xgf + semantics in .json form the canonical xeokit streamed-model bundle.
  • Compact — objects, relationships, and property sets only; no geometry payload.

npm install @xeokit/sdk

Use DataModelExporter to serialize a DataModel into a DataModelParams object, which can then be stored or transmitted as JSON.

write resolves with the DataModelParams object itself — stringify it yourself to persist it.

import { DataModelExporter } from "@xeokit/sdk/datamodel";

const exporter = new DataModelExporter();

const dataModelParams = await exporter.write({
dataModel
});

const json = JSON.stringify(dataModelParams, null, 2);
// persist or transmit `json`

Use DataModelImporter to reconstruct a DataModel from a previously serialized DataModelParams object. Create the target DataModel first, then pass the params as fileDataload resolves with no value.

import { DataModelImporter } from "@xeokit/sdk/datamodel";
import { Data } from "@xeokit/sdk/model/data";

const data = new Data();
const dataModel = data.createModel({ id: "myModel" }).value;

const loader = new DataModelImporter();

await loader.load({
fileData: dataModelParams,
dataModel
});

console.log("DataModel loaded:", dataModel.id);

Because DataModelParams is a lossless representation of xeokit’s semantic graph, a DataModel can be exported and re-imported without changing object IDs, relationships, or properties—making it suitable for caching and synchronization workflows.


Documents

DataModelParams Format Guide

Classes

DataModelExporter
DataModelImporter