如何按条件筛选构件?
Viewer3D提供了多个按条件筛选构件的Method,以便于对构件进行高亮、隔离……操作,筛选条件和构件对象中的objectData有关,另外,筛选条件支持两种情况:交集、并集。
1)交集:即满足条件A,又满足条件B
2)并集:满足条件C,或者满足条件D
示例
以下是一个构件(Component)的详细信息
{
"objectId":"924639232728032.45851200",
"fileId":"924639232728032",
"elementId":"45851200",
"objectData":{
"categoryId":-2001340,
"levelName":"F01",
"specialty":"AR"
},
"boundingBox":{
"min": {
"x": 20174.197245435877,
"y": 60867.47840650141,
"z": 2946.249999999989
},
"max": {
"x": 20824.197245435877,
"y": 61517.47840650142,
"z": 3046.249999999989
}
}
}
objectData 有3个字段:categoryId、levelName、specialty
如果要隔离出 categoryId = -2001340,且 levelName = “F01” 的构件(交集),则条件输入如下:
{
"categoryId":-2001340,
"levelName":"F01"
}
如果要隔离出 categoryId = -2001340,且 levelName = “F01” 的构件(交集),或者 levelName = “F02” 的构件(并集),则条件输入如下:
[
{
"categoryId":-2001340,
"levelName":"F01"
},
{
"levelName":"F02"
}
]
综上:交集的条件是一个Json对象中的多个字段,而并集的条件是多个Json对象的数组。