A360 查看器:为 Web 应用程序集成获取对象属性
A360 viewer: Fetching object properties for web application integration
我正在尝试将 autodesk a360 查看器集成到我的 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 的详细信息,请查看 Model Derivative API。
获取:urn/metadata
获取:urn/metadata/:guid
获取: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);
});
};
});
希望对您有所帮助。
我正在尝试将 autodesk a360 查看器集成到我的 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 的详细信息,请查看 Model Derivative API。
获取:urn/metadata
获取:urn/metadata/:guid
获取: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);
});
};
});
希望对您有所帮助。