BIMFACE服务器端API接口
应用访问凭证获取
BIMFACE所有的RESTful API都有对应的鉴权机制保护,目前BIMFACE支持两种鉴权方式:
- Access Token
-
代表自身应用的身份,使用应用的appkey, secret,通过调用/oauth2/token接口获取。
- View Token
-
代表对单个模型/集成模型/模型对比的访问权限,使用Access Token,通过调用/view/token或其他相关接口获得。
使用Access Token,可以对自己应用内的文件发起文件上传,下载,删除,模型转换,模型集成,模型对比等操作,
同时也能访问所有BIMFACE的数据接口获取转换后的模型BIM信息;而View Token只代表对单个模型/集成模型/模型对比的临时的访问凭证,
只能访问对应模型的数据接口,通过使用应用的Access Token调用下面的接口可以获得。
通常情况下,View Token可以直接传入前端JSSDK用来加载/浏览模型
| Access Token有效期为7天, 除非Token被注销,Access Token在7天内不会发生改变; 而View Token只是一个临时的访问凭证,有效期为12小时。但是为了减少用户重复请求View Token的次数, 每次使用View Token都会重置有效期为12小时。这样如果你的模型持续有人访问,View Token会一直有效, 只有在12小时内,没有使用View Token的任何调用,View Token才会失效。 |
| Access Token只能使用appkey, secret通过/oauth2/token接口获取; 类似的,View Token必须通过有效的Access Token并提供对应的源文件Id以及集成模型Id信息来获取。 |
|
View Token的使用方法是在调用对应的数据接口的时候,添加一个查询参数(Query parameter): view_token={your_view_token} |
| 只有在文件转换或模型集成任务成功以后,才能获取View Token。 |
- 关于请求中的header Authorization的使用
-
获取Access Token接口中使用的Authorization,是将字符串appKey:appSecret 拼接后(中间用冒号连接),对其进行BASE64编码, 然后在编码后的字符串前添加字符串Basic和一个空格, 即:“Basic [Base64Encode(“appKey:appSecret”)]“。 其他接口中使用的header Authorization, 是将你的Access Token的字符串前添加字符串bearer和一个空格, 即:“bearer [Access Token]"
获取Access Token
POST https://api.bimface.com/oauth2/token
参数
| 类型 | 名称 | 说明 | 类型 |
|---|---|---|---|
Header |
Authorization |
将字符串 appKey:appSecret 拼接后(中间用冒号连接),对其进行BASE64编码, 然后在编码后的字符串前添加字符串Basic和一个空格, 即:“Basic” + “ ” + Base64Encode(appKey + “:” + appSecret) |
string |
获取模型的View Token
GET https://api.bimface.com/view/token
说明
通过fileId, integrateId, compareId 获取View Token, 然后把View Token传入前端JavaScript组件提供的接口中,即可加载和浏览文件所包含的三维模型或二维图纸。
参数
| 类型 | 名称 | 说明 | 类型 |
|---|---|---|---|
Header |
Authorization |
bearer {accessToken} |
string |
Query |
compareId |
模型对比ID(与文件转换ID、集成模型ID,三选一) |
integer (int64) |
Query |
fileId |
文件转换ID(与集成模型ID、模型对比ID,三选一) |
integer (int64) |
Query |
integrateId |
集成模型ID(与文件转换ID、模型对比ID,三选一) |
integer (int64) |
错误码
| code | 说明 |
|---|---|
system.error |
BIMFACE系统异常 |
authentication.failed |
API访问合法性校验失败 |
file.has.not.translated |
文件未转换,不能获取viewToken |
file.translate.failed |
文件转换失败,不能获取viewToken |
file.is.translating |
文件转换中,不能获取viewToken |
integration.not.found |
集成模型不存在,不能获取viewToken |
files.is.integrating |
集成中,不能获取viewToken |
files.integrate.failed |
集成失败,不能获取viewToken |
model.compare.not.found |
对比模型不存在,不能获取viewToken |
model.compare.not.finished |
对比未完成,不能获取viewToken |
model.compare.failed |
对比失败,不能获取viewToken |
获取子文件的View Token
POST https://api.bimface.com/data/v2/integrations/{integrateId}/files/{fileId}/viewToken
参数
| 类型 | 名称 | 说明 | 类型 |
|---|---|---|---|
Header |
Authorization |
bearer {accessToken} |
string |
Path |
fileId |
文件ID |
integer (int64) |
Path |
integrateId |
集成ID |
integer (int64) |
数据实体类
AccessTokenBean
| 名称 | 说明 | 类型 |
|---|---|---|
expireTime |
样例 : |
string |
token |
样例 : |
string |
BakeDatabagInfo
| 名称 | 说明 | 类型 |
|---|---|---|
databagId |
样例 : |
string |
databagVersion |
样例 : |
string |
modelId |
样例 : |
integer (int64) |
originalDatabagId |
样例 : |
string |
status |
样例 : |
string |
BatchDeleteResultBean«long»
| 名称 | 说明 | 类型 |
|---|---|---|
deleted |
样例 : |
< integer (int64) > array |
nonexistence |
样例 : |
< integer (int64) > array |
BusinessAssociationBean
| 名称 | 说明 | 类型 |
|---|---|---|
associationId |
样例 : |
integer (int64) |
config |
样例 : |
object |
createTime |
样例 : |
string |
integrateId |
样例 : |
integer (int64) |
name |
样例 : |
string |
reason |
样例 : |
string |
ruleFileIds |
样例 : |
< integer (int64) > array |
sourceId |
样例 : |
string |
status |
样例 : |
string |
BusinessAssociationRequest
| 名称 | 说明 | 类型 |
|---|---|---|
callback |
样例 : |
string |
config |
样例 : |
object |
integrateId |
样例 : |
integer (int64) |
name |
样例 : |
string |
ruleFileIds |
样例 : |
< object > array |
sourceId |
样例 : |
string |
CompareRequest
| 名称 | 说明 | 类型 |
|---|---|---|
callback |
样例 : |
string |
comparedEntityType |
样例 : |
string |
config |
样例 : |
< string, string > map |
followingId |
样例 : |
integer (int64) |
name |
样例 : |
string |
previousId |
样例 : |
integer (int64) |
sourceId |
样例 : |
string |
DatabagDerivativeBean
| 名称 | 说明 | 类型 |
|---|---|---|
createTime |
样例 : |
string |
databagVersion |
样例 : |
string |
length |
样例 : |
integer (int64) |
reason |
样例 : |
string |
status |
样例 : |
string |
ElementPropertyOverride
| 名称 | 说明 | 类型 |
|---|---|---|
keyToMatch |
样例 : |
string |
keyToOverride |
样例 : |
string |
targetFileIds |
样例 : |
< object > array |
valueOverrides |
样例 : |
< ElementPropertyValueOverride > array |
ElementPropertyValueOverride
| 名称 | 说明 | 类型 |
|---|---|---|
valueToMatch |
样例 : |
string |
valueToOverride |
样例 : |
string |
FileIntegrateBean
| 名称 | 说明 | 类型 |
|---|---|---|
createTime |
样例 : |
string |
integrateId |
样例 : |
integer (int64) |
name |
样例 : |
string |
reason |
样例 : |
string |
sourceId |
样例 : |
string |
status |
样例 : |
string |
thumbnail |
样例 : |
< object > array |
type |
样例 : |
string |
FileIntegrateDetailBean
| 名称 | 说明 | 类型 |
|---|---|---|
cost |
样例 : |
integer (int32) |
createTime |
样例 : |
string |
databagId |
样例 : |
string |
integrateId |
样例 : |
integer (int64) |
name |
样例 : |
string |
offlineDatabagStatus |
样例 : |
string |
reason |
样例 : |
string |
shareToken |
样例 : |
string |
shareUrl |
样例 : |
string |
sourceId |
样例 : |
string |
status |
样例 : |
string |
thumbnail |
样例 : |
< string > array |
type |
样例 : |
string |
workerType |
样例 : |
string |
FileIntegrateRequest
| 名称 | 说明 | 类型 |
|---|---|---|
callback |
样例 : |
string |
config |
样例 : |
< string, string > map |
floorMapping |
样例 : |
< FloorMappingItem > array |
floorSort |
样例 : |
< string > array |
internalConfigMap |
样例 : |
< string, string > map |
name |
样例 : |
string |
parentIntegrateId |
样例 : |
integer (int64) |
propertyOverrides |
样例 : |
< ElementPropertyOverride > array |
ruleFileIds |
样例 : |
< object > array |
sourceId |
样例 : |
string |
sources |
样例 : |
< IntegrateSource > array |
specialtySort |
样例 : |
< string > array |
FileTranslateBean
| 名称 | 说明 | 类型 |
|---|---|---|
createTime |
样例 : |
string |
databagId |
样例 : |
string |
fileId |
样例 : |
integer (int64) |
name |
样例 : |
string |
reason |
样例 : |
string |
status |
样例 : |
string |
thumbnail |
样例 : |
< object > array |
FileTranslateDetailBean
| 名称 | 说明 | 类型 |
|---|---|---|
appKey |
样例 : |
string |
cost |
样例 : |
integer (int32) |
createTime |
样例 : |
string |
databagId |
样例 : |
string |
fileId |
样例 : |
integer (int64) |
length |
样例 : |
integer (int64) |
name |
样例 : |
string |
offlineDatabagStatus |
样例 : |
string |
reason |
样例 : |
string |
retry |
样例 : |
boolean |
shareToken |
样例 : |
string |
shareUrl |
样例 : |
string |
sourceId |
样例 : |
string |
status |
样例 : |
string |
supportOfflineDatabag |
样例 : |
boolean |
thumbnail |
样例 : |
< string > array |
type |
样例 : |
string |
FileTranslateRequest
| 名称 | 说明 | 类型 |
|---|---|---|
callback |
样例 : |
string |
config |
样例 : |
< string, string > map |
source |
样例 : TranslateSource |
FloorMappingItem
| 名称 | 说明 | 类型 |
|---|---|---|
fileFloorId |
样例 : |
string |
projectFloorId |
样例 : |
string |
projectFloorName |
样例 : |
string |
GeneralResponse
| 名称 | 说明 | 类型 |
|---|---|---|
code |
样例 : |
string |
data |
样例 : |
object |
message |
样例 : |
string |
GeneralResponse«AccessTokenBean»
| 名称 | 说明 | 类型 |
|---|---|---|
code |
样例 : |
string |
data |
样例 : AccessTokenBean |
|
message |
样例 : |
string |
GeneralResponse«BatchDeleteResultBean«long»»
| 名称 | 说明 | 类型 |
|---|---|---|
code |
样例 : |
string |
data |
||
message |
样例 : |
string |
GeneralResponse«BusinessAssociationBean»
| 名称 | 说明 | 类型 |
|---|---|---|
code |
样例 : |
string |
data |
||
message |
样例 : |
string |
GeneralResponse«DatabagDerivativeBean»
| 名称 | 说明 | 类型 |
|---|---|---|
code |
样例 : |
string |
data |
||
message |
样例 : |
string |
GeneralResponse«FileIntegrateBean»
| 名称 | 说明 | 类型 |
|---|---|---|
code |
样例 : |
string |
data |
样例 : FileIntegrateBean |
|
message |
样例 : |
string |
GeneralResponse«FileTranslateBean»
| 名称 | 说明 | 类型 |
|---|---|---|
code |
样例 : |
string |
data |
样例 : FileTranslateBean |
|
message |
样例 : |
string |
GeneralResponse«InsecureShareLinkBean»
| 名称 | 说明 | 类型 |
|---|---|---|
code |
样例 : |
string |
data |
||
message |
样例 : |
string |
GeneralResponse«List«DatabagDerivativeBean»»
| 名称 | 说明 | 类型 |
|---|---|---|
code |
样例 : |
string |
data |
样例 : |
< DatabagDerivativeBean > array |
message |
样例 : |
string |
GeneralResponse«List«ProjectIntegrateBean»»
| 名称 | 说明 | 类型 |
|---|---|---|
code |
样例 : |
string |
data |
样例 : |
< ProjectIntegrateBean > array |
message |
样例 : |
string |
GeneralResponse«List«ProjectOperationBean»»
| 名称 | 说明 | 类型 |
|---|---|---|
code |
样例 : |
string |
data |
样例 : |
< ProjectOperationBean > array |
message |
样例 : |
string |
GeneralResponse«ModelCompareBean»
| 名称 | 说明 | 类型 |
|---|---|---|
code |
样例 : |
string |
data |
样例 : ModelCompareBean |
|
message |
样例 : |
string |
GeneralResponse«ModelVersionInfo»
| 名称 | 说明 | 类型 |
|---|---|---|
code |
样例 : |
string |
data |
样例 : ModelVersionInfo |
|
message |
样例 : |
string |
GeneralResponse«PagedList«FileIntegrateDetailBean»»
| 名称 | 说明 | 类型 |
|---|---|---|
code |
样例 : |
string |
data |
||
message |
样例 : |
string |
GeneralResponse«PagedList«FileTranslateDetailBean»»
| 名称 | 说明 | 类型 |
|---|---|---|
code |
样例 : |
string |
data |
||
message |
样例 : |
string |
GeneralResponse«PagedList«ModelCompareBean»»
| 名称 | 说明 | 类型 |
|---|---|---|
code |
样例 : |
string |
data |
||
message |
样例 : |
string |
GeneralResponse«PagedList«ShareLinkBean»»
| 名称 | 说明 | 类型 |
|---|---|---|
code |
样例 : |
string |
data |
||
message |
样例 : |
string |
GeneralResponse«ProjectBean»
| 名称 | 说明 | 类型 |
|---|---|---|
code |
样例 : |
string |
data |
样例 : ProjectBean |
|
message |
样例 : |
string |
GeneralResponse«ShareLinkBean»
| 名称 | 说明 | 类型 |
|---|---|---|
code |
样例 : |
string |
data |
样例 : ShareLinkBean |
|
message |
样例 : |
string |
GeneralResponse«boolean»
| 名称 | 说明 | 类型 |
|---|---|---|
code |
样例 : |
string |
data |
样例 : |
boolean |
message |
样例 : |
string |
GeneralResponse«string»
| 名称 | 说明 | 类型 |
|---|---|---|
code |
样例 : |
string |
data |
样例 : |
string |
message |
样例 : |
string |
InsecureShareLinkBean
| 名称 | 说明 | 类型 |
|---|---|---|
appKey |
样例 : |
string |
expireTime |
样例 : |
string |
passwordProtect |
样例 : |
boolean |
sourceId |
样例 : |
integer (int64) |
sourceType |
样例 : |
string |
url |
样例 : |
string |
IntegrateDrawingsInfo
| 名称 | 说明 | 类型 |
|---|---|---|
databagId |
样例 : |
string |
databagVersion |
样例 : |
string |
drawingIntegrateId |
样例 : |
integer (int64) |
status |
样例 : |
string |
IntegrateQueryRequest
| 名称 | 说明 | 类型 |
|---|---|---|
appKey |
样例 : |
string |
endDate |
样例 : |
string (date-time) |
fileName |
样例 : |
string |
integrateId |
样例 : |
integer (int64) |
integrateType |
样例 : |
string |
pageNo |
样例 : |
integer (int32) |
pageSize |
样例 : |
integer (int32) |
sortType |
样例 : |
string |
sourceId |
样例 : |
string |
startDate |
样例 : |
string (date-time) |
status |
样例 : |
integer (int32) |
IntegrateSource
| 名称 | 说明 | 类型 |
|---|---|---|
building |
样例 : |
string |
databagId |
样例 : |
string |
fileId |
样例 : |
integer (int64) |
fileName |
样例 : |
string |
floor |
样例 : |
string |
floorSort |
样例 : |
number (float) |
specialty |
样例 : |
string |
specialtySort |
样例 : |
number (float) |
transform |
样例 : |
< number (double) > array |
ModelAndView
| 名称 | 说明 | 类型 |
|---|---|---|
empty |
样例 : |
boolean |
model |
样例 : |
object |
modelMap |
样例 : |
< string, object > map |
reference |
样例 : |
boolean |
status |
样例 : |
enum (100, 101, 102, 103, 200, 201, 202, 203, 204, 205, 206, 207, 208, 226, 300, 301, 302, 303, 304, 305, 307, 308, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 426, 428, 429, 431, 451, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511) |
view |
样例 : View |
|
viewName |
样例 : |
string |
ModelCompareBean
| 名称 | 说明 | 类型 |
|---|---|---|
compareId |
样例 : |
integer (int64) |
cost |
样例 : |
integer (int32) |
createTime |
样例 : |
string |
name |
样例 : |
string |
offlineDatabagStatus |
样例 : |
string |
reason |
样例 : |
string |
sourceId |
样例 : |
string |
status |
样例 : |
string |
thumbnail |
样例 : |
< object > array |
type |
样例 : |
string |
workerType |
样例 : |
string |
ModelCompareItem
| 名称 | 说明 | 类型 |
|---|---|---|
followingDatabagId |
样例 : |
string |
followingFileId |
样例 : |
integer (int64) |
followingFileName |
样例 : |
string |
previousDatabagId |
样例 : |
string |
previousFileId |
样例 : |
integer (int64) |
previousFileName |
样例 : |
string |
ModelCompareQueryRequest
| 名称 | 说明 | 类型 |
|---|---|---|
appKey |
样例 : |
string |
compareId |
样例 : |
integer (int64) |
endDate |
样例 : |
string (date-time) |
fileName |
样例 : |
string |
pageNo |
样例 : |
integer (int32) |
pageSize |
样例 : |
integer (int32) |
sortType |
样例 : |
string |
sourceId |
样例 : |
string |
startDate |
样例 : |
string (date-time) |
status |
样例 : |
integer (int32) |
type |
样例 : |
string |
ModelCompareRequest
| 名称 | 说明 | 类型 |
|---|---|---|
callback |
样例 : |
string |
name |
样例 : |
string |
sourceId |
样例 : |
string |
sources |
样例 : |
< ModelCompareItem > array |
ModelVersionInfo
| 名称 | 说明 | 类型 |
|---|---|---|
bake |
样例 : BakeDatabagInfo |
|
config |
样例 : |
< string, string > map |
databagId |
样例 : |
string |
integrateDrawings |
||
isSupportComponentProperty |
样例 : |
boolean |
isSupportDrawing |
样例 : |
boolean |
isSupportFamilyTypeList |
样例 : |
boolean |
isSupportMaterialProperty |
样例 : |
boolean |
isSupportMiniMap |
样例 : |
boolean |
isSupportModelTree |
样例 : |
boolean |
isSupportRoomArea |
样例 : |
boolean |
isSupportWalk |
样例 : |
boolean |
jsSDKVersion |
样例 : |
string |
modelId |
样例 : |
integer (int64) |
modelType |
样例 : |
string |
name |
样例 : |
string |
renderType |
样例 : |
string |
renderVersion |
样例 : |
string |
subRenders |
样例 : |
< RenderInfo > array |
type |
最小值 : |
integer (int32) |
workerType |
样例 : |
string |
Page
| 名称 | 说明 | 类型 |
|---|---|---|
htmlDisplay |
样例 : |
string |
nextPage |
样例 : |
integer (int32) |
pageNo |
样例 : |
integer (int32) |
pageSize |
样例 : |
integer (int32) |
prePage |
样例 : |
integer (int32) |
startIndex |
样例 : |
integer (int32) |
totalCount |
样例 : |
integer (int32) |
totalPages |
样例 : |
integer (int32) |
PagedList«FileIntegrateDetailBean»
| 名称 | 说明 | 类型 |
|---|---|---|
list |
样例 : |
< FileIntegrateDetailBean > array |
page |
样例 : Page |
PagedList«FileTranslateDetailBean»
| 名称 | 说明 | 类型 |
|---|---|---|
list |
样例 : |
< FileTranslateDetailBean > array |
page |
样例 : Page |
PagedList«ModelCompareBean»
| 名称 | 说明 | 类型 |
|---|---|---|
list |
样例 : |
< ModelCompareBean > array |
page |
样例 : Page |
PagedList«ShareLinkBean»
| 名称 | 说明 | 类型 |
|---|---|---|
list |
样例 : |
< ShareLinkBean > array |
page |
样例 : Page |
ProjectBean
| 名称 | 说明 | 类型 |
|---|---|---|
createTime |
样例 : |
string |
id |
样例 : |
integer (int64) |
integrateId |
样例 : |
integer (int64) |
integrateStatus |
样例 : |
string |
name |
样例 : |
string |
ProjectCreateRequest
| 名称 | 说明 | 类型 |
|---|---|---|
callback |
样例 : |
string |
integrate |
样例 : FileIntegrateRequest |
|
materialOverrideSetFileId |
样例 : |
integer (int64) |
metaFileId |
样例 : |
integer (int64) |
name |
样例 : |
string |
segmentFileId |
样例 : |
integer (int64) |
ProjectIntegrateBean
| 名称 | 说明 | 类型 |
|---|---|---|
active |
样例 : |
boolean |
createTime |
样例 : |
string |
integrateId |
样例 : |
integer (int64) |
parentIntegrateId |
样例 : |
integer (int64) |
status |
样例 : |
string |
ProjectModifyRequest
| 名称 | 说明 | 类型 |
|---|---|---|
addedFileIds |
样例 : |
< object > array |
callback |
样例 : |
string |
changedFileIds |
样例 : |
< Diff > array |
deletedFileIds |
样例 : |
< object > array |
materialOverrideSetFileId |
样例 : |
integer (int64) |
metaFileId |
样例 : |
integer (int64) |
segmentFileId |
样例 : |
integer (int64) |
transformMap |
样例 : |
< string, < number (double) > array > map |
ProjectOperationBean
| 名称 | 说明 | 类型 |
|---|---|---|
addedFiles |
样例 : |
string |
callbackStatus |
样例 : |
integer (int32) |
callbackTimes |
最小值 : |
integer (int32) |
callbackUrl |
样例 : |
string |
changedFiles |
样例 : |
string |
createTime |
样例 : |
integer (int64) |
deletedFiles |
样例 : |
string |
id |
样例 : |
integer (int64) |
integrate |
样例 : |
boolean |
jobId |
样例 : |
integer (int64) |
jobSourceId |
样例 : |
integer (int64) |
metaFileId |
样例 : |
integer (int64) |
mosFileId |
样例 : |
integer (int64) |
projectId |
样例 : |
integer (int64) |
segmentFileId |
样例 : |
integer (int64) |
status |
最小值 : |
integer (int32) |
transform |
样例 : |
string |
workerCode |
样例 : |
string |
workerMessage |
样例 : |
string |
ProjectOperationFixRequest
| 名称 | 说明 | 类型 |
|---|---|---|
callback |
样例 : |
string |
replaceFileMap |
样例 : |
< string, integer (int64) > map |
transformMap |
样例 : |
< string, < number (double) > array > map |
RenderInfo
| 名称 | 说明 | 类型 |
|---|---|---|
isSupportComponentProperty |
样例 : |
boolean |
isSupportFamilyTypeList |
样例 : |
boolean |
isSupportMiniMap |
样例 : |
boolean |
isSupportModelTree |
样例 : |
boolean |
jsSDKVersion |
样例 : |
string |
renderType |
样例 : |
string |
renderVersion |
样例 : |
string |
ShareLinkBean
| 名称 | 说明 | 类型 |
|---|---|---|
appKey |
样例 : |
string |
expireTime |
样例 : |
string |
password |
样例 : |
string |
sourceId |
样例 : |
integer (int64) |
sourceName |
样例 : |
string |
sourceType |
样例 : |
string |
url |
样例 : |
string |
TranslateQueryRequest
| 名称 | 说明 | 类型 |
|---|---|---|
appKey |
样例 : |
string |
endDate |
样例 : |
string (date-time) |
fileId |
样例 : |
integer (int64) |
fileName |
样例 : |
string |
pageNo |
样例 : |
integer (int32) |
pageSize |
样例 : |
integer (int32) |
sortType |
样例 : |
string |
sourceId |
样例 : |
string |
startDate |
样例 : |
string (date-time) |
status |
样例 : |
integer (int32) |
suffix |
样例 : |
string |