# 预览图模联动

通过图模联动编辑器完成图纸关联后,就可以进行图模联动的浏览了。图模联动应用提供了图纸切换、位置联动、相机标签等功能,同时开放了二三维位置换算等前端接口,开发者可以结合模型浏览 (opens new window)模块中的API进行功能扩展,实现二三维同步打标签、二三维同步批注等功能。 图模联动应用

获取View Token、引用SDK、新建DOM元素等方法可以参考编辑图模联动,本教程不再赘述。

# 构造应用页面

首先需要构造组件管理器,构造完成后可以通过组件数据的View Token和组件类型加载图模联动组件。在组件加载完成后才可以构造图模联动应用,可以通过then()方法异步执行。

// 构造组件管理器的配置项
let managerConfig = new Glodon.Bimface.Module.ModuleManagerConfig();
// 构造组件管理器对象
moduleManager = new Glodon.Bimface.Module.ModuleManager(managerConfig);
// 加载组件
moduleManager.loadModule({
  // 组件数据的View Token
  viewToken: viewToken,
  // 组件类型,"Linkage2D3D"为图模联动
  moduleType: "Linkage2D3D"
}).then(() => {
  // 构造图模联动应用的配置项
  let appConfig = new Glodon.Bimface.Module.Linkage2D3D.WebApplicationConfig();
  // 指定存放应用界面的DOM容器
  appConfig.domElement = document.getElementById("domId");
  // 构造图模联动应用
  webApplication = new Glodon.Bimface.Module.Linkage2D3D.WebApplication(appConfig);
  // 获取Viewer3D对象,获取后可以调用Viewer3D类下的方法
  viewer3D = webApplication.getViewer3D();
  // 获取ViewerDrawing对象,获取后可以调用ViewerDrawing类下的方法,需要在ViewerDrawing初始化完成后执行
  webApplication.addEventListener(Glodon.Bimface.Module.Linkage2D3D.WebApplicationEvent.ViewerDrawingInitialized, () => {
    viewerDrawing = webApplication.getViewerDrawing();
  });
});

# 完整代码

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title>图模联动预览</title>
  <style type="text/css">
    * {
      margin: 0;
      padding: 0;
    }

    html,
    body {
      height: 100%;
    }

    .buttons {
      font-size: 0;
    }

    .button {
      margin: 5px 0 5px 5px;
      width: 100px;
      height: 30px;
      border-radius: 3px;
      border: none;
      background: #32D3A6;
      color: #FFFFFF;
    }

    .main {
      display: flex;
      flex-direction: column;
      overflow: hidden;
      height: 100%;
    }

    #domId {
      flex: 1;
    }
  </style>
  <!-- 引用BIMFACE的JavaScript显示组件库 -->
  <script src="https://static.bimface.com/api/BimfaceSDKLoader/BimfaceSDKLoader@latest-release.js"></script>
</head>

<body>

  <div class='main'>
    <!-- 定义DOM元素,用于在该DOM元素中显示图模联动 -->
    <div id="domId"></div>
  </div>

  <script type="text/javascript">

    // 声明变量
    let moduleManager;
    let webApplication;
    let moduleDataId = "2502933573946112";
    let viewToken = "5789250cb0624f148e120e000482ecb7";

    // 构造组件管理器的配置项
    let managerConfig = new Glodon.Bimface.Module.ModuleManagerConfig();
    // 构造组件管理器对象
    moduleManager = new Glodon.Bimface.Module.ModuleManager(managerConfig);
    // 加载组件
    moduleManager.loadModule({
      // 组件数据的View Token
      viewToken: viewToken,
      // 组件类型,"Linkage2D3D"为图模联动
      moduleType: "Linkage2D3D"
    }).then(() => {
      // 构造图模联动应用的配置项
      let appConfig = new Glodon.Bimface.Module.Linkage2D3D.WebApplicationConfig();
      // 指定存放应用界面的DOM容器
      appConfig.domElement = document.getElementById("domId");
      // 构造图模联动应用
      webApplication = new Glodon.Bimface.Module.Linkage2D3D.WebApplication(appConfig);
      // 获取Viewer3D对象,获取后可以调用Viewer3D类下的方法
      viewer3D = webApplication.getViewer3D();
      // 获取ViewerDrawing对象,获取后可以调用ViewerDrawing类下的方法,需要在ViewerDrawing初始化完成后执行
      webApplication.addEventListener(Glodon.Bimface.Module.Linkage2D3D.WebApplicationEvent.ViewerDrawingInitialized, () => {
        viewerDrawing = webApplication.getViewerDrawing();
      });
    });

  </script>
</body>

</html>