【问题标题】:Fetching linked model content separately in Viewer在查看器中单独获取链接模型内容
【发布时间】:2020-09-30 18:28:07
【问题描述】:

我正在尝试在 forge 查看器中从 Bim360 Docs 加载链接模型。

当我加载父/根模型时,我能够看到所有链接的内容。

因此,当我在查看器中加载根模型时,我想实现功能,在其中我可以从 Forge 查看器打开/关闭链接模型的可见性。

例如,如果我正在加载一个 Root 模型,其中有 2 个模型链接到它,child1 和 child2,它也会从 Child1 和 Child2 加载内容。

在这种情况下,如果我只想查看 Child1 的内容,我如何告诉查看者隐藏 child2 模型的所有内容/元素?

【问题讨论】:

    标签: autodesk-forge autodesk-viewer


    【解决方案1】:

    根据您的描述,听起来翻译的输出(由 Forge Model Derivative 服务生成的 SVF 文件)包括根模型以及“烘焙”到单个场景中的所有链接文件,是正确的?在这种情况下,链接的模型应该是“实例树”的一部分,出现在模型浏览器面板中,您可以使用Viewer3D.prototype.hide 方法根据它们的 dbID 隐藏这些子树。

    或者,如果您事先知道 dbID,则可以将选项对象传递给 loadDocumentNode 方法以仅加载特定的 dbID,例如:

    viewer.loadDocumentNode(doc, geometry, { ids: [4, 5, 6] });
    

    【讨论】:

    • 是的,您是对的,当我们在 BIM360 文档中上传模型时,我们不需要手动进行翻译过程,BIM 360 文档会为我们完成。我们可以在模型浏览器中看到不同链接模型的内容,但是它被分组在不同的类别/对象族下,要隐藏整个模型,我怎么知道哪个类别/对象族属于哪个模型?我可以从 forge 的根模型中检索链接模型数据吗?如果没有,您能建议任何不同的方法吗?
    • 我的理解是链接模型会出现在实例树的顶部,但我可能错了。如果您无法检测树中的哪些对象代表哪个模型,另一种选择(虽然更复杂)是尝试断开链接,分别上传和翻译每个模型,然后只聚合您有兴趣使用的模型multi-model 功能。
    • AECModeldata 为我们提供了链接文档的信息。该函数是 - Autodesk.Viewing.Document.getAecModelData(doc.getRoot())。如果在根模型上调用此函数,我们可以获得多少文档链接到根模型,以及每个文档的一些“documentId”和“instanceId”。你能告诉我,在根模型链接后,我们可以利用这些信息根据源文件区分元素吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-11
    • 2016-03-05
    • 2012-04-08
    相关资源
    最近更新 更多