首页 > 解决方案 > 在单个网页中加载 2D 和 3D 伪造查看器

问题描述

我想在 2D 图纸和 3D 模型中的元素之间建立链接,所以当我从 2D 中选择元素时,它应该在 3D 中反射和选择(隔离),如果我更改颜色,它在例如和另一个上的效果相同绕路。

所以我可以使用文档浏览器扩展在第一个查看器上打开 2d 表,在第二个查看器上打开 3d 模型:

在此处输入图像描述

const firstModel = new Autodesk.Viewing.Private.GuiViewer3D(document.getElementById('MyViewerDiv1'));
 const secondModel = new Autodesk.Viewing.Private.GuiViewer3D(document.getElementById('MyViewerDiv2'));

 Autodesk.Viewing.Initializer(options1, function() {
  viewer1.start();
  viewer1.load(...);      
 });

 Autodesk.Viewing.Initializer(options2, function() {
  viewer2.start();
  viewer2.load(...);
 });

如果上面的例子是正确的,我仍然想念如何链接两个观众。我希望有人可以帮助我解决这个问题

标签: autodesk-forgeautodeskautodesk-bim360

解决方案


请注意,我们有一个查看器扩展可能已经为您提供了您正在寻找的内容:https ://github.com/Autodesk-Forge/forge-extensions/blob/master/public/extensions/NestedViewerExtension/README.md 。

如果您想自己实现两个查看器实例之间的交叉选择,您可以。只需在其中一个查看器中订阅SELECTION_CHANGED事件,获取选定的 ID,然后使用常规viewer.select([...]);方法在另一个查看器中选择相同的 ID。

顺便提一句。关于您的代码段:

  • 整个Autodesk.Viewing.Initializer网页只需要调用一次
  • Autodesk.Viewing.Private.GuiViewer3D实例应该在初始化器完成其工作后创建

推荐阅读