上传模型转换方式
即上传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-Type
为 multipart/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,或者该模式尚未转换完成