加载多个文档时如何设置model.getDocumentNode?

时间:2018-09-10 14:55:41

标签: autodesk-forge autodesk-viewer

我从查看器中的多个转换的revit文件中加载了多个模型。 在每个模型中,我都放置了与选定元素关联的点。 为了以后可以重用这些点,我需要:

  1. 哪个revit文档来自->模型[x] .myData.urn:好的
  2. 从-> model.getDocumentNode中获取的revit文档中的哪个视图(模型)返回null(当我使用viewerApp加载单个模型时,情况并非如此)。这导致无法访问视图的GUID的node.model.getDocumentNode()。data.guid。 ko
  3. Dbid->出现在选择事件中:确定
  4. 导游->我构建了两种方式映射表(dbid <-> guid)以获取所需信息:好的(可以使用更简单的方式打开,但是可以)

主要问题是第二点,如何在查看器中加载多个模型时设置model.getDocumentNode?

谢谢

1 个答案:

答案 0 :(得分:1)

您可以在加载过程中收集文档URN和模型GUID:

function load(urn) {
    viewerApp.loadDocument(
        'urn:' + urn,
        function onDocumentLoadSuccess(doc) {
            const viewables = viewerApp.bubble.search({ 'type': 'geometry' });
            if (viewables.length > 0) {
                const path = doc.getViewablePath(viewables[0].data);
                const viewer = viewerApp.getCurrentViewer();
                const options = { /* your options */ };
                viewer.loadModel(path, options, function onModelLoadSuccess(model) {
                    model._myURN = urn;
                    model._myGUID = viewables[0].data.guid;
                });
            }
        }
    );
}