Tutorial: 如何按条件筛选构件?

如何按条件筛选构件?

Viewer3D提供了多个按条件筛选构件的Method,以便于对构件进行高亮、隔离……操作,筛选条件和构件对象中的objectData有关,另外,筛选条件支持两种情况:交集、并集。

    1. 交集:即满足条件A,又满足条件B
    1. 并集:满足条件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对象的数组。