Clash Detection
Clash Detection API用于检查数字模型中不同设计元素集合之间的几何碰撞。一般来说,会涉及到检查设计元素的几何范围是否与模型中的其他几何接口发生碰撞,或者低于规定的限制。该API包括两个主要部分,test和result以及管理它们的能力。
Clash Tests
Clash Tests基于工程模型或者数字孪生模型中两组不同和类别的设计元素。例如,机械设备的所有设计图元可以都放在A组内,所有管道图元可以都放在B组内。
碰撞检测具有设置间隙或抑制规则的高级选项。
- 元素周围的间隙。例如所有管道必须留有6英寸的间隙,以满足隔热的要求。
- 抑制接触可以定义规则,以在两个元素互相接触时抑制碰撞检测。例如,钢梁和钢柱在连接处接触。
- 抑制规则是根据逻辑定义的。例如,木门和混凝土墙之间所有的碰撞都应该被抑制。
Clash Results
提供了每种类型的测试结果。它们包含了Clash Tests中定义的成对元素的碰撞结果。
典型的Clash Detection工作流
在iModel中检测冲突的过程包括了以下步骤:
- 创建clash detection test
- 指定iModel、版本和碰撞检测类型
- 指定要检测的两组元素
- 运行碰撞检测测试
- 检查并查看碰撞检测结果
整体流程演示(design review)
1.进入Design Review,选择创建碰撞检测
2.配置test
筛选包含wall的categories全部setA,
筛选包含 floor的categories全部setB
此处可以添加抑制规则
3.Run test
4.Run test 结束后会邮件通知,可在result栏查看碰撞检测结果
参考代码:https://www.itwinjs.org/sandboxes/iTwinPlatform/Clash%20Review
注:参考代码中是直接获取了项目的第一个run,并取得结果,并非碰撞检测的整套流程。
碰撞检测API调用流程
1.Create clash detection suppression rule,(创建抑制规则,可选)
POST https://api.bentley.com/clashdetection/suppressionRules
传入Suppression rule的模板 templateId, 得到 Suppression rule 的 id 模板不同,所需的额外参数也不同
2.Create clash detection test,创建检测
POST https://api.bentley.com/clashdetection/tests
传入 suppressionRules 数组,setA 和 setB , 得到 test id 创建一类检测,setA和setB可传入多个model或category
3.Run clash detection test,执行一次检测
POST https://api.bentley.com/clashdetection/runs
传入testId,获得一个 run id 以及 run href,
4.Get clash detection run
GET https://api.bentley.com/clashdetection/runs/{id} 获得 result href接口
5.Get clash detection result details,获得碰撞检测结果详情
GET https://api.bentley.com/clashdetection/results/{id} 即访问result href接口