常见问题 > 详情

如何按条件筛选构件?

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对象的数组。