转换外部模型方式
通知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,或者该模式尚未转换完成