二三维联动

2D 和 3D 引擎分别初始化。业务层负责订阅一个视图的选择事件,并在另一个视图中执行定位或状态控制。

打开 API 调试

二三维联动

2D 和 3D 引擎分别初始化。业务层负责订阅一个视图的选择事件,并在另一个视图中执行定位或状态控制。

初始化 2D 和 3D

import { BimEngine, BimEngine2d } from 'iflow-engine';

const viewer3d = new BimEngine('viewer-3d');
await viewer3d.initialize();

const viewer2d = new BimEngine2d('viewer-2d');
await viewer2d.ready;
await viewer2d.loadModelByViewToken('DRAWING_VIEW_TOKEN');

启用 3D 联动模式

viewer3d.engine?.activeModelLink3d();

// 不再需要联动时关闭
// viewer3d.engine?.disActiveModelLink3d();

2D Viewer 内置右键菜单支持“图模关联”和“图模视图关联”。若业务系统需要自定义联动规则,应监听 2D 实体点击事件后,通过 3D 的构件定位或构件状态 API 执行同步。

viewer2d.on('engine2d:entity-clicked', ({ data }) => {
  // 将 data 中的业务构件标识转换为模型 URL 与构件 ID
  viewer3d.engine?.highlightModel([
    { url: 'https://example.com/models/building-a/', ids: [350518] }
  ]);
});

二三维的构件 ID、模型 URL 和业务映射关系由业务系统维护。