我正在尝试使用forge-rcdb从Revit显示我自己的模型。目前,我可以显示一个模型及其属性。下一步是在同一个查看器中显示2个模型。 ModelLoader面板显示良好,但当我单击“+”添加另一个模型时,我的模型列表将显示在模型列表中。但是当我真正选择一个......没什么。
我将部分模型放在rcdb.models.json和rcdb.gallery.json中(我只有他们的路径)。它们确实出现在“选择模型”面板中
我试图分析文件Viewing.Extension.ModelLoader.js和ModelSvc.js。内部的一些函数调用模型urn和称为“apiUrl”的东西。
在我的情况下,因为我使用自己的模型,我只有一个路径,没有骨灰盒。
在控制台面板中,出现以下错误:
Uncaught (in promise) DOMException: Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.
无论我选择什么型号,我都有这个错误。我使用的两个模型是我的,两个来自autodesk默认模型(因此它们有一个瓮)。
所以我的第一个问题是:我的模型是否需要一个urn,因为函数似乎与它一起使用(我不确定),当我只有一条路径时如何获得一个urn?
第二个问题:什么是“apiUrl”,它描述了什么以及如何使用它?
第三个问题:我尝试了this example,当我显示控制台时,似乎它调用了一些内置strange things的API / gallery文件夹。它包含什么,是否链接到“apiUrl”以及ModelLoade中显示的内容 - 选择模型面板?
答案 0 :(得分:1)
您需要查看本文,了解应用程序如何使用path vs urn存储在数据库中的模型信息:
Working seamlessly online/offline when developing your Web applications with the Forge Viewer
apiUrl 是一个传递给某些服务的参数,它定义了对api的调用将在哪个url上执行,如果你不更改它应该是/ api但你可以传递另一个值,例如/ myapi如果由于某种原因你想在不同的路径上运行api服务器。
因此,在当前实现中,modelLoader扩展使用参数数据库,该参数在选项中传递以构建请求模型列表的URL。假设您在本地运行示例并在mongoDB中使用名为 gallery 的集合进行相同的设置,您应该能够在浏览器中输入http://localhost:3000/api/models/gallery并查看如下所示的内容。这是将在modelLoader面板中显示的模型列表。