autodesk-forge - BIM 360 Docs 如何复制文件
问题描述
版本 API 端点提到它可用于制作文档的副本。看来 copyFrom 参数是源文件 urn 的 http 编码值。示例中的 Relations.item.data.type.itemsid 的值是多少?我是否需要先创建一个空文件对象,然后在请求正文中提供该 ID?
解决方案
项目 ID 是您要从中复制的文件的数据管理 API 的 ID。您可以通过调用获得它:
- https://developer.autodesk.com/en/docs/data/v2/reference/http/hubs-hub_id-projects-project_id-GET
- https://forge.autodesk.com/en/docs/data/v2/reference/http/projects-project_id-versions-version_id-item-GET/
您不必创建空文件对象,只需调用 API:https ://forge.autodesk.com/en/docs/data/v2/reference/http/projects-project_id-versions-POST/
例如,
这是一个存储在 Docs 中的 RVT 模型,其项目数据如下:
{
"type": "items",
"id": "urn:adsk.wipprod:dm.lineage:rH_L4XJsTmeiYA4ixCVNAA", //!<<< Item id
"attributes": {
"displayName": "rac_basic_sample_project.rvt",
"createTime": "2019-09-25T06:56:26.0000000Z",
//...
"lastModifiedTime": "2019-09-25T06:56:27.0000000Z",
//...
"hidden": false,
"reserved": false,
"extension": {
"type": "items:autodesk.bim360:File",
"version": "1.0",
"schema": {
"href": "https://developer.api.autodesk.com/schema/v1/versions/items:autodesk.bim360:File-1.0"
},
"data": {
"sourceFileName": "rac_basic_sample_project.rvt"
}
}
},
//...
}
{
"type": "versions",
"id": "urn:adsk.wipprod:fs.file:vf.rH_L4XJsTmeiYA4ixCVNAA?version=1", //!<<< Version id
"attributes": {
"name": "rac_basic_sample_project.rvt",
"displayName": "rac_basic_sample_project.rvt",
"createTime": "2019-09-25T06:56:26.0000000Z",
//...
"lastModifiedTime": "2019-09-25T06:57:54.0000000Z",
//...
"versionNumber": 1,
"storageSize": 17813504,
"fileType": "rvt",
"extension": {
"type": "versions:autodesk.bim360:File",
"version": "1.0",
"schema": {
"href": "https://developer.api.autodesk.com/schema/v1/versions/versions:autodesk.bim360:File-1.0"
},
"data": {
"processState": "PROCESSING_COMPLETE",
"extractionState": "SUCCESS",
"splittingState": "NOT_SPLIT",
"reviewState": "NOT_IN_REVIEW",
"revisionDisplayLabel": "1",
"sourceFileName": "rac_basic_sample_project.rvt"
}
}
},
//...
}
现在您想urn:adsk.wipprod:fs.file:vf.rH_L4XJsTmeiYA4ixCVNAA?version=1
将此项目的特定版本复制到另一个文件夹urn:adsk.wipprod:fs.folder:co.0xaYa2rVTJuFiz7rxLCOQQ
。因此,API 调用将如下所示:
笔记。版本 ID 的 URL 安全形式是urn%3Aadsk.wipprod%3Afs.file%3Avf.rH_L4XJsTmeiYA4ixCVNAA%3Fversion%3D1
POST https://developer.api.autodesk.com/data/v1/projects/{PROJECT_ID}/items?copyFrom=urn%3Aadsk.wipprod%3Afs.file%3Avf.rH_L4XJsTmeiYA4ixCVNAA%3Fversion%3D1
{
"jsonapi": {
"version": "1.0"
},
"data": {
"type": "items",
"id": "urn:adsk.wipprod:dm.lineage:rH_L4XJsTmeiYA4ixCVNAA",
"relationships": {
"tip":{
"data":{
"type":"versions",
"id":"1"
}
},
"parent": {
"data": {
"type": "folders",
"id": "urn:adsk.wipprod:fs.folder:co.0xaYa2rVTJuFiz7rxLCOQQ" //!<<< The folder we want to put this file
}
}
}
},
"included":[
{
"type":"versions",
"id":"1",
"attributes":{
"name":"rac_basic_sample_project.rvt" //!<<< Version name
}
}
]
}
希望能帮助到你!
推荐阅读
- csv - 导入 csv 在 Jupyter 笔记本中的初始位置 Julia 返回编码标识符
- java - Java Android - 访问 addValueEventListener 之外的变量
- r - 为 Rmarkdown 格式化为 kable / kableExtra 的表格的一个单元格添加上标
- php - 如何使用命令行预编译 php opcache?
- kubernetes - 使用 EnvoyProxy 添加本地速率限制
- loops - VHDL 中等待、无限循环、while 循环和 for 循环语句的综合
- r - Geom_point 和 ggboxplot 以及 ggpair 在 ggplot 中错误地匹配了所有绘图点
- python - 通过 python 请求上传图像时出现错误 400(错误请求)
- swift - 如何解决每 14 天在设备上发生的间歇性崩溃?
- mysql - IntegerField 不接受负数 django