【问题标题】:Autodesk Forge Viewer : how to get documentAutodesk Forge Viewer:如何获取文档
【发布时间】:2017-01-29 22:40:06
【问题描述】:

我正在尝试获取与转换后的 rvt 文件一起使用的所有 2d 和 3d 模型的列表。

看着旧的example : LmvNavTest,他们这样做是为了访问“文档”rootItem

Autodesk.Viewing.Document.load(fullUrnStr, function(document) {
    _loadedDocument = document; // keep this in a global var so we can reference it in other spots

        // get all the 3D and 2D views (but keep in separate arrays so we can differentiate in the UX)
    _views3D = Autodesk.Viewing.Document.getSubItemsWithProperties(document.getRootItem(), {'type':'geometry', 'role':'3d'}, true);
    _views2D = Autodesk.Viewing.Document.getSubItemsWithProperties(document.getRootItem(), {'type':'geometry', 'role':'2d'}, true);

据我了解,现在首选的方法是使用 loadModel

oViewer =new Autodesk.Viewing.Private.GuiViewer3D ($("#viewerContainer") [0], {}) ;
oViewer.loadModel (url , [],  onLoadSuccess, onLoadFail) ;

如果我以 loadModel 方式执行此操作,我如何访问文档以便调用它的 getSubItemsWithProperties 方法

【问题讨论】:

  • 很抱歉没有更快地回答。现在解决了吗?从您对stackoverflow.com/questions/39533258/… 的评论来看,似乎是这样。还是这种情况完全不同?
  • 不,如果您直接加载模型,我仍然对从哪里获取“文档”感到困惑。请记住,我正在尝试离线完成这一切。所以我想下载我需要的所有文件。特别是在处理 2D (f2d) 时。我知道清单和元数据文件与 f2d 文件位于同一文件夹中。但我不知道如何访问 f2d 文件中的其余信息,因为它不是开放格式。我试图使用 getSubItemsWithProperties 方法,但我不知道如何获取文档,因此我可以传入 rootItem。
  • 您检查过新的样板样本吗? github.com/Autodesk-Forge/forge-boilers.nodejs 第一个示例是 1 - 查看器离线...它可能正在执行您想要的开箱即用操作。
  • 如果有机会,请将我的答案标记为解决方案,或者说明它不能解决您的问题的方式,如果需要,我会详细说明。谢谢。

标签: autodesk-forge autodesk-viewer


【解决方案1】:

您提出问题的方式有点令人困惑,如果您对离线加载的内容不是很明确,则很难理解您的工作流程。

以下是我认为可能的两种情况:

1/ 您使用其 URN 从 Autodesk Cloud 在线加载模型:在这种情况下,您需要首先调用 Autodesk.Viewing.Document.load,此调用实际上将返回清单数据,从那里您可以使用 Autodesk.Viewing.Document.getSubItemsWithProperties 检索 3D 和 2D 可视项,正如您所指出的那样。一旦您以编程方式或通过用户交互方式选择了要在查看器中加载的路径,您就可以使用 viewer.loadModel(_views2D[idx])

2/ 您已经在本地下载了模型的整个包,在这种情况下,您应该已经知道现有的 2D 和 3D 视图是什么,因为您有一些逻辑可以解析资源并存储每个可视项。通常,您需要将此信息存储在 .json 或类似文件中。

这种情况你不需要使用Autodesk.Viewing.Document.load,你可以直接使用viewer.loadModel('path /of/the/view/你想加载到本地磁盘')

一旦您使模型脱机,就无法“知道”现有视图是什么,除非您的代码创建了一个包含此数据的 .json。

有关如何以编程方式提取与翻译的 Forge 模型相关联的资源的更多详细信息,请查看本文:Forge SVF Extractor in Node.js

希望澄清一下,如果您有不同的情况,请说明您是如何进行的。

【讨论】:

    猜你喜欢
    • 2021-08-30
    • 1970-01-01
    • 2021-02-21
    • 2017-05-05
    • 2021-03-02
    • 2020-05-06
    • 2022-08-22
    • 2021-05-13
    • 2016-12-19
    相关资源
    最近更新 更多