【问题标题】:How can I load only specifc objects in the forge viewer using SFV2?如何使用 SFV2 在伪造查看器中仅加载特定对象?
【发布时间】:2021-03-27 23:11:59
【问题描述】:

SVF2 的objectids/dbids 与 SVF1 不同。在这个SO-Answer 中,建议使用externalId 而不是objectid。但是,viewer.loadModel(svfUrl,{ids:[dbIds...]}) 使用 dbIds 仅加载指定的对象。如何使用 SVF2 和 https://developer.api.autodesk.com/modelderivative/v2/regions/eu/designdata/:urn /metadata/:guid/properties 端点仅加载指定的对象?我可以在任何地方访问svf2 objectIds吗?或者我可以在调用Viewer3d::loadModel时使用externalIds吗?

【问题讨论】:

    标签: autodesk-forge autodesk-viewer autodesk-model-derivative


    【解决方案1】:

    你是对的,“SVF1 dbIDs”和“SVF2 dbIDs”之间是有区别的——SVF2格式的ID是“持久的”,这意味着在同一设计文件的不同版本中,单个ID将引用相同的设计元素(在 SVF1 中并非如此)。

    不幸的是,平台的某些部分(如loadModel 查看器方法和/modelderivative/v2/regions/eu/designdata/:urn /metadata/:guid/properties 端点)尚未“赶上” SVF2。在这些更新可用之前,您必须手动映射“在新旧 dbID 之间”,这本身就是另一个重要的任务。

    【讨论】:

    • SVF2 是否使用 IfcGuid 而不是 externaIds?我尝试按照您的 SO 答案 here 的建议使用 viewer.model.getExternalIdMapping(onSuccessCallback, onErrorCallback)。但是,映射的主要键是 IfcGuids 而不是 /modelderivative/v2/regions/eu/designdata/:urn /metadata/:guid/properties 端点返回的 externalIds。 SVF2 是否也破坏了此功能?
    • 是的,在 SVF2 中,IfcGUID 属性不再包含在属性中,因为它在 external_id 中使用。
    • 那么有效地没有办法将 SVF1 属性映射到 SVF2 属性,或者是否存在? viewer.model.getExternalIdMapping/modelderivative/v2/regions/eu/designdata/:urn /metadata/:guid/properties 何时可以与 SVF2 一起使用?
    • 支持 SVF1 ID 和 SVF2 ID 之间的清晰映射是一项正在进行的工作,但您也许可以开始尝试一些已在最新版本的 Forge Viewer 中添加的逻辑,例如例如,Model 类现在应该提供一个名为 remapDbId 的方法,该方法应该能够将“旧”dbID 映射到“新”dbID。
    • 这将是我需要的功能。但是,根据源代码它只设置为2D模式而不是3D模式://F2D/PDF only -- mapping of F2D/PDF dbids to OTG property database v2 dbids ------------ this.setDbIdRemap = function (dbidOldToNew) { if (this.is2d()) { this.idRemap = dbidOldToNew; } };
    猜你喜欢
    • 2021-04-06
    • 2021-05-02
    • 2021-05-01
    • 2019-06-08
    • 2020-07-13
    • 1970-01-01
    • 2020-05-29
    • 2018-05-12
    • 2020-02-03
    相关资源
    最近更新 更多