使用BIM 360/ACC模型属性API获取BoundingBox坐标偏差问题咨询
BIM 360/ACC Model Properties API与Revit API获取BoundingBox不一致的问题解决
问题描述
使用BIM 360/ACC Model Properties API获取元素(外部ID:01cc79a0-b442-46a7-aa28-7591b3806a60-0057a0f6)的BoundingBox时,返回的bboxMin和bboxMax数值与通过Revit API获取的模型真实结果存在差异。
API返回的相关数据(已翻译中文属性):
[ { "svf2Id": 1558, "otgId": 1558, "lineageId": "2bb621b2", "externalId": "01cc79a0-b442-46a7-aa28-7591b3806a60-0057a0f6", "lmvId": 17777, "databaseId": "836ca369", "props": { "p01bbdcf2": "预制层1", "p0337db30": true, "p09faf620": "等径三通", "p13b6b3a0": "等径三通", "p153cb174": "MW_M_PipeEqTee_CS [5742838]", "p20d8441e": "管道配件", "p240c30c1": "3bf616f9-6b98-4a21-80ff-da1120c8f6d6", "p2b38e630": 1299.9999999552597, "p2c0bde18": "其他", "p30db51f9": "MW_M_PipeEqTee_CS", "p3c57b64e": "新建工程", "p3f78b271": 90.0, "p42881968": 30.15, "p4709f0b8": "50 mmø-50 mmø-50 mmø", "p51721b83": "三通", "p51fa5281": 50.0, "p5ea8a655": 0.0, "p5eddc473": "Revit管道配件", "p682199ff": 0.0, "p8571457c": "level-1", "p875a6521": "50 mmø-50 mmø-50 mmø", "p98057bd5": "RUWT", "p9b4eb664": false, "pa06a928b": 63.50000000000001, "pa7275c45": -2008049, "pab5862eb": "M_PipeRUWT", "pae6de8dc": 90.0, "paec306c1": false, "pb2bb8b86": 25.0, "pb790e1f6": "M_PCWT_FAB_PCWR", "pc1107d2e": 0.0, "pdcd11637": 0.0, "pe36ff9a6": "RUWT 7", "pe7bd3497": 0.0, "pee815a7f": "无", "pf2274dd8": 24.119999999999997, "pfa74ec17": "MW_EqTee_ButtWelded_CS", "pfdf3d1f1": 60.3, "pfe4526bc": 63.50000000000001 }, "propsHash": "823f4e04", "geomHash": "0sTBVuU4MWT+aez0r4DXZA", "bboxMin": { "x": 23140.19253646859, "y": 48851.27388988427, "z": 16.26149963902241 }, "bboxMax": { "x": 23140.303569470067, "y": 48851.37130489879, "z": 16.38850002659565 }, "views": [ "59f3eb59", "71f6ba26" ] } ]
可能的原因
- 坐标系差异:Revit API返回的是项目全局坐标系下的BoundingBox,而Model Properties API可能返回元素局部坐标系或视图转换后的坐标数值。
- 模型转换精度损失:模型上传至BIM 360/ACC时会转换为SVF2格式,转换过程中可能存在精度压缩,导致BoundingBox数值出现细微偏差。
- 元素几何定义不同:Revit中的元素BoundingBox可能包含附属构件、临时几何或族嵌套部分,而Model Properties API返回的是简化后的几何边界。
- 视图过滤影响:API返回的BoundingBox绑定了特定视图(返回结果中的
views字段),可能是该视图下元素可见部分的边界,而非全局完整边界。
解决步骤
坐标系转换验证
- 检查Revit项目的坐标系设置,获取项目全局坐标系与模型局部坐标系的转换参数。
- 将API返回的BoundingBox坐标通过转换参数映射到Revit全局坐标系,对比是否匹配。
调整模型转换参数
- 在BIM 360/ACC中重新上传模型,关闭精度压缩相关选项,确保几何数据完整保留。
- 重新调用Model Properties API获取BoundingBox,对比数值差异是否缩小。
对比元素几何范围
- 在Revit中打开该元素的族编辑器,查看原始几何边界,确认是否包含隐藏或附属部分。
- 在BIM 360 Viewer中定位该元素,查看显示几何的边界范围,与API返回值对比。
排除视图影响
- 调用Model Properties API时,尝试指定全局视图参数(若支持),或获取元素在所有视图中的BoundingBox数据。
- 对比不同视图下的BoundingBox数值,看是否存在与Revit结果一致的情况。
交叉验证API结果
- 使用Model Derivative API的几何获取接口获取该元素的BoundingBox,对比与Model Properties API的返回值。
- 若两者一致,则问题源于模型转换或坐标系差异;若不一致,则需排查API本身的逻辑差异。
内容的提问来源于stack exchange,提问作者chuongmep
相关产品推荐
相关产品推荐

