# 分页查询构件id列表
BIMFACE通过接口查询模型(单模型、集成模型)的构件id列表时,默认最多返回10000条数据。模型构件量比较多的情况下,如果需要全量查询构件id列表,可以通过分页的方式。
# 构件id列表查询相关的接口
- a.https://api.bimface.com/data/v2/query/paginationContextId 生成分页查询的ContextId,请参考这里
- b.https://api.bimface.com/data/v2/files/{fileId}/elementIds 查询单模型满足条件的构件ID,请参考这里
- c.https://api.bimface.com/data/v2/integrations/{integrateId}/elementIds 查询集成模型满足条件的构件ID,请参考这里
- d.https://api.bimface.com/data/v2/query/elementIds 查询单模型符合条件的构件ID列表,请参考这里
- e.https://api.bimface.com/data/v2/query/elementIds 查询集成模型符合条件的构件ID列表,请参考这里
# 构件ID分页查询说明
1.首先调用接口a,取得paginationContextId,有效时间5分钟;
2.将paginationContextId作为参数,循环调用查询构件id列表的接口(b或者c、d、e);
说明
1. 调用查询构件id列表的接口时,paginationSize可以不传,默认1000,取值范围(0,10000]
2. 第一次调用查询接口查询参数有效,之后的调用查询参数无效,第二次以后建议不传
3.当返回结果数目小于paginationSize时停止调用,若继续调用会报错。
# 构件ID分页查询示例
以文件1211223382064960为例,[floor=2F&categoryId=-2000080&family=%E4%B9%A6%E6%9F%9C2] 有11个element,推荐的查询方法为:
第一步:拿到paginationContextId
curl -H "Authorization: Bearer 052d06fc-02f8-44da-8fe8-0e4cfa696d9d" https://api.bimface.com/data/v2/query/paginationContextId
第二步:循环调用分页查询接口
第一次查询:
curl 'https://api.bimface.com/data/v2/files/1211223382064960/elementIds?paginationContextId=d7e3a2ec-5f82-4ca7-ba99-dd054347d099&paginationSize=4&floor=2F&categoryId=-2000080&family=%E4%B9%A6%E6%9F%9C2&familyType=%E4%B9%A6%E6%9F%9C2&view_token=de0da756c74a4aec9b570fa506a33273'
返回4条结果
说明:
第一次查询paginationSize参数有效
查询参数floor、categoryId、family、familyType有效
第二次查询:
curl 'https://api.bimface.com/data/v2/files/1211223382064960/elementIds?paginationContextId=d7e3a2ec-5f82-4ca7-ba99-dd054347d099&view_token=de0da756c74a4aec9b570fa506a33273'
返回4条结果
说明:
paginationSize建议不传,若要传,必须为4,不然会报错
查询参数floor、categoryId、family、familyType无效,建议不传,若传了不会报错,但是不生效
第三次查询:
curl 'https://api.bimface.com/data/v2/files/1211223382064960/elementIds?paginationContextId=d7e3a2ec-5f82-4ca7-ba99-dd054347d099&view_token=de0da756c74a4aec9b570fa506a33273'
返回3条结果
说明:
paginationSize建议不传,若要传,必须为4,不然会报错
查询参数floor、categoryId、family、familyType无效,建议不传,若传了不会报错,但是不生效
发现3<4,所以不再发起第四次查询,若继续发起,会报错。