A360查看器:获取Web应用程序集成的对象属性

时间:2016-11-23 03:41:30

标签: autodesk-forge autodesk-viewer

我正在尝试将autodesk a360查看器集成到我的Web应用程序中。但是,我们希望提取所选对象的对象属性,以从我们的数据库中获取其他信息。例如,当用户点击门时,我们想从对象属性中提取此门的标记ID,并使用此标记id执行一些sql查询。

我已经看过autodesk伪造,但是我不太确定它是否是一种矫枉过正或者它的方向。

1 个答案:

答案 0 :(得分:2)

是的,您想要实现的目标绝对可以在Forge中实现。实际上,有两种方法可以获取对象的属性。无论是从服务器端(Model Derivate API)还是客户端(Forge Viewer API),我都会在这里列出它们,以防您感兴趣。但对于您的情况,我认为使用Forge Viewer API的第二种方式更合适。

第一个解决方案,使用Model Derivative API,它提供以下3个API,第一个API用于获取设计模型的模型视图ID列表。然后,您可以使用第二个API获取模型视图的对象的分层列表。使用最后一个API,您可以获得由guid表示的指定对象的所有属性。

请查看Model Derivative API以了解有关以下3个API的详细信息。

GET:urn / metadata

获取:urn / metadata /:guid

GET:urn / metadata /:guid / properties

第二个解决方案正在使用Forge Viewer API,首先,您需要注册一个SELECTION_CHANGED_EVENT事件,在该事件中,很容易获得所选对象的dbId,并使用API​​ getProperties如下所示获取所需的所有属性,然后根据需要使用此属性执行一些SQL查询。代码片段如下所示,如果您感兴趣,我会有一个小sample code来演示解决方案。

            currentModel.getProperties(dbId, function(result) {
                console.log("List properties of DbId:" + dbId);
                if (result.properties) {
                    result.properties.forEach(function(prop) {
                        // call API to perform sql query with the property you are interested
                        console.log(prop);
                    });
                };
            });

希望它有所帮助。