以下是针对 xeokit SDK 的全面介绍,涵盖其定位、核心功能、技术特点、应用场景及与其他工具的对比:
1. 概述
- 定位:xeokit 是一个专注于 BIM/工程模型可视化 的开源 Web SDK(JavaScript 库),专为在浏览器中高效加载和交互大型建筑/工业模型设计。
- 核心目标:解决传统 WebGL 引擎在处理 IFC、点云、三维瓦片(3D Tiles) 等工程格式时的性能与数据语义问题。
- 开发团队:由英国公司 xeolabs 主导开发,采用 MIT 开源协议。
2. 核心功能
(1) 高性能模型加载
- 支持格式:
- IFC(建筑信息模型标准格式)
- glTF/GLB(通用3D传输格式)
- LAS/LAZ(点云数据)
- 3D Tiles(大规模地理空间模型)
- CityJSON(城市级模型)
- 优化技术:
- 按需流式加载(LOD 细节层次)
- 模型切片与缓存(减少内存占用)
(2) BIM 语义支持
- IFC 数据解析:自动提取构件属性(如墙体材料、设备参数)。
- 对象树结构:还原模型层级(楼层→房间→构件)。
- 属性查询:通过代码或 UI 点击查看构件元数据。
(3) 交互与可视化
- 剖切分析(Section Planes):动态切割模型查看内部结构。
- 视点保存(Bookmarks):记录关键视角。
- 空间隔离(Isolation):聚焦特定构件,隐藏其他部分。
- BIM 着色:按类别(结构/机电)或属性(状态)颜色编码。
(4) 扩展工具
- 碰撞检测(Clash Detection):可视化构件冲突。
- 测量工具:距离、面积、体积计算。
- 点云与模型融合:将扫描点云叠加到 BIM 模型。
3. 技术架构
层级 | 技术栈 |
---|---|
核心引擎 | WebGL 2.0/WebGPU |
语言 | JavaScript/TypeScript |
依赖 | 零外部依赖(纯原生 WebGL) |
框架集成 | 支持 React/Vue/Angular 封装 |
4. 性能优势
- 千万级三角面片:在普通PC浏览器中流畅渲染大型工厂/BIM模型。
- GPU 实例化渲染:对重复构件(如螺栓、管道)大幅优化。
- 后台线程解析:模型加载不阻塞 UI 交互。
5. 应用场景
领域 | 案例 |
---|---|
建筑运维 | 网页端设备管理系统(扫码定位 BIM 构件) |
施工协同 | 云端碰撞检测报告可视化 |
数字孪生 | 对接 IoT 传感器数据,实时显示设备状态(如温度异常变红) |
基础设施 | 桥梁/隧道检测模型与点云融合分析 |
教育 | 交互式建筑构造教学工具 |
6. 与竞品对比
工具 | 优势 | 局限 |
---|---|---|
Three.js | 生态更广,适合通用 3D 开发 | BIM 数据需手动解析 |
Babylon.js | 内置物理引擎,适合游戏化交互 | 工程格式支持较弱 |
Cesium | 地理空间能力强大(GIS+BIM) | 建筑细节渲染不如 xeokit |
xeokit | 专为工程/BIM优化,语义支持完善 | 非游戏引擎(无物理/粒子) |
7. 开发资源
- 官方示例:Examples Gallery(包含剖切、点云、IFC 加载等 Demo)
- GitHub:xeokit-sdk(⭐️ 2k+ Stars)
- 教程:Getting Started
- 商业支持:xeolabs 提供企业级定制与插件(如 xeokit-concierge 模型托管服务)。
8. 典型代码示例
javascript
import { Viewer, BIMViewer } from "xeokit-sdk";
// 创建查看器
const viewer = new Viewer({ canvasId: "myCanvas" });
// 加载 IFC 模型
viewer.scene.loadScene({
id: "myScene",
modelSrc: "model.ifc"
});
// 点击查询构件属性
viewer.cameraControl.on("picked", (e) => {
if (e.entity) {
console.log("构件属性:", e.entity.get("属性表"));
}
});
import { Viewer, BIMViewer } from "xeokit-sdk";
// 创建查看器
const viewer = new Viewer({ canvasId: "myCanvas" });
// 加载 IFC 模型
viewer.scene.loadScene({
id: "myScene",
modelSrc: "model.ifc"
});
// 点击查询构件属性
viewer.cameraControl.on("picked", (e) => {
if (e.entity) {
console.log("构件属性:", e.entity.get("属性表"));
}
});
9. 总结
- xeokit 是 Web 端工程可视化的利器,尤其适合需要深度集成 BIM 语义(IFC)的项目。
- 优势:轻量(无依赖)、开源、性能极致、BIM 原生支持。
- 适用对象:
- 开发建筑/工业 Web 运维平台的技术团队。
- 需要替代昂贵商业可视化引擎(如 Navisworks Web)的用户。
- 数字孪生项目中需融合 IoT 数据与三维模型的场景。
💡 提示:若需开箱即用的 BIM 查看器,可尝试基于 xeokit 的 xeokit-concierge,支持直接上传 IFC 生成可分享链接。
xeokit-bim-viewer 是一个开源的 2D/3D BIM 查看器,运行在 浏览器并从文件系统加载模型。 xeokit-convert 提供了转换 3D BIM 和 AEC 模型的方法 转换为 XKT 文件以超快速加载到 xeokit,以及用于生成 XKT 的编程工具 Node.js 上带有 JavaScript 的文件。
步骤说明: 1、IfcOpenShell 解析IFC文件,提取几何和属性数据。 2、将几何数据转为 glTF 供xeokit渲染,属性数据存入数据库。 3、xeokit 在浏览器中展示模型,用户点击构件时从数据库查询属性。