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

How to set model.getDocumentNode when loading multiple documents?

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

  1. 它取自哪个 revit 文件 -> models[x].myData.urn : ok
  2. revit 文档中的哪个视图(模型)取自 -> model.getDocumentNode returns null(当我使用 viewerApp 加载单个模型时情况并非如此)。这导致 node.model.getDocumentNode().data.guid 无法访问视图的 guid。敲
  3. Dbid -> 出现在选择事件中:ok
  4. Guid -> 我构建了一个 2 种方式映射 table (dbid<->guid) 来获得我需要的东西:好的(打开更直接的方法,但是没问题)

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

谢谢,

您可以在加载过程中收集文档 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;
                });
            }
        }
    );
}