Translation服务
1.服务功能
- 云平台提供的Translation服务,可以提供文件的类型转换功能,图片的二维、三维模型对比等功能;
- 可以根据jobid(job任务的id唯一标识)进行对任务详细信息的查询;
- 可以通过md5值快速的查找所上传的图形资料,Translation服务与Storage服务相结合,实现了很多文件线上预览等功能;
2.使用场景
- 云平台的文件转换是基于Translation服务所以支持的,用户上传各种格式的文件都可以进行转换,然后进行在线浏览;
- 模型对比的功能更适合工程模型图纸的对比,然后对数据及时分析及时找到问题;
文件转换与转换器服务
1.获取所有支持的文件转换类型,支持一种文件类型匹配多种转换器(新版接口,建议使用此接口)
GET https://api.cloud.pkpm.cn/bimserver/translation/v3/convertertypes
响应体(BODY):
| 名称(Name) | 类型(Type) | 描述(Description) |
|---|---|---|
| filetypes | List | 文件类型 |
| converters | Map | Converter支持的文件转换类型集合 |
| name | String | 名字 |
| description | String | 描述 |
响应消息(MESSAGES):
| HTTP状态码 | 原因 |
|---|---|
| 401 | 未授权,请检查Authorization的Header的Access Token是否设置正确 |
| 403 | 无权访问请求的资源 |
| 404 | Not Found |
| 409 | 将要创建的资源已经存在,拒绝重复创建 |
| 500 | 服务内部错误,请查看详细的错误原因 |
请求示例演示:
请求路径:
https://api.cloud.pkpm.cn/bimserver/translation/v3/convertertypes

2.获取所有支持的文件转换类型(旧版接口,不建议使用)
GET https://api.cloud.pkpm.cn/bimserver/translation/v3/filetypes
响应体(BODY):
| 名称(Name) | 类型(Type) | 描述(Description) |
|---|---|---|
| Converter | Map | Converter支持的文件转换类型集合 |
响应消息(MESSAGES):
| HTTP状态码 | 原因 |
|---|---|
| 401 | 未授权,请检查Authorization的Header的Access Token是否设置正确 |
| 403 | 无权访问请求的资源 |
| 404 | Not Found |
| 409 | 将要创建的资源已经存在,拒绝重复创建 |
| 500 | 服务内部错误,请查看详细的错误原因 |
请求示例演示:
请求路径:
https://api.cloud.pkpm.cn/bimserver/translation/v3/filetypes

3.创建模型转换Job(推荐)
POST https://api.cloud.pkpm.cn/bimserver/translation/v3/jobs?isRegenerated=true
文件上传成功之后可以请求 BIMBase云平台(OBV) 的转换服务对文件进行转换。文件支持全量转换和流式/LOD 转换。大部分三维模型文件都支持全量转换和流式/LOD 转换,极个别格式,如 obvzip 仅支持流式/LOD 转换。点击查看全量和流式转换
LOD加载代码参考 https://cloud.pkpm.cn/playground/obv/?sampleID=loadLOD
授权(Authorization):
| 名称(Name) | 值(Value) | 描述(Description) |
|---|---|---|
| Type | Bearer Token | Token拼装形式 |
| Token | token值 |
请求参数(Query):
| 名称(Name) | 类型(Type) | 必填(Required) | 描述(Description) |
|---|---|---|---|
| isRegenerated | String | 否 | 是否强制生成新的转换Job,默认 false,推荐 true |
请求体(BODY):
| 名称(Name) | 类型(Type) | 必填(Required) | 描述(Description) |
|---|---|---|---|
| job_type | String | 是 | 转换任务的类型,具体可参考获取所有支持的文件转换类型接口 |
| seed | String | 是 | 源文件的资源唯一标识符,一般是 URN |
| parameters | List<JobParameterModel> | 否 | Job 标准化参数。不同job_type所对应的配置参数(key 与 value)可在返回值 options 字段中查找 |
响应体(BODY):
| 名称(Name) | 类型(Type) | 描述(Description) |
|---|---|---|
| job_type | String | 转换任务的类型,具体可参考获取所有支持的文件转换类型接口 |
| priority | Short | 任务优先级 |
| result | String | 任务结果保存位置 |
| progress | String | 任务执行进度 |
| id | String | Job ID |
| state | String | Job 的状态 |
| reason | String | 关于当前 State 的原因描述信息 |
| client_id | String | Job 的 Client ID |
| owner | String | Job 的 Owner |
| translation_bucket_name | String | 转换所使用的bucketName |
| translation_key | String | 转换的Key |
| create_at | Timestamp | Job 的创建时间的时间戳 |
| update_at | Timestamp | Job 最后的更新时间的时间戳 |
| converter_meta | String | Job处理使用的converter元数据信息 |
| seed | String | 源文件的资源唯一标识符,一般是 URN |
| need_notify | String | 是否需要发送转换结果通知,默认值为true |
| parameters | List |
Job 标准化参数 |
| worker | TranslationWorkerModel | 指定的Worker |
| seed_md5 | String | 源文件的md5值 注释:如果无法计算或得不到文件的md5值, 可以不填写此值,请不要随意设置此值 |
| time_out | Long | 任务超时时间,单位为秒 注释:默认超时时间为 3600 秒, 最大时间为 86400 秒 |
响应消息(MESSAGES):
| HTTP状态码 | 原因 |
|---|---|
| 401 | 未授权,请检查Authorization的Header的Access Token是否设置正确 |
| 403 | 无权访问请求的资源 |
| 404 | Not Found |
| 409 | 将要创建的资源已经存在,拒绝重复创建 |
| 500 | 服务内部错误,请查看详细的错误原因 |
请求示例演示:
请求路径:
https://api.cloud.pkpm.cn/bimserver/translation/v3/jobs

4.批量创建模型转换Job
POST https://api.cloud.pkpm.cn/bimserver/translation/v3/jobs/batch
授权(Authorization):
| 名称(Name) | 值(Value) | 描述(Description) |
|---|---|---|
| Type | Bearer Token | Token拼装形式 |
| Token | token值 |
请求体(BODY):
| 名称(Name) | 类型(Type) | 必填(Required) | 描述(Description) |
|---|---|---|---|
| job_type | String | 否 | 转换任务的类型,具体可参考获取所有支持的文件转换类型接口 |
| need_notify | Boolean | 否 | 是否需要发送转换结果通知,默认值为true |
| seed | String | 是 | 源文件的资源唯一标识符,一般是 URN |
| converter_meta | String | 否 | Job处理使用的converter元数据信息 |
| seed_md5 | String | 否 | 源文件的md5值 注释:如果无法计算或得不到文件的md5值, 可以不填写此值,请不要随意设置此值 |
| time_out | Long | 否 | 任务超时时间,单位为秒 注释:默认超时时间为 3600 秒,最大时间为 86400 秒 |
| parameters | List<JobParameterModel> | 是 | Job 标准化参数 |
| index | Integer | 是 | 参数索引 |
| name | String | 否 | 参数名字 |
| paramKey | String | 是 | 参数key |
| value | String | 否 | 参数值 |
| style | String | 是 | 参数风格 |
响应体(BODY):
| 名称(Name) | 类型(Type) | 描述(Description) |
|---|---|---|
| job_type | String | 转换任务的类型,具体可参考获取所有支持的文件转换类型接口 |
| priority | Short | 任务优先级 |
| result | String | 任务结果保存位置 |
| progress | String | 任务执行进度 |
| job_id | String | Job ID |
| state | String | Job 的状态 |
| reason | String | 关于当前 State 的原因描述信息 |
| client_id | String | Job 的 Client ID |
| owner | String | Job 的 Owner |
| translation_bucket_name | String | 转换所使用的bucketName |
| translation_key | String | 转换的Key |
| create_at | Timestamp | Job 的创建时间的时间戳 |
| update_at | Timestamp | Job 最后的更新时间的时间戳 |
| converter_meta | String | Job处理使用的converter元数据信息 |
| seed | String | 源文件的资源唯一标识符,一般是 URN |
| need_notify | String | 是否需要发送转换结果通知,默认值为true |
| parameters | List<JobParameterModel> | Job 标准化参数 |
| worker | TranslationWorkerModel | 指定的Worker |
| seed_md5 | String | 源文件的md5值 注释:如果无法计算或得不到文件的md5值, 可以不填写此值,请不要随意设置此值 |
| time_out | Long | 任务超时时间,单位为秒 注释:默认超时时间为 3600 秒, 最大时间为 86400 秒 |
响应消息(MESSAGES):
| HTTP状态码 | 原因 |
|---|---|
| 401 | 未授权,请检查Authorization的Header的Access Token是否设置正确 |
| 403 | 无权访问请求的资源 |
| 404 | Not Found |
| 409 | 将要创建的资源已经存在,拒绝重复创建 |
| 500 | 服务内部错误,请查看详细的错误原因 |
请求示例演示:
请求路径:
https://api.cloud.pkpm.cn/bimserver/translation/v3/jobs/batchX

5.创建GIM模型检查Job
POST https://api.cloud.pkpm.cn/bimserver/translation/v3/pcloudjobs
授权(Authorization):
| 名称(Name) | 值(Value) | 描述(Description) |
|---|---|---|
| Type | Bearer Token | Token拼装形式 |
| Token | token值 |
请求体(BODY):
| 名称(Name) | 类型(Type) | 必填(Required) | 描述(Description) |
|---|---|---|---|
| job_type | String | 是 | 转换任务的类型,GIM检查job_type固定为 'gim-check' |
| parameters | Array | 否 | Job 标准化参数 |
parameters 是一个数组,格式为:
[
{
name: "seed",
value: `urn:bimbox.object:{bucketKey}/{objectKey}`,
}
]
响应体(BODY):
| 名称(Name) | 类型(Type) | 描述(Description) |
|---|---|---|
| client_id | String | Job 的 Client ID |
| converter_meta | String | Job处理使用的converter元数据信息 |
| create_at | Timestamp | Job 的创建时间的时间戳 |
| id | String | Job ID |
| job_logs | Array | Job 的日志信息 |
| job_type | String | 转换任务的类型,具体可参考获取所有支持的文件转换类型接口 |
| need_notify | String | 是否需要发送转换结果通知,默认值为true |
| owner | String | Job 的 Owner |
| parameters | Array | Job 标准化参数 |
| priority | Short | 任务优先级 |
| progress | String | 任务执行进度 |
| reason | String | 关于当前 State 的原因描述信息 |
| result | String | 任务结果保存位置 |
| seed | String | 源文件的资源唯一标识符,一般是 URN |
| seed_md5 | String | 源文件的md5值 注释:如果无法计算或得不到文件的md5值, 可以不填写此值,请不要随意设置此值 |
| state | String | Job 的状态 |
| task_id | String | Task ID |
| time_out | Long | 任务超时时间,单位为秒 注释:默认超时时间为 3600 秒, 最大时间为 86400 秒 |
| translation_key | String | 转换的Key |
| translation_bucket_name | String | 转换所使用的bucketName |
| update_at | Timestamp | Job 最后的更新时间的时间戳 |
| worker | TranslationWorkerModel | 指定的Worker |
响应消息(MESSAGES):
| HTTP状态码 | 原因 |
|---|---|
| 201 | Created |
| 401 | 未授权,请检查Authorization的Header的Access Token是否设置正确 |
| 403 | 无权访问请求的资源 |
| 404 | Not Found |
| 500 | 服务内部错误,请查看详细的错误原因 |
6.查询Job信息
GET https://api.cloud.pkpm.cn/bimserver/translation/v3/jobs?urn=xxx&jobType=xxx
授权(Authorization):
| 名称(Name) | 值(Value) | 描述(Description) |
|---|---|---|
| Type | Bearer Token | Token拼装形式 |
| Token | token值 |
请求参数(Query):
| 名称(Name) | 类型(Type) | 必填(Required) | 描述(Description) |
|---|---|---|---|
| urn | String | 是 | urn值 |
| jobType | String | 是 | 转换任务的类型,具体可参考获取所有支持的文件转换类型接口 |
响应体(BODY):
| 名称(Name) | 类型(Type) | 描述(Description) |
|---|---|---|
| job_type | String | 转换任务的类型,具体可参考获取所有支持的文件转换类型接口 |
| priority | Short | 任务优先级 |
| result | String | 任务结果保存位置 |
| progress | String | 任务执行进度 |
| job_id | String | Job ID |
| state | String | Job 的状态 |
| reason | String | 关于当前 State 的原因描述信息 |
| client_id | String | Job 的 Client ID |
| owner | String | Job 的 Owner |
| translation_bucket_name | String | 转换所使用的bucketName |
| translation_key | String | 转换的Key |
| create_at | Timestamp | Job 的创建时间的时间戳 |
| update_at | Timestamp | Job 最后的更新时间的时间戳 |
| converter_meta | String | Job处理使用的converter元数据信息 |
| seed | String | 源文件的资源唯一标识符,一般是 URN |
| need_notify | String | 是否需要发送转换结果通知,默认值为true |
| parameters | List<JobParameterModel> | Job 标准化参数 |
| worker | TranslationWorkerModel | 指定的Worker |
| seed_md5 | String | 源文件的md5值 注释:如果无法计算或得不到文件的md5值, 可以不填写此值,请不要随意设置此值 |
| time_out | Long | 任务超时时间,单位为秒 注释:默认超时时间为 3600 秒, 最大时间为 86400 秒 |
响应消息(MESSAGES):
| HTTP状态码 | 原因 |
|---|---|
| 401 | 未授权,请检查Authorization的Header的Access Token是否设置正确 |
| 403 | 无权访问请求的资源 |
| 404 | Not Found |
| 409 | 将要创建的资源已经存在,拒绝重复创建 |
| 500 | 服务内部错误,请查看详细的错误原因 |
请求示例演示:
请求路径:
https://api.cloud.pkpm.cn/bimserver/translation/v3/jobs?urn=urn:bimbox.object:bucketkey/objectkey

7.根据JobType查询Job信息
GET https://api.cloud.pkpm.cn/bimserver/translation/v3/jobs/listByType?jobType=xxx
授权(Authorization):
| 名称(Name) | 值(Value) | 描述(Description) |
|---|---|---|
| Type | Bearer Token | Token拼装形式 |
| Token | token值 |
请求参数(Query):
| 名称(Name) | 类型(Type) | 必填(Required) | 描述(Description) |
|---|---|---|---|
| jobType | String | 否 | 转换任务的类型,具体可参考获取所有支持的文件转换类型接口 |
响应体(BODY):
| 名称(Name) | 类型(Type) | 描述(Description) |
|---|---|---|
| job_type | String | 转换任务的类型,具体可参考获取所有支持的文件转换类型接口 |
| priority | Short | 任务优先级 |
| result | String | 任务结果保存位置 |
| progress | String | 任务执行进度 |
| job_id | String | Job ID |
| state | String | Job 的状态 |
| reason | String | 关于当前 State 的原因描述信息 |
| client_id | String | Job 的 Client ID |
| owner | String | Job 的 Owner |
| translation_bucket_name | String | 转换所使用的bucketName |
| translation_key | String | 转换的Key |
| create_at | Timestamp | Job 的创建时间的时间戳 |
| update_at | Timestamp | Job 最后的更新时间的时间戳 |
| converter_meta | String | Job处理使用的converter元数据信息 |
| seed | String | 源文件的资源唯一标识符,一般是 URN |
| need_notify | String | 是否需要发送转换结果通知,默认值为true |
| parameters | List<JobParameterModel> | Job 标准化参数 |
| worker | TranslationWorkerModel | 指定的Worker |
| seed_md5 | String | 源文件的md5值 注释:如果无法计算或得不到文件的md5值, 可以不填写此值,请不要随意设置此值 |
| time_out | Long | 任务超时时间,单位为秒 注释:默认超时时间为 3600 秒, 最大时间为 86400 秒 |
响应消息(MESSAGES):
| HTTP状态码 | 原因 |
|---|---|
| 401 | 未授权,请检查Authorization的Header的Access Token是否设置正确 |
| 403 | 无权访问请求的资源 |
| 404 | Not Found |
| 409 | 将要创建的资源已经存在,拒绝重复创建 |
| 500 | 服务内部错误,请查看详细的错误原因 |
请求示例演示:
请求路径:
https://api.cloud.pkpm.cn/bimserver/translation/v3/jobs/listByType?jobType=obmx-obv

8.根据JobID查询Job信息
GET https://api.cloud.pkpm.cn/bimserver/translation/v3/jobs/{jobId}
授权(Authorization):
| 名称(Name) | 值(Value) | 描述(Description) |
|---|---|---|
| Type | Bearer Token | Token拼装形式 |
| Token | token值 |
请求参数(Path):
| 名称(Name) | 类型(Type) | 必填(Required) | 描述(Description) |
|---|---|---|---|
| jobId | String | 是 | Job ID |
响应体(BODY):
| 名称(Name) | 类型(Type) | 描述(Description) |
|---|---|---|
| job_type | String | 转换任务的类型,具体可参考获取所有支持的文件转换类型接口 |
| priority | Short | 任务优先级 |
| result | String | 任务结果保存位置 |
| progress | String | 任务执行进度 |
| job_id | String | Job ID |
| state | String | Job 的状态 |
| reason | String | 关于当前 State 的原因描述信息 |
| client_id | String | Job 的 Client ID |
| owner | String | Job 的 Owner |
| translation_bucket_name | String | 转换所使用的bucketName |
| translation_key | String | 转换的Key |
| create_at | Timestamp | Job 的创建时间的时间戳 |
| update_at | Timestamp | Job 最后的更新时间的时间戳 |
| converter_meta | String | Job处理使用的converter元数据信息 |
| seed | String | 源文件的资源唯一标识符,一般是 URN |
| need_notify | String | 是否需要发送转换结果通知,默认值为true |
| parameters | List<JobParameterModel> | Job 标准化参数 |
| worker | TranslationWorkerModel | 指定的Worker |
| seed_md5 | String | 源文件的md5值 注释:如果无法计算或得不到文件的md5值, 可以不填写此值,请不要随意设置此值 |
| time_out | Long | 任务超时时间,单位为秒 注释:默认超时时间为 3600 秒, 最大时间为 86400 秒 |
响应消息(MESSAGES):
| HTTP状态码 | 原因 |
|---|---|
| 401 | 未授权,请检查Authorization的Header的Access Token是否设置正确 |
| 403 | 无权访问请求的资源 |
| 404 | Not Found |
| 409 | 将要创建的资源已经存在,拒绝重复创建 |
| 500 | 服务内部错误,请查看详细的错误原因 |
请求示例演示:
请求路径:
https://api.cloud.pkpm.cn/bimserver/translation/v3/jobs/5LTBizQ3

9.批量查询Job信息
POST https://api.cloud.pkpm.cn/bimserver/translation/v3/jobs/batchget
授权(Authorization):
| 名称(Name) | 值(Value) | 描述(Description) |
|---|---|---|
| Type | Bearer Token | Token拼装形式 |
| Token | token值 |
请求体(BODY):
| 名称(Name) | 类型(Type) | 必填(Required) | 描述(Description) |
|---|---|---|---|
| urn | List |
是 | urn路径的list集合 |
响应体(BODY):
| 名称(Name) | 类型(Type) | 描述(Description) |
|---|---|---|
| data | List | 查询出的job信息集合 |
响应消息(MESSAGES):
| HTTP状态码 | 原因 |
|---|---|
| 401 | 未授权,请检查Authorization的Header的Access Token是否设置正确 |
| 403 | 无权访问请求的资源 |
| 404 | Not Found |
| 409 | 将要创建的资源已经存在,拒绝重复创建 |
| 500 | 服务内部错误,请查看详细的错误原因 |
请求示例演示:
请求路径:
https://api.cloud.pkpm.cn/bimserver/translation/v3/jobs/batchget

10.查询转换Job结果
POST https://api.cloud.pkpm.cn/bimserver/translation/v3/jobs/result
授权(Authorization):
| 名称(Name) | 值(Value) | 描述(Description) |
|---|---|---|
| Type | Bearer Token | Token拼装形式 |
| Token | token值 |
请求体(BODY):
| 名称(Name) | 类型(Type) | 必填(Required) | 描述(Description) |
|---|---|---|---|
| converter_meta | String | 否 | Job处理使用的converter元数据信息 |
| job_type | String | 否 | 转换任务的类型,具体可参考获取所有支持的文件转换类型接口 |
| need_notify | Boolean | 否 | 是否需要发送转换结果通知,默认值为true |
| parameters | Array[JobParameterModel] | 否 | Job 标准化参数 |
| priority | Integer | 否 | 任务优先级 |
| progress | String | 否 | 任务执行进度 |
| result | String | 否 | 任务结果保存位置 |
| seed | String | 是 | 源文件的资源唯一标识符,一般是 URN |
| seed_md5 | String | 否 | 源文件的md5值 注释:如果无法计算或得不到文件的md5值, 可以不填写此值,请不要随意设置此值 |
| time_out | Long | 否 | 任务超时时间,单位为秒 注释:默认超时时间为 3600 秒,最大时间为 86400 秒 |
| worker | TranslationWorkerModel | 否 | 指定的Worker |
响应体(BODY):
| 名称(Name) | 类型(Type) | 描述(Description) |
|---|---|---|
| resultUrn | String | 任务结果保存位置 |
响应消息(MESSAGES):
| HTTP状态码 | 原因 |
|---|---|
| 401 | 未授权,请检查Authorization的Header的Access Token是否设置正确 |
| 403 | 无权访问请求的资源 |
| 404 | Not Found |
| 409 | 将要创建的资源已经存在,拒绝重复创建 |
| 500 | 服务内部错误,请查看详细的错误原因 |
请求示例演示:
请求路径:
https://api.cloud.pkpm.cn/bimserver/translation/v3/jobs/result

11.查询转换日志
GET https://api.cloud.pkpm.cn/bimserver/translation/v3/jobs/{jobId}/logs
授权(Authorization):
| 名称(Name) | 值(Value) | 描述(Description) |
|---|---|---|
| Type | Bearer Token | Token拼装形式 |
| Token | token值 |
请求参数(Path):
| 名称(Name) | 类型(Type) | 必填(Required) | 描述(Description) |
|---|---|---|---|
| jobId | String | 是 | 指定转换任务ID |
响应体(BODY):
| 名称(Name) | 类型(Type) | 描述(Description) |
|---|---|---|
| client_id | String | Job 的 Client ID |
| converter_meta | String | Job处理使用的converter元数据信息 |
| create_at | Timestamp | Job 的创建时间的时间戳 |
| id | String | Job ID |
| job_logs | List | Job 的日志信息 |
| job_type | String | 转换任务的类型,具体可参考获取所有支持的文件转换类型接口 |
| need_notify | Boolean | 是否需要发送转换结果通知,默认值为true |
| owner | String | Job 的 Owner |
| parameters | List | Job 标准化参数 |
| priority | Integer | 任务优先级 |
| progress | String | 任务执行进度 |
| reason | String | 关于当前 State 的原因描述信息 |
| result | String | 任务结果保存位置 |
| seed | String | 源文件的资源唯一标识符,一般是 URN |
| seedName | String | Seed Name |
| seed_md5 | String | 源文件的md5值 |
| seed_size | Integer | 源文件的大小 |
| stage | String | Job处理阶段 = ['pre', 'processing'] |
| state | String | Job 的状态 |
| task_create_at | Timestamp | Task 的创建时间的时间戳 |
| task_id | String | Task ID |
| task_start_at | Timestamp | Task 的执行开始时间的时间戳 |
| task_update_at | Timestamp | Task 最后的更新时间的时间戳 |
| time_out | Integer | 任务超时时间,单位为秒 |
| translation_Key | String | 转换的Key |
| translation_bucket_name | String | 转换所使用的bucketName |
| update_at | Timestamp | Job 最后的更新时间的时间戳 |
| worker | TranslationWorkerModel | 指定的Worker |
响应消息(MESSAGES):
| HTTP状态码 | 原因 |
|---|---|
| 401 | 未授权,请检查Authorization的Header的Access Token是否设置正确 |
| 403 | 无权访问请求的资源 |
| 404 | Not Found |
| 409 | 将要创建的资源已经存在,拒绝重复创建 |
| 500 | 服务内部错误,请查看详细的错误原因 |
12.查询转换进度
GET https://api.cloud.pkpm.cn/bimserver/translation/v3/jobs?urn=xxx&jobType=xxx
授权(Authorization):
| 名称(Name) | 值(Value) | 描述(Description) |
|---|---|---|
| Type | Bearer Token | Token拼装形式 |
| Token | token值 |
请求参数(Query):
| 名称(Name) | 类型(Type) | 必填(Required) | 描述(Description) |
|---|---|---|---|
| urn | String | 是 | 源文件的资源唯一标识符,一般是 URN |
| jobType | String | 否 | 转换任务的类型,具体可参考获取所有支持的文件转换类型接口 |
响应体(BODY):
| 名称(Name) | 类型(Type) | 描述(Description) |
|---|---|---|
| client_id | String | Job 的 Client ID |
| converter_meta | String | Job处理使用的converter元数据信息 |
| create_at | Timestamp | Job 的创建时间的时间戳 |
| id | String | Job ID |
| job_logs | List | Job 的日志信息 |
| job_type | String | 转换任务的类型,具体可参考获取所有支持的文件转换类型接口 |
| need_notify | Boolean | 是否需要发送转换结果通知,默认值为true |
| owner | String | Job 的 Owner |
| parameters | List | Job 标准化参数 |
| priority | Integer | 任务优先级 |
| progress | String | 任务执行进度 |
| reason | String | 关于当前 State 的原因描述信息 |
| result | String | 任务结果保存位置 |
| seed | String | 源文件的资源唯一标识符,一般是 URN |
| seedName | String | Seed Name |
| seed_md5 | String | 源文件的md5值 |
| seed_size | Integer | 源文件的大小 |
| stage | String | Job处理阶段 = ['pre', 'processing'] |
| state | String | Job 的状态 |
| task_create_at | Timestamp | Task 的创建时间的时间戳 |
| task_id | String | Task ID |
| task_start_at | Timestamp | Task 的执行开始时间的时间戳 |
| task_update_at | Timestamp | Task 最后的更新时间的时间戳 |
| time_out | Integer | 任务超时时间,单位为秒 |
| translation_Key | String | 转换的Key |
| translation_bucket_name | String | 转换所使用的bucketName |
| update_at | Timestamp | Job 最后的更新时间的时间戳 |
| worker | TranslationWorkerModel | 指定的Worker |
响应消息(MESSAGES):
| HTTP状态码 | 原因 |
|---|---|
| 401 | 未授权,请检查Authorization的Header的Access Token是否设置正确 |
| 403 | 无权访问请求的资源 |
| 404 | Not Found |
| 409 | 将要创建的资源已经存在,拒绝重复创建 |
| 500 | 服务内部错误,请查看详细的错误原因 |
图纸拆分
对符合规范的图框进行识别,并按图框范围将设计单图拆分为独立子图,支持对子图进行单独查看;
自动识别子图图框内的图签信息,识别图名和图号作为子图标识,便于用户识别相应子图。
图纸拆分使用说明
1.开启拆分功能:通过步骤3【创建模型转换Job】,在发起轻量化任务时在请求体中添加“-split”参数即可开启拆分功能
// 调用请求体示例:
{
"seed": "urn:bimbox.file:smb2RxK8cm/1AgaFAZr69C?version=1",
"job_type": "dwg-lod",
"parameters": [
{
"key": "-split"
}
]
}
2.查询子图列表
// 使用以下接口查询分割子图是否存在,查询对应分割列表
// 确认是否存在分割扩展
const hasSplitedData = obvDocument.hasExtensionData('splitedVsfx')
if (hasSplitedData) {
// 获取分割图纸数据
const splitedJson = await obvDocument.getExtensionData('splitedVsfx', viewer2dItems[0].guid, 'json')
}
字段说明:
| 名称(Name) | 描述(Description) |
|---|---|
| name | 子图图名 |
| fileNumber | 子图图号 |
| fileId | 子图文件id,用于单图加载 |
| frameHandleId | 子图图框HandleId,用于图框聚焦 |
3.子图加载
// 分图图框定位
// 聚集到图框,传入图框的frameHandleId
obvApi.fitToView(['192134'])
// 分割图纸加载
// 在加载ODA二维图纸时,传入分割图纸的fileId(string类型)即可加载被分割的图纸
builder.load2dModels(obvApi, {
obvDocument: obvDocument,
viewer2dItem: viewer2dItems[0],// viewer2dItems[0]为加载总图时的二维视图对象
fileId,
});
图纸拆分代码示例参考 https://cloud.pkpm.cn/playground/obv?sampleID=drawSplitting
图模对比服务(二维、三维模型对比)
模型对比代码参考 https://cloud.pkpm.cn/playground/obv/?sampleID=modelComparison
发起模型对比的流程:
1.通过步骤3【创建模型转换Job】将两个模型转换为统一格式;
2.通过步骤13【获取Manifest】获取guid,也可通过OBV方法get3dGeometryItems()获取(推荐),获取两个文件中同一个视图的guid后便可以组成对比列表-ViewPairs;
3.调用步骤14【新建模型对比job】;
4.调用步骤15【查询模型对比job信息】;
5.当对比结果成功(state="compalte"),参考示例,替换示例固定参数,实现对比数据获取、对比结果加载;
以三维模型对比为例,下图中获取obvDocument对象上的3d Items,role为‘3d’的对象的guid属性即为对应视图的guid(注意:我们需要的“guid”是role 为“3d”平级下的guid,切勿取错。)

13.获取Manifest(依赖步骤3【创建模型转换Job】)
GET https://api.cloud.pkpm.cn/bimserver/viewing/v3/{urn}?objectKeyEncoding=base64&jobType={jobType}
授权(Authorization):
| 名称(Name) | 值(Value) | 描述(Description) |
|---|---|---|
| Type | Bearer Token | Token拼装形式 |
| Token | token值 |
请求参数(Path):
| 名称(Name) | 类型(Type) | 必填(Required) | 描述(Description) |
|---|---|---|---|
| urn | String | 是 | urn格式为urn:bimbox.object:{bucketKey}/{objectKey} |
请求参数(Query):
| 名称(Name) | 类型(Type) | 必填(Required) | 描述(Description) |
|---|---|---|---|
| objectKeyEncoding | String | 是 | 固定为base64,添加objectKeyEncoding=base64时,urn的值需要进行base64进行加密,可通过OBV.Base64UrlSafe.encode('urn')编码; OBV.Base64UrlSafe.decode('urn')解码 |
| jobType | String | 否 | 转换任务的类型,具体可参考获取所有支持的文件转换类型接口 |
请求示例演示:

14.新建模型对比Job
POST https://api.cloud.pkpm.cn/bimserver/translation/v3/compare?client_id=xxx&isRegenerated=xxx
授权(Authorization):
| 名称(Name) | 值(Value) | 描述(Description) |
|---|---|---|
| Type | Bearer Token | Token拼装形式 |
| Token | token值 |
请求参数(Query):
| 名称(Name) | 类型(Type) | 必填(Required) | 描述(Description) |
|---|---|---|---|
| client_id | String | 否 | client_id,默认从token中获取 |
| isRegenerated | Boolean | 否 | 是否重新生成任务,默认值:true |
请求体(BODY):
| 名称(Name) | 类型(Type) | 必填(Required) | 描述(Description) |
|---|---|---|---|
| sourceModel | String | 是 | 源模型 |
| comparedModel | String | 是 | 对比模型 |
| viewPairs | List<String> | 是 | 对比列表,生成二维或者三维的对比路径 |
| job_type | String | 否 | 对比任务类型,流式对比时必填,固定'lod-compare' |
| resultType | String | 否 | 对比结果类型,流式对比时必填,步骤11的jobType参数保持一致即可 |
响应体(BODY):
| 名称(Name) | 类型(Type) | 描述(Description) |
|---|---|---|
| sourceModel | String | 源模型urn路径 |
| comparedModel | String | 对比模型urn路径 |
| viewPairs | List<String> | 对比模型urn路径 |
| compareResult | String | 对比结果 |
| job_type | String | 对比类型,流式固定为'lod-compare' |
| stage | String | 任务阶段 |
| id | String | job id |
| state | String | Job 状态,可取值:queued-排队, busy-正在转换, complete-已完成, aborted-终止,"cancelled-取消, timed out-超时, obsolete-过时的,废弃的 |
响应消息(MESSAGES):
| HTTP状态码 | 原因 |
|---|---|
| 401 | 未授权,请检查Authorization的Header的Access Token是否设置正确 |
| 403 | 无权访问请求的资源 |
| 404 | Not Found |
| 409 | 将要创建的资源已经存在,拒绝重复创建 |
| 500 | 服务内部错误,请查看详细的错误原因 |
请求示例演示:
请求路径:
https://api.cloud.pkpm.cn/bimserver/translation/v3/compare?client_id=3lBGji&isRegenerated=true

15.查询模型对比Job信息
GET https://api.cloud.pkpm.cn/bimserver/translation/v3/compare/{jobId}
授权(Authorization):
| 名称(Name) | 值(Value) | 描述(Description) |
|---|---|---|
| Type | Bearer Token | Token拼装形式 |
| Token | token值 |
请求参数(Path):
| 名称(Name) | 类型(Type) | 必填(Required) | 描述(Description) |
|---|---|---|---|
| jobId | String | 是 | 指定对比任务ID |
响应体(BODY):
| 名称(Name) | 类型(Type) | 描述(Description) |
|---|---|---|
| sourceModel | String | 源模型urn路径 |
| comparedModel | String | 对比模型urn路径 |
| viewPairs | List<String> | 对比模型urn路径 |
| compareResult | String | 对比结果路径 |
| job_type | String | 对比类型,流式固定为'lod-compare' |
| stage | String | 任务阶段 |
| id | Short | job id |
| state | Short | Job 的状态 |
响应消息(MESSAGES):
| HTTP状态码 | 原因 |
|---|---|
| 401 | 未授权,请检查Authorization的Header的Access Token是否设置正确 |
| 403 | 无权访问请求的资源 |
| 404 | Not Found |
| 409 | 将要创建的资源已经存在,拒绝重复创建 |
| 500 | 服务内部错误,请查看详细的错误原因 |
请求示例演示:
请求路径:
https://api.cloud.pkpm.cn/bimserver/translation/v3/compare/5LTBizQ

16.批量查询模型对比Job信息
GET https://api.cloud.pkpm.cn/bimserver/translation/v3/compares?jobIds[]=xxx
授权(Authorization):
| 名称(Name) | 值(Value) | 描述(Description) |
|---|---|---|
| Type | Bearer Token | Token拼装形式 |
| Token | token值 |
请求参数(Query):
| 名称(Name) | 类型(Type) | 必填(Required) | 描述(Description) |
|---|---|---|---|
| jobIds[] | List<String> | 否 | Job IDs |
响应体(BODY):
| 名称(Name) | 类型(Type) | 描述(Description) |
|---|---|---|
| sourceModel | String | 源模型urn路径 |
| comparedModel | String | 对比模型urn路径 |
| viewPairs | List<String> | 对比模型urn路径 |
| compareResult | String | 对比结果路径 |
| job_type | String | 对比类型,流式固定为'lod-compare' |
| stage | String | 任务阶段 |
| id | Short | job id |
| state | Short | Job 的状态 |
响应消息(MESSAGES):
| HTTP状态码 | 原因 |
|---|---|
| 401 | 未授权,请检查Authorization的Header的Access Token是否设置正确 |
| 403 | 无权访问请求的资源 |
| 404 | Not Found |
| 409 | 将要创建的资源已经存在,拒绝重复创建 |
| 500 | 服务内部错误,请查看详细的错误原因 |
请求示例演示:
请求路径:
https://api.cloud.pkpm.cn/bimserver/translation/v3/compares?jobIds[]=5LTBizQ3

17.查询模型对比记录(可选)
GET https://api.cloud.pkpm.cn/bimserver/translation/v3/compare?compareResult=xxx
授权(Authorization):
| 名称(Name) | 值(Value) | 描述(Description) |
|---|---|---|
| Type | Bearer Token | Token拼装形式 |
| Token | token值 |
请求参数(Query):
| 名称(Name) | 类型(Type) | 必填(Required) | 描述(Description) |
|---|---|---|---|
| compareResult | String | 否 | 对比结果存放位置 |
响应体(BODY):
| 名称(Name) | 类型(Type) | 描述(Description) |
|---|---|---|
| asSourceModel | List | 源模型集合 |
| asComparedModel | List | 对比模型集合 |
响应消息(MESSAGES):
| HTTP状态码 | 原因 |
|---|---|
| 401 | 未授权,请检查Authorization的Header的Access Token是否设置正确 |
| 403 | 无权访问请求的资源 |
| 404 | Not Found |
| 409 | 将要创建的资源已经存在,拒绝重复创建 |
| 500 | 服务内部错误,请查看详细的错误原因 |
请求示例演示:
请求路径:
https://api.cloud.pkpm.cn/bimserver/translation/v3/compare

GIM检查
GIM检查:解析GIM模型源文件数据,从文件组织结构、工程设备属性、设备颜色、图元几何几个方面进行检查,在数据层面反应GIM模型的错误信息。通过错误数据可扩展错误数量统计、错误定位、错误详情展示等功能。
GIM检查工具流程:
1.通过步骤5【创建GIM模型检查Job】;
2.通过步骤8【根据JobID查询Job信息】;
3.然后调用步骤18【查询结果】;
18.查询结果
GET https://api.cloud.pkpm.cn/bimserver/storage/v3/buckets/{bucketkey}/objects/{objectKey}?objectKeyEncoding=base64
授权(Authorization):
| 名称(Name) | 值(Value) | 描述(Description) |
|---|---|---|
| Type | Bearer Token | Token拼装形式 |
| Token | token值 |
请求参数(Query):
| 名称(Name) | 类型(Type) | 必填(Required) | 描述(Description) |
|---|---|---|---|
| objectKeyEncoding | String | 否 | 固定为base64,添加objectKeyEncoding=base64时,urn的值需要进行base64进行加密,可通过OBV.Base64UrlSafe.encode('urn')编码; OBV.Base64UrlSafe.decode('urn')解码 |
请求参数(Path):
| 名称(Name) | 类型(Type) | 必填(Required) | 描述(Description) |
|---|---|---|---|
| bucketkey | String | 是 | 转换所使用的bucketName。 |
| objectKey | String | 是 | 创建的容器中文件对象的 key。 |
bucketkey 是一个字符串,由步骤8【根据JobID查询Job信息】接口返回的'translation_bucket_name'字段
objectKey 是一个字符串,由步骤8【根据JobID查询Job信息】接口返回的 "translation_Key和 "seedName"拼接而成。
获取检查结果时,格式为:{translation_Key}/{seedName}.json;
获取检查报告时,格式为:{translation_Key}/{seedName}.doc
注:objectKeyEncoding=ture 时,objectKey需要使用使用OBV.Base64UrlSafe.encode('XXX')转码
响应体(BODY):
| 名称(Name) | 类型(Type) | 描述(Description) |
|---|---|---|
| version | String | json文件的版本号 |
| BaseDirectory | String | 源文件路径 |
| CheckReportInfo | Object | 检查信息概述 |
| GIMFileInfo | Object | GIM文件头信息标识 |
| Standard | List | 检查依据的规范标准 |
| ErrorStatistics | Object | 错误数量统计 |
| ErrorItems | Object | 具体错误项{"错误编号":详细的错误信息} |
| ErrorIdentifier | Object | 所有的错误编号和对应的错误描述 |
| ErrorClassify | Object | 错误编号和所属的错误分类 |
| Proposal | String | 修改建议,暂无 |
响应消息(MESSAGES):
| HTTP状态码 | 原因 |
|---|---|
| 401 | 未授权,请检查Authorization的Header的Access Token是否设置正确 |
| 403 | 无权访问请求的资源 |
| 404 | Not Found |
| 409 | 将要创建的资源已经存在,拒绝重复创建 |
| 500 | 服务内部错误,请查看详细的错误原因 |