1 概述
1.1 产品简介
MinBIM® BIM轻量化引擎是一款基于 WebGL 技术的 BIM 模型轻量化可视化引擎,支持多格式建筑模型加载、渲染、交互、测量、属性查看及导出,可嵌入 Web 系统,实现 BIM 数据的三维展示与交互。
主要特性:
- 支持 IFC、RVT、SKP、FBX、NWD、3DM、RVM、GLTF/GLB、OBJ 等多种源格式的轻量化转换与展示;
- 保持 BIM 几何、材质、属性与结构树数据;
- 支持多模型加载、实例化渲染、BVH 射线加速与按需渲染;
- 内置拾取、测量、剖切、拆解、截图和导出功能;
- 提供独立特效库与 GIS 扩展,可按需引入;
- 提供 UMD 与 ES Module 产物,便于二次开发与系统集成。
1.2 适读对象
- 二次开发工程师;
- Web 前端开发人员;
- BIM 平台系统集成商;
- 技术支持与测试工程师。
1.3 技术要求
| 项目 | 要求 |
|---|---|
| 运行环境 | 支持 WebGL 2.0、Web Worker 的现代浏览器,推荐 Chrome / Edge |
| 支持系统 | Windows / Linux / macOS |
| 前端依赖 | MinBIM SDK;Three.js 由主包导出,无需重复引入 |
| 网络要求 | HTTP / HTTPS;跨域模型与贴图服务需正确配置 CORS |
| 后端转换 | MinBIM Converter 及模型转换运行环境 |
1.4 运行环境
前端: HTML5 + JavaScript + WebGL 2.0 + Web Worker。
后端: 转换模块负责将源模型转换为 MinBIM 轻量化数据。
浏览器: 推荐使用最新版 Chrome 或 Edge;Firefox 需满足同等 WebGL 2.0 与 Worker 能力。
显卡: 推荐支持 WebGL 2.0 的独立显卡。
1.5 系统架构
- 前端渲染层(MinBIM Viewer):负责模型展示与交互。
- 后端转换层(MinBIM Converter):执行模型格式转换。
- 数据层(BIM Files Storage):存储源文件与转换后的轻量化数据。
- 扩展层(MinBIMEffects / MinBIMGIS):按需提供场景特效、地理图层与分析能力。
公开全局对象及产物:
| 全局对象 | UMD 产物 | 说明 |
|---|---|---|
window.MinBIM |
dist/minbim.min.js |
主引擎,当前版本 1.5.1 |
window.MinBIMEffects |
dist/minbim-effect.min.js |
特效包,独立版本号 |
window.MinBIMGIS |
dist/minbim-gis.min.js |
GIS 扩展包,独立版本号 |
对应 ES Module 产物为 dist/minbim.module.min.js、dist/minbim-effect.module.min.js、dist/minbim-gis.module.min.js。扩展包的 UMD 版本必须在主包之后加载。
独立接口文档:MinBIM 特效库接口文档(v1.0)、MinBIM GIS 扩展接口文档(v1.0)。
1.6 快速上手
<link rel="stylesheet" href="public/css/style.css">
<link rel="stylesheet" href="public/css/main.css">
<div id="viewer" style="width:100%;height:100vh"></div>
<script src="dist/minbim.min.js"></script>
<script>
const viewer = new MinBIM.Viewer('viewer');
viewer.init({
config: { assetsDir: 'public' }
});
const loader = new MinBIM.Loader(viewer);
loader.load('model/example')
.then((model) => viewer.focus(model))
.catch((error) => console.error('模型加载失败:', error));
</script>
basePath 指向包含 manifest.mb 及关联数据文件的目录,不需要在末尾写 manifest.mb。
2 后端服务接口
| 接口名称 | 调用方式 | 功能说明 | 返回结果 |
|---|---|---|---|
/exe/main.exe |
命令行 | 执行模型文件转换 | return code:0=成功,1=失败,2=异常 |
/exe/check.exe |
命令行 | 检查转换结果完整性 | return code:0=成功,1=失败 |
示例:
main.exe D:\input.ifc D:\output\
check.exe D:\output\
3 核心类接口
主包公开出口:
MinBIM.VERSION // '1.5.1'
MinBIM.Viewer
MinBIM.Loader
MinBIM.Exporter
MinBIM.Tool
MinBIM.Widget
MinBIM.THREE // Three.js 命名空间
MinBIM.TWEEN // 补间动画命名空间
3.1 Viewer 视窗类
3.1.1 属性(Properties)
| 属性名 | 类型 | 说明 |
|---|---|---|
| container | HTMLElement | 渲染容器。 |
| scene | Scene | Three.js 场景。 |
| camera | Camera | 当前相机,透视/正交切换时同步变化。 |
| renderer | WebGLRenderer | WebGL 渲染器。 |
| labelRenderer | CSS2DRenderer | 标签渲染器及交互事件层。 |
| controls | OrbitControls | 当前相机控制器。 |
| lights | Group | 场景光源集合。 |
| models | Group | 多模型累计根;每次 load() 在其中创建独立批次组。 |
| picker | Picker | 拾取器实例。 |
| dynamicCenter | DynamicCenter | 动态旋转中心实例;dynamicCenter:false 时不创建。 |
| toolbar | Toolbar | 工具栏实例;toolbar:false 时不创建。 |
| tree | Tree | 结构树挂件实例;tree:false 时不创建。 |
| viewCube | ViewCube | 导航盒实例;viewCube:false 时不创建。 |
| renderRequested | Boolean | 按需渲染标记;自定义场景变更后可置为 true 请求重绘。 |
| onChange | Function | 控制器变化回调,参数为当前 OrbitControls。 |
| qualityMode | Boolean | 初始化时是否启用质量渲染管线;当前 SAO 状态由 getQuality() 获取。 |
| GISViewer | GISViewer | 调用 MinBIMGIS.attach() 后注入。 |
| effectManager | EffectManager | 调用 MinBIMEffects.attach() 后注入。 |
3.1.2 方法(Methods)
3.1.2.1 constructor(containerId)
功能说明: 构建 Viewer 实例。容器必须已存在。
参数说明:
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| containerId | String | 无 | 渲染容器的 HTML ID,必需。 |
返回结果: Viewer
const viewer = new MinBIM.Viewer('viewer');
3.1.2.2 init(options)
功能说明: 初始化场景、相机、渲染管线、控制器和挂件。
参数说明:
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| background | String | '#c1cece' |
场景背景色;'transparent' 表示透明背景。 |
| cameraFov | Number | 60 |
透视相机视场角。 |
| cameraPosition | Array<Number> | [30,20,30] |
相机初始位置。 |
| maxFps | Number | 60 |
控制器交互触发的最大重绘帧率。 |
| quality | Boolean | true |
是否启用质量渲染管线(SAO)。 |
| selectColor | String | '#175ba4' |
构件选中高亮颜色。 |
| selectEdge | Boolean | false |
点击拾取时是否显示高亮边线。 |
| ground | Boolean | false |
是否显示模型底部地面软阴影。 |
| viewCube | Boolean / Object | true |
导航盒配置;false 禁用。 |
| toolbar | Boolean / Object | true |
工具栏配置;false 禁用。 |
| tree | Boolean / Object | true |
结构树配置;false 禁用。 |
| dynamicCenter | Boolean / Object | true |
动态旋转中心配置;false 禁用。 |
| config | Object | {} |
全局资源配置,见下表。 |
viewCube 配置:
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| position | Object | { top:'20px', right:'20px' } |
导航盒 CSS 定位。 |
| color | Number | 0xDDDDDD |
面颜色。 |
| hoverColor | Number | 0x999999 |
悬停颜色。 |
| outlineColor | Number | 0x999999 |
边框颜色。 |
| speed | Number | 500 |
视角切换动画时长(ms)。 |
toolbar 配置:
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| tools | Array<String> | ['mainview','property','measure','clipping','explode','info','settings','fullscreen'] |
需要显示的工具。 |
tree 配置:
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| expandAll | Boolean | false |
是否默认展开全部节点。 |
dynamicCenter 配置:
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| icon | String | assetsDir + '/images/center.png' |
旋转中心标记图片地址。 |
config 配置:
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| assetsDir | String | '' |
静态资源目录,例如 'public' 或 '../public'。 |
返回结果: void
viewer.init({
quality: true,
ground: true,
tree: false,
dynamicCenter: { icon: 'public/images/center.png' },
config: { assetsDir: 'public' }
});
3.1.2.3 focus(object, cb, ratio)
功能说明: 平滑聚焦指定 Three.js 对象。
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| object | Object3D | 无 | 目标对象,必需;不是构件 ID。 |
| cb | Function | 空函数 | 聚焦完成回调。 |
| ratio | Number | 5 |
包围球半径到相机距离的倍率。 |
返回结果: void
viewer.focus(viewer.models, () => console.log('聚焦完成'));
3.1.2.4 getView()
功能说明: 获取当前相机位置和控制目标点。
返回结果: { position: {x,y,z}, target: {x,y,z} }
const view = viewer.getView();
3.1.2.5 restoreView(view, duration, cb)
功能说明: 从当前视角平滑过渡到指定视角。
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| view | Object | 无 | { position:{x,y,z}, target:{x,y,z} },必需。 |
| duration | Number | 1000 |
过渡时长(ms)。 |
| cb | Function | 空函数 | 动画完成回调。 |
返回结果: Tween;可调用 stop() 打断,打断时不执行完成回调。
const tween = viewer.restoreView(viewer.getView(), 1000);
// tween.stop();
3.1.2.6 setCamera(isOrthCamera)
功能说明: 在透视投影与正交投影相机之间切换,并保持当前构图。
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| isOrthCamera | Boolean | false |
true 切换为正交相机,false 切换为透视相机。 |
返回结果: void
viewer.setCamera(true);
3.1.2.7 setQuality(enabled)
功能说明: 开关 SAO 质量效果;仅在 init({ quality:true }) 创建的质量管线中生效。
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| enabled | Boolean | 无 | 是否开启 SAO。 |
返回结果: void
3.1.2.8 getQuality()
功能说明: 获取当前 SAO 开关状态;非质量模式返回 false。
返回结果: Boolean
viewer.setQuality(false);
console.log(viewer.getQuality()); // false
3.1.2.9 dispose()
功能说明: 销毁 Viewer,释放模型、扩展、渲染资源及事件监听。
返回结果: void
viewer.dispose();
3.2 Loader 加载器类
3.2.1 属性(Properties)
无独立配置属性;加载回调由构造函数设置。
3.2.2 方法(Methods)
3.2.2.1 constructor(viewer, showLoading, onProgress, onComplete, onError)
功能说明: 构建 Loader 实例。
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| viewer | Viewer | 无 | 已初始化的 Viewer,必需。 |
| showLoading | Boolean | true |
是否显示内置加载进度。 |
| onProgress | Function | 空函数 | 进度回调,参数为 0~100。 |
| onComplete | Function | 空函数 | 加载完成回调。 |
| onError | Function | 空函数 | 错误回调,参数为 Error。 |
返回结果: Loader
const loader = new MinBIM.Loader(
viewer,
true,
(progress) => console.log(progress),
() => console.log('加载完成'),
(error) => console.error(error)
);
3.2.2.2 load(basePath, ghost, options)
功能说明: 异步加载一个模型批次的清单、材质、几何、属性和节点数据。
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| basePath | String | 无 | 模型数据目录,必需。 |
| ghost | Boolean / Number | false |
false 正常材质;true 使用透明度 0.5 的白模;数值 0~1 指定白模透明度。 |
| options | Object | {} |
加载选项,当前支持 resolveUrl。 |
options.resolveUrl(url, kind, refresh):
| 参数名 | 类型 | 说明 |
|---|---|---|
| url | String | 原始资源 URL。 |
| kind | String | 资源类型:manifest / material / texture / geometry / property / node。 |
| refresh | Boolean | 是否为 401/403 后的重签请求;首次调用为 false。 |
钩子可返回 String 或 Promise<String>;返回空值时使用原 URL。清单、材质、几何、属性和节点请求在 401/403 时会以 refresh=true 重签并重试一次。贴图 URL 也经过该钩子;跨域 CDN 需配置 CORS。
返回结果: Promise<Group>,解析为本次加载的独立批次组。viewer.models 是多模型累计根,返回组可整体落位或移除:
const model = await loader.load('model/example');
model.position.set(10, 0, 0);
viewer.focus(model);
viewer.renderRequested = true;
// 需要时移除本批次:model.removeFromParent(); viewer.renderRequested = true;
CDN 签名示例:
const model = await loader.load('https://cdn.example.com/bim/project', false, {
resolveUrl: async (url, kind, refresh) => {
const response = await fetch(`/api/sign?url=${encodeURIComponent(url)}&refresh=${refresh}`);
const { signedUrl } = await response.json();
return signedUrl;
}
});
多模型可分别保存返回的 Group。
getFileInfo()、getNode()、getProperty()基于全局数据存储,多次加载时以最近写入的数据为准。
3.2.2.3 getFileInfo()
功能说明: 获取当前模型文件信息。
返回结果: Object
| 字段 | 类型 | 说明 |
|---|---|---|
| fileName | String | 文件名。 |
| fileSize | Number | 文件大小(Byte)。 |
| fileType | String | 文件格式。 |
| fileVersion | String | 文件版本。 |
| unit | String | 模型单位。 |
| componentCount | Number | 构件数。 |
| triangleCount | Number | 三角面数。 |
| vertexCount | Number | 顶点数。 |
3.2.2.4 getNode()
功能说明: 获取模型节点树;非 BIM 类模型可能没有节点数据。
返回结果: Array<Object>,节点常用字段为 id、guid、name、children。
3.2.2.5 getProperty(id)
功能说明: 获取指定构件属性,或不传参数获取当前属性数据。
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| id | String | null |
构件 ID,通常对应 guid。 |
返回结果: 传入 id 时返回对应属性对象(未找到为 undefined);不传时返回 Array<Object>。
const allProperties = loader.getProperty();
const property = loader.getProperty('0eaC0nL3XAOfFxRXK_2iAr');
3.3 Picker 拾取器类
Viewer.init() 自动创建拾取器,通过 viewer.picker 使用。
3.3.1 属性(Properties)
| 属性名 | 类型 | 说明 |
|---|---|---|
| selectedId | String / null | 当前选中构件 ID。 |
| enabled | Boolean | 拾取器是否启用。 |
| maxDistance | Number | 最大拾取距离,默认 500000。 |
| selectedColor | String | 高亮颜色,由 Viewer.init({ selectColor }) 设置。 |
| selectedEdge | Boolean | 点击高亮是否显示边线。 |
3.3.2 方法(Methods)
3.3.2.1 enable() / disable()
功能说明: 启用或禁用鼠标拾取。重复调用时应避免无意义地重复注册监听。
返回结果: void
viewer.picker.disable();
viewer.picker.enable();
3.3.2.2 setSelected(ids, crossMaterial)
功能说明: 手动选中构件并聚焦高亮对象。
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| ids | Array<String> | [] |
构件 ID 数组。 |
| crossMaterial | Boolean | true |
是否按跨材质构件 ID 选择。 |
返回结果: void
viewer.picker.setSelected(['0eaC0nL3XAOfFxRXK_2iAr']);
3.3.2.3 clearSelection()
功能说明: 清除高亮及选中状态。
返回结果: void
3.3.2.4 dispose()
功能说明: 禁用拾取并清除高亮;通常由 viewer.dispose() 统一调用。
返回结果: void
3.3.3 事件(Events)
| 事件名 | 触发时机 | 主要事件字段 |
|---|---|---|
| selected | 鼠标点击命中新构件 | id、id0(材质名)、index |
| deselect | 再次点击当前构件,取消选择 | id、id0、index、uuid |
| unselected | 点击未命中构件 | 无 |
| setselect | 调用 setSelected() 且 ID 数组非空 |
id:本次传入的 ID 数组 |
viewer.picker.addEventListener('selected', (event) => {
console.log('选中构件:', event.id);
});
viewer.picker.addEventListener('unselected', () => {
console.log('未拾取到构件');
});
3.4 Exporter 导出器类
3.4.1 属性(Properties)
无公开属性。
3.4.2 方法(Methods)
3.4.2.1 export(type, input, options)
功能说明: 将 Scene、Group 或其他 Object3D 导出为 glTF/GLB。
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| type | String | 无 | 'glb' 或 'gltf',必需;同时决定是否为二进制。 |
| input | Object3D | 无 | 待导出对象,必需。 |
| options | Object | {} |
导出设置。 |
options:
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| filename | String | 'model' |
文件名,自动补扩展名。 |
| autoDownload | Boolean | true |
是否自动下载。 |
| embedImages | Boolean | true |
是否内嵌图片。 |
| trs | Boolean | false |
是否导出 TRS 而非 matrix。 |
| onlyVisible | Boolean | true |
是否仅导出可见对象。 |
| truncateDrawRange | Boolean | true |
是否按 draw range 截断。 |
| forcePowerOfTwoTextures | Boolean | false |
是否强制纹理为 2 的幂尺寸。 |
| animations | Array | [] |
导出的动画数组。 |
返回结果: Promise<String>,解析为含扩展名的实际文件名。
const exporter = new MinBIM.Exporter();
const filename = await exporter.export('glb', viewer.models, {
filename: 'Download',
autoDownload: true
});
3.4.2.2 screenshot(viewer, type, filename)
功能说明: 导出当前三维场景截图并自动下载。
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| viewer | Viewer | 无 | Viewer 实例,必需。 |
| type | String | 'png' |
图片格式,支持 'png' / 'jpg'。 |
| filename | String | 'screenshot' |
文件名,不含扩展名。 |
返回结果: String,返回传入的文件名。
exporter.screenshot(viewer, 'jpg', 'Download');
4 工具类接口
4.1 Measure 测量工具类
4.1.1 属性(Properties)
| 属性名 | 类型 | 说明 |
|---|---|---|
| settings | Object | precision、unit0、unit 设置。 |
| measureMode | String | 当前模式:distance / angle / area。 |
| domElement | HTMLElement | 工具面板 DOM,init() 后创建。 |
4.1.2 方法(Methods)
4.1.2.1 constructor(viewer)
const measure = new MinBIM.Tool.Measure(viewer);
4.1.2.2 init(options)
功能说明: 初始化测量面板与射线拾取。
| 参数名 | 类型 | 说明 |
|---|---|---|
| precision | Number | 测量结果小数位。 |
| unit0 | String | 模型尺寸单位。 |
| unit | String | 测量结果单位。 |
| measureMode | String | distance / angle / area。 |
当前内置面板创建后会将
unit0/unit置为'm'、precision置为2、measureMode置为'distance'。需要代码指定状态时,请在init()后设置measure.settings或measure.measureMode。
返回结果: void
measure.init();
measure.measureMode = 'distance';
measure.settings.precision = 2;
4.1.2.3 open()
功能说明: 启动测量,暂时禁用默认 Picker。
返回结果: void
measure.open();
4.1.2.4 close()
功能说明: 关闭测量并清除测量标注,恢复默认 Picker。
返回结果: void
4.1.2.5 destroy()
功能说明: 关闭并销毁工具实例。
返回结果: void
4.2 Clipping 剖切工具类
4.2.1 属性(Properties)
| 属性名 | 类型 | 说明 |
|---|---|---|
| settings | Object | slider.min/max/step 滑块设置。 |
| clipMode | String / null | 当前仅支持剖切盒工作流。 |
| domElement | HTMLElement | 工具面板 DOM。 |
4.2.2 方法(Methods)
4.2.2.1 constructor(viewer)
const clipping = new MinBIM.Tool.Clipping(viewer);
4.2.2.2 init(options)
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| sliderMin | Number | 0 |
滑块最小值。 |
| sliderMax | Number | 100 |
滑块最大值。 |
| sliderStep | Number | 1 |
滑块步长。 |
返回结果: void
clipping.init({ sliderMin: 0, sliderMax: 100, sliderStep: 1 });
4.2.2.3 open()
功能说明: 创建剖切盒并启用模型剖切。
返回结果: void
4.2.2.4 close()
功能说明: 清除剖切辅助对象并还原模型材质。
返回结果: void
4.2.2.5 destroy()
功能说明: 关闭并销毁工具实例。
返回结果: void
4.3 Explode 拆解工具类
4.3.1 属性(Properties)
| 属性名 | 类型 | 说明 |
|---|---|---|
| settings.scale | Number | 扩散倍数,初始为 1.0。 |
| explodeMode | String | sphere(全方向)或 floor(Y 轴向),默认 sphere。 |
4.3.2 方法(Methods)
4.3.2.1 constructor(viewer)
const explode = new MinBIM.Tool.Explode(viewer);
4.3.2.2 init()
功能说明: 初始化拆解工具并缓存模型原始位置。当前不接收参数。
返回结果: void
explode.init();
4.3.2.3 open()
功能说明: 打开拆解工具,倍率重置为 1.0。
返回结果: void
4.3.2.4 close()
功能说明: 关闭工具并还原模型和实例矩阵。
返回结果: void
4.3.2.5 destroy()
功能说明: 关闭并销毁工具实例。
返回结果: void
4.4 Visibility 构件显隐工具类
4.4.1 属性(Properties)
| 属性名 | 类型 | 说明 |
|---|---|---|
| hideObjects | Array<String> | 当前隐藏的构件 guid 数组,只读 getter。 |
4.4.2 方法(Methods)
4.4.2.1 constructor(viewer)
const visibility = new MinBIM.Tool.Visibility(viewer);
4.4.2.2 show(guids)
功能说明: 显示指定构件;对 ghost 批次表示将指定构件实体化。
| 参数名 | 类型 | 说明 |
|---|---|---|
| guids | String / Array<String> | 单个 guid 或 guid 数组。 |
返回结果: void
4.4.2.3 showAll()
功能说明: 清除全部隐藏、半透明和实体化状态;ghost 批次回到全 ghost 状态。
返回结果: void
4.4.2.4 hide(guids)
功能说明: 隐藏指定构件。
| 参数名 | 类型 | 说明 |
|---|---|---|
| guids | String / Array<String> | 单个 guid 或 guid 数组。 |
返回结果: void
4.4.2.5 setTransparent(guids, opacity)
功能说明: 将指定构件设为半透明。
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| guids | String / Array<String> | 无 | 单个 guid 或 guid 数组。 |
| opacity | Number | 0.5 |
不透明度,自动限制在 0~1。 |
返回结果: void
visibility.hide(['guid-a']);
visibility.setTransparent(['guid-b'], 0.35);
visibility.show(['guid-a', 'guid-b']);
4.5 Settings 场景设置类
4.5.1 属性(Properties)
无独立公开配置属性。
4.5.2 方法(Methods)
4.5.2.1 constructor(viewer) / init()
功能说明: 构建设置工具;init() 创建内置设置面板。调用独立场景设置方法前应完成 viewer.init()。
const settings = new MinBIM.Tool.Settings(viewer);
settings.init(); // 需要使用 settings.domElement 时调用
4.5.2.2 skybox(name)
功能说明: 设置天空盒。
| 参数名 | 类型 | 说明 |
|---|---|---|
| name | String | 'day' / 'night' / 'dusk',其他值抛错。 |
返回结果: void
4.5.2.3 camera(type)
功能说明: 设置相机投影类型。
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | String | 'perspective' / 'orthographic'。 |
返回结果: void
4.5.2.4 axes(show)
功能说明: 显示或隐藏辅助坐标轴。
返回结果: void
4.5.2.5 up(type)
功能说明: 设置模型向上轴向并重新聚焦。
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | String | 'y' / 'z'。 |
返回结果: void
多模型场景优先使用各模型
manifest.mb中的 up 信息;该方法操作的是viewer.models总根。
4.5.2.6 edge(show)
功能说明: 显示或隐藏模型构件边线;首次开启时按需创建边线几何。
返回结果: void
4.5.2.7 quality(high)
功能说明: 设置高质量(SAO)或性能优先模式,等价于 viewer.setQuality(high)。
| 参数名 | 类型 | 说明 |
|---|---|---|
| high | Boolean | true 高质量,false 性能优先。 |
返回结果: void
settings.skybox('day');
settings.camera('orthographic');
settings.axes(true);
settings.edge(true);
settings.quality(false);
4.6 mainview(viewer) 回默认主视角
功能说明: 以 viewer.models 为目标调用 focus()。
返回结果: void
MinBIM.Tool.mainview(viewer);
4.7 fullscreen(on, viewer) 全屏显示控制
| 参数名 | 类型 | 说明 |
|---|---|---|
| on | Boolean | true 请求全屏,false 退出全屏。 |
| viewer | Viewer | on=true 时必需,使用其 container。 |
返回结果: void
MinBIM.Tool.fullscreen(true, viewer);
MinBIM.Tool.fullscreen(false);
5 组件类接口
5.1 Modal 模态框类
5.1.1 属性(Properties)
| 属性名 | 类型 | 说明 |
|---|---|---|
| isVisible | Boolean | 是否显示。 |
| domElement | HTMLElement | 模态框内容容器 DOM。 |
5.1.2 方法(Methods)
5.1.2.1 constructor(options)
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| container | HTMLElement | 无 | 模态框父容器,必需。 |
| title | String | 无 | 标题。 |
| content | HTMLElement / String | 无 | 初始内容。 |
| onToggle | Function | 无 | 开关回调,参数为 isVisible。 |
| position | Object | 居中 | CSS 定位,如 { top:'50px', left:'20px' },也支持 right/bottom。 |
返回结果: Modal
const modal = new MinBIM.Widget.Modal({
container: viewer.container,
title: '标题',
content: '内容',
onToggle: (visible) => console.log(visible)
});
5.1.2.2 show()
显示模态框并触发 onToggle(true)。
5.1.2.3 close()
隐藏模态框并触发 onToggle(false)。
5.1.2.4 toggle()
切换显示状态。
5.1.2.5 updateContent(content)
| 参数名 | 类型 | 说明 |
|---|---|---|
| content | HTMLElement / String | 新内容;字符串按 HTML 解析。 |
5.1.2.6 destroy()
关闭模态框、移除 DOM 并释放引用。
以上方法均返回 void。
modal.show();
modal.updateContent('<p>新内容</p>');
modal.toggle();
modal.destroy();
6 版本历史
v1.5.1(2026年10月18日)
- 支持多模型独立批次加载,
Loader.load()返回本批次 Group。 - 增加 CDN 签名 URL 钩子与 401/403 重签重试。
restoreView()返回可打断的 Tween。- 增加动态旋转中心与构件半透明等能力。
- 修正旧文档中工具启停方法、公开组件和默认值等不一致内容。
v1.4.1(2026年9月10日)
- 添加非叶子节点的等选功能。
- Visibility 显隐参数由 uuid 调整为 guid。
- 修复层级树选择与构件属性同步问题。
v1.4.0(2026年7月14日)
- 升级轻量化数据加载支持。
- 将
toggleGraphics调整为setQuality()/getQuality()。 - 场景交互期间暂时关闭 SAO。
v1.3.4(2026年5月23日)
- 优化 SAO 和地面伪阴影。
- 数据加载由同步改为异步。
v1.3.3(2026年2月3日)
- 修复实例对象独立 ID 问题。
- 完善测距 XYZ 轴向值显示。
- 应用 BVH 加速射线检测。
v1.3.2(2025年12月26日)
- 修复法向量自动计算中的硬边问题。
- 支持多构件同时选中。
- 增强场景视觉效果。
v1.3.1(2025年12月12日)
- 修复双击卡顿和爆炸错位问题。
v1.3.0(2025年11月6日)
- 修复渲染异常、节点重复加载和交互失效问题。
- 开放 Viewer、Loader、Picker、Exporter 及工具类 API。
- 完成接口文档标准化。
v1.2.1(2025年10月10日)
- 修复已知问题与部分纹理 UV 问题。
- 优化导出提示与错误处理。
v1.2.0(2025年8月10日)
- 引入面数减化、实例化渲染、节点合并与索引压缩。
- 优化模型分块解析和加载缓存。
- 集成自动转换及结果检查流程。
v1.1.3(2025年6月15日)
- 新增拾取事件监听。
- 完善模型层级树与节点定位。
v1.1.2(2025年6月2日)
- 支持透视与正交视图切换。
- 新增模型层级树与节点定位。
- 优化复杂场景性能。
v1.1.0(2025年5月7日)
- 增加 property、node 数据。
- 引入自定义
.mb数据格式。 - 优化分段解析、异步调度与光照自适应。
v1.0.5(2025年4月15日)
- 新增工具栏、测量、剖切、拆解与场景设置。
- 优化聚焦计算与界面交互。
- 添加模型底部地面组件。
v1.0.3(2025年3月15日)
- 发布首个公开版本,完成核心渲染、相机、光照与初版 API 架构。
7 版权声明
本文档及其中内容为 魔兜(济南)数字科技有限公司 所有,公开用于产品评估及授权项目开发,未经许可不得转载或用于其他商业用途。