在伪造查看器中加载多个模型(集合),默认情况下将其他模型加载为隐藏,直到用户从模型浏览器中选择

时间:2019-05-20 05:53:48

标签: autodesk-forge autodesk-viewer

我正在尝试在加载时最初将多个模型(聚合)加载到伪造查看器(v.6.x)上,但是我只想显示一个模型和其他默认隐藏的模型(可以在幽灵视图中显示) )。稍后,当用户从模型浏览器中单击眼睛图标时,该模型应该是可见/隐藏的。

我尝试在加载模型后调用viewer.hideModel(modelId)。但是,即使模型显示在模型浏览器中,当我单击它时,它仍未加载错误模型。

var showModel = false;
this.viewer.loadModel(url, {globalOffset: { x:0, y:0, z:0 }, modelNameOverride: modelName}, () => 
  {
    this.isModelLoaded = true;
    this.viewer.caller = this;
    this.addEventListenersToViewer();
    if(!showModel){
      this.viewer.hideModel(modelId); // This is to hide the model by default after loading.
    }
  },
errorMsg => {
  this.isModelLoaded = false;
  this.viewer.container.style.opacity = 0;
  this.modelLoadError(this.fetchTranslationByKey('getModelError'));
  }
);

预期的行为是允许用户从模型浏览器中进行选择,该模型将在最初加载的所有模型中显示/隐藏在查看器中(默认情况下应隐藏链接的模型)。

我得到的当前结果是链接的模型显示在模型浏览器中,但是当我单击它时,它说-未加载错误模型

1 个答案:

答案 0 :(得分:0)

这里有几个问题:

  • 使用箭头功能时,this所指向的上下文是不同的,因此请小心

  • 您是如何获得modelId的?最好使用Viewer.impl.modelQueue()

  • 来更好地使用模型计数器来迭代模型数组
  • 我无法使用模型浏览器复制未加载模型错误。您能否提供更多详细信息或实时示例(jsfiddle / jsbin)?