转换外部模型方式

通知PaaS服务BIM模型的地址后请求转换,您需要有一个能在外部访问到的Web服务器,并把BIM模型放在上面工PaaS服务下载。调用时序图如下:

新建项目

创建一个新的工程项目,可能是某个正在进行中的房建项目、或基础设施施工项目等。

POST {baseUrl}/paas/project

Header必须提供Authorization 头, 值必须是Bearer {access_token} 的形式, 中间有空格。

Header:

{
    "Authorization": "Bearer ***** Hidden credentials *****",
    "Content-Type": "application/json; charset=utf-8"
}

JSON Body:

{
    "projectName": "雄安市民中心工程",
    "description": "项目的简单描述,项目的简单描述,项目的简单描述,项目的简单描述,项目的简单描述,项目的简单描述,项目的简单描述"
}

Response:

{
    "projectId": "5b1782c760ce55ad87dba423",
    "projectName": "雄安市民中心工程",
    "description": "项目的简单描述,项目的简单描述,项目的简单描述,项目的简单描述,项目的简单描述,项目的简单描述,项目的简单描述"
}

Curl:

## 新建项目
# 新建项目项目以转换模型
curl -X "POST" "http://developer.bimsop.com:8080/paas/project" \
     -H 'Authorization: Bearer ***** Hidden credentials *****' \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{
  "projectName": "雄安市民中心工程","description" : "项目描述项目描述"
}'

错误处理

状态码: 400 Bad Request

Response: invalid project name 说明:
示例中没有给出projectName

查看项目

查看当前开发者ID下 创建的项目
GET {baseUrl}/paas/projects

Header:

{
    "Authorization": "Bearer ***** Hidden credentials *****"
}

Response:

[
    {
        "projectName": "c37WYdYtjuLv8kt4Bj0W0xorM8QTXbUf",
        "projectId": "5b17770760ce55ad87dba40f"
    },
    {
        "projectName": "8QFhFiMHStTptFpbWcyGvVy0WFmFVSTx",
        "projectId": "5b1782c760ce55ad87dba423"
    }
]

Curl:

## 查看项目
# 查看已经创建的项目
curl "http://developer.bimsop.com:8080/paas/projects" \
     -H 'Authorization: Bearer ***** Hidden credentials *****' \

请求转换外部模型

请求转换外链模型, 原始模型不需要上传,暴露出可供转换服务下载的地址即可,转换服务器会主动下载原始模型后进行轻量化转换。参数中 originalModelPath 为可下载待转换模型的链接.

注: 出于数据安全考虑,原始模型的下载地址可以做token保护(如设定过期时间),但如果转换服务器下载模型时链接已经失效则无法转换成功,请随时注意查询转换进度

POST {baseUrl}/paas/trans

Header:

{
    "Authorization": "Bearer ***** Hidden credentials *****",
    "Content-Type": "application/json; charset=utf-8"
}

JSON Body:

{
    "originalModelPath": "http://your_server.com/path/to/original/model.rvt?token=323211234",   // 这个地址应该是可以正常下载的
    "levelOfDetail":"normal",  // 模型精细度, 可选值 ["finest","fine","normal","draft"], 默认值为 "normal" 
    "projectId": "5b1782c760ce55ad87dba423"
}

因为需要从远程下载模型, 返回的taskId需要进一步查询. 用后续API通过taskId查找modelId. 下载完成后自动开始转换, 不需要额外请求转换.

Response:

{
    "taskId": "5b1782c860ce55ad87dba424"
}

Curl:

## 请求转换外部模型
# 请求转换外链模型, 参数中 originalModelPath 为可下载待转换模型的链接. 返回taskId, 用后续API通过taskId查找modelId. 下载完成后自动开始转换, 不需要额外请求转换.
curl -X "POST" "http://developer.bimsop.com:8080/paas/trans" \
     -H 'Authorization: Bearer ***** Hidden credentials *****' \
     -H 'Content-Type: application/json; charset=utf-8' \
     -H 'Cookie: connect.sid=s%3AS947zHe9kgOpXdObJxH5i_loC6INPaEn.f05krmtbH%2BsBYctf6Vt0nF%2B3dcg4aKsohnvS1mBFmGM' \
     -d $'{
  "originalModelPath": "http://localhost:9222/box2016.rvt",
  "projectId": "5b1782c760ce55ad87dba423"
}'

错误处理

状态码: 400 Bad Request

Response: invalid originalModelPath
说明:
originalModelPath不是合法http链接, 原始模型下载链接必须合法有效,如果你用的token保护,token必须在有效期内。

查询外部链接模型的modelId

通过taskId, 查询外部链接模型的modelId, 当模型下载成功时, 返回请求中才有modelId

GET {baseUrl}/paas/trans/task/5b1782c860ce55ad87dba424

Header:

{
    "Authorization": "Bearer ***** Hidden credentials *****"
}

Response:

{
    "status": "success",
    "statusDesc": "请求成功",
    "modelId": "5b14f5ba15cc63811108e1ca"
}

Curl:

## 查询外部链接模型的modelId
# 通过taskId, 查询外部链接模型的modelId, 当模型下载成功时, 返回请求中才有modelId
curl "http://developer.bimsop.com:8080/paas/trans/task/5b1782c860ce55ad87dba424" \
     -H 'Authorization: Bearer ***** Hidden credentials *****' \
     -H 'Cookie: connect.sid=s%3AS947zHe9kgOpXdObJxH5i_loC6INPaEn.f05krmtbH%2BsBYctf6Vt0nF%2B3dcg4aKsohnvS1mBFmGM'

错误处理

状态码: 400 Bad Request

Response: invalid taskId 说明:
必须给出正确、有效的taskId

查询转换进度

通过modelId查询模型转换进度.
GET {baseUrl}/paas/transProgress/5b14f5ba15cc63811108e1ca

Header:

{
    "Authorization": "Bearer ***** Hidden credentials *****"
}

Response:

{
    "modelId": "5b14f5ba15cc63811108e1ca",
    "status": "完成",
    "statusDesc": "完成",
    "progress": 1,
    "completed": false,
    "projectId": "5b14f5b915cc63811108e1c7"
}

Curl:

## 查询转换进度
# 通过modelId查询模型转换进度.
curl "http://developer.bimsop.com:8080/paas/transProgress/5b14f5ba15cc63811108e1ca" \
     -H 'Authorization: Bearer ***** Hidden credentials *****' \
     -H 'Cookie: connect.sid=s%3AS947zHe9kgOpXdObJxH5i_loC6INPaEn.f05krmtbH%2BsBYctf6Vt0nF%2B3dcg4aKsohnvS1mBFmGM'

错误处理

状态码: 400 Bad Request

Response: invalid modelId 说明:
必须给出有效的modelId, 或者您给出的modelId没找到对应的模型(你应该从前面的调用中拿到有效的modelId,而不能自己猜测)

打包下载轻量化模型

BIM模型轻量转换完毕后,可以打包下载转换后的轻量模型,部署在本地服务器使用。

通过modelId获取转换完成后的模型的zip地址, 用户应该首先查询转换进度,在转换完成后才会生成zip地址.

GET {baseUrl}/paas/download/5b14f5ba15cc63811108e1ca

Header:

{
    "Authorization": "Bearer ***** Hidden credentials *****"
}

Response:

{
    "modelId": "5b14f5ba15cc63811108e1ca",
    "lightModelUrl": "http://gb9.bimsop.com/models-from-paas/transformed/package/box2016.rvt-1528100282950.zip"
}

错误处理

状态码: 400 Bad Request

Response: invalid modelId 说明:
不是有效的modelId,或者该模式尚未转换完成

Curl:

## 获取zip链接
# 通过modelId获取转换完成后的模型的zip地址, 转换完成后才会生成zip地址.
curl "http://developer.bimsop.com:8080/paas/download/5b14f5ba15cc63811108e1ca" \
     -H 'Authorization: Bearer ***** Hidden credentials *****' \
     -H 'Cookie: connect.sid=s%3AS947zHe9kgOpXdObJxH5i_loC6INPaEn.f05krmtbH%2BsBYctf6Vt0nF%2B3dcg4aKsohnvS1mBFmGM'

在线浏览轻量化模型

BIM模型轻量转换完毕后,可以通过浏览器端API,直接调用后展示。

通过modelId获取转换完成后的模型的模型地址, 转换完成后才会生成该地址.
GET {baseUrl}/paas/stream/5b14f5ba15cc63811108e1ca

Header:

{
    "Authorization": "Bearer ***** Hidden credentials *****"
}

Response:

{
    "modelId": "5b14f5ba15cc63811108e1ca",
    "lightModelUrl": "http://gb9.bimsop.com/models-from-paas/transformed/box2016.rvt-1528100282950/box2016.rvt-1528100282950.gbim"
}

Curl:

## 获取轻量化模型链接
# 通过modelId获取转换完成后的模型的模型地址, 转换完成后才会生成该地址.
curl "http://developer.bimsop.com:8080/paas/stream/5b14f5ba15cc63811108e1ca" \
     -H 'Authorization: Bearer ***** Hidden credentials *****' \
     -H 'Cookie: connect.sid=s%3AS947zHe9kgOpXdObJxH5i_loC6INPaEn.f05krmtbH%2BsBYctf6Vt0nF%2B3dcg4aKsohnvS1mBFmGM'

错误处理

状态码: 400 Bad Request

Response: invalid modelId 说明:
不是有效的modelId,或者该模式尚未转换完成

results matching ""

    No results matching ""