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

Autodesk forge A360查看器:获取web应用程序集成的对象属性,autodesk-forge,autodesk-viewer,Autodesk Forge,Autodesk Viewer,我正在尝试将autodesk a360 viewer集成到我的web应用程序中。但是,我们希望提取所选对象的对象属性,以便从数据库中获取其他信息。例如,当用户单击门时,我们需要从对象属性中提取该门的标记id,并使用该标记id执行一些sql查询 我看过autodesk forge,但我不太确定这是一种过度使用还是它的发展方向。是的,您想要在forge中实现的目标是绝对可能的。实际上,有两种方法可以获取对象的属性。无论是从服务器端(Model Derivate API)还是客户端(Forge Vie

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


我看过autodesk forge,但我不太确定这是一种过度使用还是它的发展方向。

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

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

请查看以下3个API的详细信息

获取:urn/metadata

获取:urn/metadata/:guid

获取:urn/metadata/:guid/properties

第二种解决方案是使用Forge Viewer API,首先,您需要注册一个SELECTION\u CHANGED\u event事件,在该事件中,很容易获取所选对象的dbId,并使用API getProperties获取所有需要的属性,然后根据需要使用该属性执行一些sql查询。代码片段如下所示,如果您感兴趣,我有一个小例子来演示解决方案

            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);
                    });
                };
            });

希望能有所帮助。

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

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

请查看以下3个API的详细信息

获取:urn/metadata

获取:urn/metadata/:guid

获取:urn/metadata/:guid/properties

第二种解决方案是使用Forge Viewer API,首先,您需要注册一个SELECTION\u CHANGED\u event事件,在该事件中,很容易获取所选对象的dbId,并使用API getProperties获取所有需要的属性,然后根据需要使用该属性执行一些sql查询。代码片段如下所示,如果您感兴趣,我有一个小例子来演示解决方案

            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);
                    });
                };
            });
希望能有帮助