2

在数据和视图 API v1 中,我必须上传所有文件并将它们链接在一起使用

参考/v1/setreference

然后注册他们每个人进行翻译。这有一个优势,我可以在查看器中显示每个链接的文件单独或所有链接在一起。我还可以将 3D 和 2D 视图与数据库中的每个文件相关联。

在 API v2 中,我需要使用

modelderivative/v2/designdata/job

我在哪里传递一个以 zip 格式上传并给出 rootFilename 的对象的 urn urn。到目前为止,好的。我不必关心引用,这很酷,工作量少。但是我可以使用模型派生 api 获得的 JSON 中没有一个包含有关链接文件的 urns 及其视图(除根文件之外的其他视图)的信息。那么他们在哪里呢?

示例场景:(在 API v1 中是可能的)

假设我要上传包含 3 个链接在一起的 revit 文件的 ZIP

  1. 主人 - house.rvt
  2. 暖通空调 - hvac.rvt
  3. 电-电.rvt

主引用 hvac 和电,并且 hvac 和电交叉引用主。

然后我会上传一个zip文件,成功翻译成SVF,现在我想在查看器中显示hvac.rvt,而不是与所有高手一起!Hvac.rvt 在 3D 视图中关闭了对 master 的交叉引用:

当我尝试这个时,我只能访问主人的 3D 和 2D 视图。即使它们存在于文件中并且之前可以访问,也没有来自链接文件的视图。

清单:modelderivative/v2/designdata/:urn/manifest

元数据:modelderivative/v2/designdata/:urn/metadata

甚至完整的信息:viewingservice/v1/{urn}/all

它们都不包含有关链接文件的任何信息。唯一的例外是 designDescription.json(下载完整气泡时),其中提到模型具有链接以及哪些链接。

示例(真实案例):

{
"name" : "Autodesk Design Description",
"version" : "0.1",
"designDescription" : {
    "id" : "f75c0132-b0cf-42dd-9ef9-b0a3d7be0669",
    "name" : "My XRef File Design",
    "currentVersion" : "1",
    "designGraphs" : [{
            "creationDate" : "2016-07-30 13:24:33",
            "creatingService" : "RVT LMV Extractor XRef",
            "rootIds" : [1],
            "designObjectRefs" : [],
            "designObjects" : [{
                    "id" : 1,
                    "version" : 0,
                    "about" : "urn:adsk.objects:os.object:bucket/Model.zip",
                    "relativePath" : "MainModel_A.rvt",
                    "displayName" : "MainModel_A.rvt",
                    "contentType" : ".rvt",
                    "shareInfo" : null,
                    "references" : [{
                            "type" : "x-ref",
                            "ids" : [2]
                        }
                    ],
                    "metadata" : {}

                }, {
                    "id" : 2,
                    "version" : 0,
                    "about" : "",
                    "relativePath" : "MEPModel_B.rvt",
                    "displayName" : "MEPModel_B.rvt",
                    "contentType" : ".rvt",
                    "shareInfo" : null,
                    "references" : [{
                            "type" : "x-ref",
                            "ids" : [3]
                        }
                    ],
                    "metadata" : {}

                }, {
                    "id" : 3,
                    "version" : 0,
                    "about" : "urn:adsk.objects:os.object:bucket/Model.zip",
                    "relativePath" : "MainModel_A.rvt",
                    "displayName" : "MainModel_A.rvt",
                    "contentType" : ".rvt",
                    "shareInfo" : null,
                    "references" : [],
                    "metadata" : {}

                }
            ]
        }
    ]
}

}

但同样没有链接文件的位置。有一个属性“relativePath”但通向哪里?

https://developer.autodesk.com上的文档几乎没有说明使用引用文件。

我如何再次实现这个场景?(在更改之前,这已经实现了几乎可以分发的更大应用程序的功能)现在我必须为每个链接文件多次上传相同的文件?或者怎么做?请问,有什么想法吗?

4

2 回答 2

1

对此的解决方案是为每个链接文件以不同的名称将相同的 zip 文件上传到存储桶(您可以省略与特定链接文件无关的文件),然后为每个 zip 文件调用一个 post 作业,其中包含另一个文件名作为 rootFilename。rootFilename 属性不必是 revit 模型设计的真正根。这将提供对每个链接文件的访问权限并允许下载气泡。

于 2016-08-02T12:15:11.333 回答
0

您会在 A360 UI 中发现新 API 也遵循相同的行为:您必须将各种组件一起上传,然后主要组件将被翻译。

所以,是的,目前您似乎必须上传要翻译的每个文件(以查看或转换为其他格式),此外还要以 zip 格式上传它们以进行主要的 Revit 文件翻译。

关于您缺少 v1 API 中可用的功能,我已将您的意见转达给工程部门。不幸的是,我目前无法承诺何时/是否会在 v2 API 中实现此功能。

给您带来的不便深表歉意。

于 2016-08-01T11:43:31.183 回答