上传模型转换方式

即上传BIM模型到PaaS服务后请求转换,适用于大多数中小型单位,调用时序图如下:

新建项目

创建一个新的工程项目,可能是某个正在进行中的房建项目、或基础设施施工项目等。注意,其中projectName为必需项,其他参数均可加入,若某参数与内部保留参数重名,不会保留该参数。

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:

## 查找已建项目
# 查看当前开发者ID下创建的项目
curl "http://developer.bimsop.com:8080/paas/projects" \
     -H 'Authorization: Bearer ***** Hidden credentials *****' \

查看项目信息

通过项目id查看项目信息 GET {baseUrl}/paas/project/5b17770760ce55ad87dba40f

Header:

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

Response:

{
  "projectInfo1": "foo",
  "projectInfo2": "bar",
  "projectId": "5bd675f18a2c54e74aaa8988",
  "projectName": "QaSUBkMcAChKfMUg0Ymxvb1K6iOyvRaA"
}

Curl:

## 查看项目信息
# 通过项目id查看项目信息
curl "http://developer.bimsop.com:8080/paas/project/5b17770760ce55ad87dba40f" \
     -H 'Authorization: Bearer ***** Hidden credentials *****' \

更新项目信息

通过项目id更新项目信息 PATCH {baseUrl}/paas/project/5b17770760ce55ad87dba40f

Header:

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

JSON Body:

{
  "projectInfo1": "foo",
  "projectInfo2": "bar",
  "projectId": "5bd675f18a2c54e74aaa8988",
  "projectName": "QaSUBkMcAChKfMUg0Ymxvb1K6iOyvRaA"
}

Response:

success

Curl:

## 更新项目信息
# 通过项目id更新项目信息
curl -X "PATCH" "http://localhost:8080/paas/project" \
     -H 'Authorization: Bearer ***** Hidden credentials *****' \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{
  "projectInfo1": "foo",
  "projectInfo2": "bar",
  "projectId": "5bd675f18a2c54e74aaa8988",
  "projectName": "QaSUBkMcAChKfMUg0Ymxvb1K6iOyvRaA"
}'

上传模型

上传需要转换的模型, 此项的body为Multipart, 其中bimModel项为上传的文件. 上传成功 返回modelId, 需要使用该modelId请求转/paas/trans
需要注意的是, 这里发出的请求的 Context-Typemultipart/form-data, 使用类似 postman 软件测试时, fileName 和 projectId 都为字符串, 而 bimModel 项需要从本地选择文件上传.

POST {baseUrl}/paas/upload

Header:

{
    "Authorization": "Bearer ***** Hidden credentials *****",
    "Content-Type": "multipart/form-data; charset=utf-8; boundary=__X_PAW_BOUNDARY__"
}

multipartBody:

{

    "projectId": "5b1782c760ce55ad87dba423",
    "fileName": "雄安市民中心工程1-1.rvt",
    "bimModel": 真实二进制文件 
}

Response:

{
    "modelId": "5b14f5ba15cc63811108e1ca"
}

Curl:

## 上传模型
# 上传需要转换的模型, 此项的body为Multipart, 其中bimModel项为上传的文件. 上传成功返回modelId, 需要使用该modelId请求转换(/paas/trans API).
curl -X "POST" "http://developer.bimsop.com:8080/paas/upload" \
     -H 'Authorization: Bearer ***** Hidden credentials *****' \
     -H 'Content-Type: multipart/form-data; charset=utf-8; boundary=__X_PAW_BOUNDARY__' \
     -H 'Cookie: connect.sid=s%3AS947zHe9kgOpXdObJxH5i_loC6INPaEn.f05krmtbH%2BsBYctf6Vt0nF%2B3dcg4aKsohnvS1mBFmGM' \
     -F "bimModel=" \
     -F "fileName=111222" \
     -F "projectId=5b1782c760ce55ad87dba423"

错误处理

状态码: 400 Bad Request

Response: invalid data, projectId or fileName is missing 说明:
必须要提供必要的参数:projectId 和 fileName

请求转换模型

用于模型成功后, 请求转换该模型, 返回转换信息
POST {baseUrl}/paas/trans

Header:

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

JSON Body:

{
    "modelId": "5b14f5ba15cc63811108e1ca",
    "levelOfDetail":"normal",  // 模型精细度, 可选值 ["finest","fine","normal","draft"], 默认值为 "normal" 
    "projectId": "5b1782c760ce55ad87dba423"
}

Response:

{
    "status": "processing",
    "statusDesc": "正在转换过程中...",
    "progress": 0.75,
    "completed": false,
    "projectId": "5b14f5b915cc63811108e1c7",
    "modelId": "5b14f5ba15cc63811108e1ca"

}
{
    "status": "done",
    "statusDesc": "转换已完成",
    "progress": 1,
    "completed": true,
    "projectId": "5b14f5b915cc63811108e1c7",
    "modelId": "5b14f5ba15cc63811108e1ca"
}

Curl:

## 请求转换模型
# 用于使用/pass/trans上传模型后, 请求转换该模型, 返回转换信息
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 $'{
  "modelId": "5b14f5ba15cc63811108e1ca",
  "projectId": "5b1782c760ce55ad87dba423"
}'

错误处理

状态码: 400 Bad Request

Response: invalid modelId or projectId 说明:
必须提供有效的 modelId 和 projectId

查询转换进度

通过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 ""