# 条件筛选
Viewer3D中多个接口提供了按条件筛选构件的功能,以便于对构件进行隐藏、隔离、获取构件列表等操作,用户可利用相应的字段来实现筛选。
# 筛选条件
筛选条件支持两种情况:
- 交集:既满足条件A,又满足条件B;
- 并集:满足条件A,或者满足条件B。
# 筛选示例
# 1. 构件信息
为便于用户进行构件筛选,BIMFACE针对三维模型构件定义了objectData,包含了5个字段,分别为categoryId、levelName、specialty、family及familyType。
用户可通过Viewer3D类中的getObjectDataById的方法获取构件的objectData信息。
{
"objectId": "924639232728032.45851200",
"fileId": "924639232728032",
"elementId": "45851200",
"objectData": {
"categoryId": -2001340,
"levelName": "F01",
"specialty": "AR",
"family": "Single Window",
"familyType": "Standard"
},
"boundingBox": {
"min": {
"x": 20174.197245435877,
"y": 60867.47840650141,
"z": 2946.249999999989
},
"max": {
"x": 20824.197245435877,
"y": 61517.47840650142,
"z": 3046.249999999989
}
}
}
# 2. 交集
交集的条件筛选格式是一个包含多个字段的JSON对象。
- 如果想要隔离出 categoryId = -2001340,且 levelName = "F01" 的构件(交集),则条件输入如下:
[
{
"categoryId": -2001340,
"levelName": "F01"
}
]
# 3. 并集
并集的条件筛选格式是一个包含多个JSON对象的数组。
- 如果要隔离出 categoryId = -2001340,且 levelName = "F01" 的构件(交集),或者 levelName = "F02" 的构件(并集),则条件输入如下:
[
{
"categoryId":-2001340,
"levelName":"F01"
},
{
"levelName":"F02"
}
]
更多关于条件筛选的用法,可参考示例Demo中的以下内容: