# 分页查询构件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,请参考这里

# 构件ID分页查询说明

1.首先调用接口a,取得paginationContextId,有效时间5分钟;

2.将paginationContextId作为参数,循环调用查询构件id列表的接口(b或者c);

说明
1. 调用查询构件id列表的接口时,paginationSize可以不传,默认1000,取值范围(0,10000]
2. paginationNo 在公有云建议不传,若传的话,必须严格等于调用查询接口的次数
3. 第一次调用查询接口查询参数有效,之后的调用查询参数无效,第二次以后建议不传

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参数有效
    paginationNo建议不传,若要传,必须为0
    查询参数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,不然会报错
    paginationNo建议不传,若要传,必须为1
    查询参数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,不然会报错
    paginationNo建议不传,若要传,必须为2
    查询参数floor、categoryId、family、familyType无效,建议不传,若传了不会报错,但是不生效

  发现3<4,所以不再发起第四次查询,若继续发起,会报错。