Import and export SceneModels as xeokit's native binary XGF format
The xeokit SDK enables seamless import and export of 3D models using the XGF format — xeokit's native binary format designed for fast loading.
Use the XGFLoader class to load XGF files into:
Use the XGFExporter class to export:
into XGF file data.
npm install @xeokit/sdk Copy
npm install @xeokit/sdk
Below is an example of loading and displaying a XGF model in a Viewer:
import { Scene } from "@xeokit/sdk/scene";import { Data } from "@xeokit/sdk/data";import { WebGLRenderer } from "@xeokit/sdk/webglrenderer";import { Viewer } from "@xeokit/sdk/viewer";import { CameraControl } from "@xeokit/sdk/cameracontrol";import { XGFLoader, XGFExporter } from "@xeokit/sdk/formats/xgf";const scene = new Scene();const data = new Data();const viewer = new Viewer({ scene});const renderer = new WebGLRenderer({ viewer});const viewResult = viewer.createView({ id: "myView", elementId: "myCanvas"});const view = viewResult.view;view.camera.eye = [1841982.93, 10.03, -5173286.74];view.camera.look = [1842009.49, 9.68, -5173295.85];view.camera.up = [0.0, 1.0, 0.0];new CameraControl(view, {});const sceneModelResult = scene.createModel({ id: "myModel" });const sceneModel = sceneModelResult.model;const dataModelResult = data.createModel({ id: "myModel" });const dataModel = dataModelResult.model;const xgfLoader = new XGFLoader();fetch("model.bim") .then(response => response.json()) .then(fileData => { xgfLoader.load({ fileData, sceneModel, dataModel }) .then(() => { // Loaded }) .catch(err => { sceneModel.destroy(); dataModel.destroy(); console.error(`Error loading XGF -> ${err}`); }); }) .catch(err => { console.error(`Error fetching XGF file -> ${err}`); }); Copy
import { Scene } from "@xeokit/sdk/scene";import { Data } from "@xeokit/sdk/data";import { WebGLRenderer } from "@xeokit/sdk/webglrenderer";import { Viewer } from "@xeokit/sdk/viewer";import { CameraControl } from "@xeokit/sdk/cameracontrol";import { XGFLoader, XGFExporter } from "@xeokit/sdk/formats/xgf";const scene = new Scene();const data = new Data();const viewer = new Viewer({ scene});const renderer = new WebGLRenderer({ viewer});const viewResult = viewer.createView({ id: "myView", elementId: "myCanvas"});const view = viewResult.view;view.camera.eye = [1841982.93, 10.03, -5173286.74];view.camera.look = [1842009.49, 9.68, -5173295.85];view.camera.up = [0.0, 1.0, 0.0];new CameraControl(view, {});const sceneModelResult = scene.createModel({ id: "myModel" });const sceneModel = sceneModelResult.model;const dataModelResult = data.createModel({ id: "myModel" });const dataModel = dataModelResult.model;const xgfLoader = new XGFLoader();fetch("model.bim") .then(response => response.json()) .then(fileData => { xgfLoader.load({ fileData, sceneModel, dataModel }) .then(() => { // Loaded }) .catch(err => { sceneModel.destroy(); dataModel.destroy(); console.error(`Error loading XGF -> ${err}`); }); }) .catch(err => { console.error(`Error fetching XGF file -> ${err}`); });
const xgfExporter = new XGFExporter();xgfExporter.write({ sceneModel, dataModel, version: "1.0.0", // Optional, defaults to latest}).then(fileData => { // Use fileData as needed}).catch(err => { console.error(err);}); Copy
const xgfExporter = new XGFExporter();xgfExporter.write({ sceneModel, dataModel, version: "1.0.0", // Optional, defaults to latest}).then(fileData => { // Use fileData as needed}).catch(err => { console.error(err);});
xeokit XGF Importer and Exporter
Import and export SceneModels as xeokit's native binary XGF format
The xeokit SDK enables seamless import and export of 3D models using the XGF format — xeokit's native binary format designed for fast loading.
Importing XGF Models
Use the XGFLoader class to load XGF files into:
Exporting XGF Models
Use the XGFExporter class to export:
into XGF file data.
Installation
Usage
Below is an example of loading and displaying a XGF model in a Viewer:
Exporting to XGF