1. 根据楼层、系统、房间和属性组合查询构件
在同一个模型中根据楼层、系统、房间和属性值查询符合条件的构件,分页返回构件信息。
请求方式:POST
请求地址:/api/{databaseKey}/queries/combination?modelKey={aa}&pageNumber={xx}&pageSize={yy}&attributes={zz}&share={share}
1.1. 请求参数
Headers:
参数名 | 类型 | 示例 | 是否必填 | 参数含义 |
---|---|---|---|---|
Authorization | string | c4570cb9ca324bc8ba7dd9d1967710ea | 是 | 操作的通关令牌 |
PathParas:
参数名 | 类型 | 示例 | 是否必填 | 参数含义 |
---|---|---|---|---|
NULL | NULL | NULL | NULL | NULL |
SearchParas:
参数名 | 类型 | 示例 | 是否必填 | 参数含义 |
---|---|---|---|---|
modelKey | string | NULL | 是 | 模型key |
share | string | NULL | 否 | 分享key |
pageNumber | string | NULL | 是 | 分页返回的页码,从0开始 |
pageSize | string | NULL | 是 | 分页返回每页最大条目,取值1~100 |
attribute | string | NULL | 否 | 返回属性列表,如不指定则返回全部 |
Body
application/json:
{
"key": { // 构件key
"operator": "like",
"value":"M12342432_1",
"logic": "and"
},
"name": { // 构件名称
"operator": "==",
"value": "风墙1",
"logic": "and"
},
"type":{ // 构件类型
"operator": "in",
"value": ["墙", "楼梯", "隔板"],
"logic": "and",
},
"floor": { // 楼层
"operator": "in",
"value": ["1楼", "2楼"],
"logic": "and"
},
"system":{ // 系统
"operator": "in",
"value": ["风管系统"],
"logic": "and"
},
"room":{ // 房间
"operator": "not in",
"value": ["主卧", "客卧"],
"logic": "and"
},
"attribute":[
{
"field": "约束.标高",
"value": 200,
"operator": ">=",
"logic": "and"
},
... ...
]
}
1.2. 参数说明
参数名 | 类型 | 示例 | 是否必填 | 参数含义 |
---|---|---|---|---|
NULL | NULL | NULL | NULL | NULL |
1.3. 正确返回
{
"message": "请求处理成功",
"code": "SUCCESS",
"data": {
"content": [
{
"name": "斜檩条:斜檩条-1m:2824483",
"type": "IfcBuildingElementProxy",
"key": "M1577178468831_03xNH48oj7Wv6Pwjg1c_RA"
},
{
"name": "斜檩条:斜檩条:2745945",
"type": "IfcBuildingElementProxy",
"key": "M1577178468831_3gTr6XEtj3kO57N2kFyI$W"
}
],
"first": false,
"last": false,
"number": 2,
"numberOfElements": 2,
"size": 2,
"totalElements": 27,
"totalPages": 14
}
}
1.4. 状态码
状态码 | code | message | data | 原因 |
---|---|---|---|---|
400 | PARAMETER_REQUIRED | 参数(xxx)不能为空 | NULL | 当modelKey或body为空时 |
400 | BAD_PARAMETER_VALUE | 参数(xxx)值不正确 | NULL | 当key存在不属于上述body列举的key时 |
400 | BAD_PARAMETER | 参数(xxx)类型不正确! | NULL | 当key对应的值与上述body中类型不一致时 |
400 | BAD_PARAMETER | attribute节点必须包含field、operator、logic和value字段 | NULL | 当attribute中的节点缺少field、operator、value、logic字段时 |
400 | BAD_PARAMETER | (xxx)必须包含operator、logic和value字段 | NULL | 当key、name、type、floor中缺少operator、value或logic字段时 |
400 | PARAMETER_REQUIRED | 参数(value)不能为空 | NULL | 当任意value值为空数组时 |
400 | BAD_PARAMETER | 参数(logic)类型不正确! | NULL | 当logic的值不为and、or时 |
400 | PARSE_FAILED | 模型(XXX)解析失败 | NULL | 当模型解析已经失败时 |
400 | PARSE_NOT_FINISHED | 模型(XXX)正在解析 | NULL | 当模型解析尚未完成时 |
400 | BAD_PARAMETER_VALUE | room条件只支持IFC或RVT模型 | NULL | 当存在room条件且模型不是IFC或RVT类型时 |
1.5. 备注
暂无备注
1.6. 注意事项
1)参数中只接受上述body中列举的7种属性,参数值类型可以为数组、字符串或数值;
2)body中key之间的关系由logic决定,logic可取值类型为and、or。先计算所有‘与’关系,再计算所有‘或’关系;
3)operator表示比较运算符,支持==、!=、<、<=、>、>=、like、in、not in
4)当value值为数组时,只允许in、not in 运算符
5)field表示查询字段,可以为字段名(如name)或者对象字段的具体属性(如attribute.机械.系统类型)
6)floor、room、system不允许 >、<、>=、<=这4种逻辑运算符
7)room查询条件只支持IFC和RVT模型
8) 数据库启用gacl时,有模型关联的BOSF文档读取权限的用户
9) 数据库未启用gacl时,有数据库访问权限的用户