当作为 zip 文件上传并翻译成 SVF 时,如何访问其他引用文件(urn)和视图?

How to access other referenced files(urn) and views when uploaded as zip file and translated into SVF?

在数据和视图的 v1 API 中,我必须使用

上传所有文件并将它们 link 在一起

references/v1/setreference

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

在 API v2 中,我需要使用

发送一个 POST JOB

modelderivative/v2/designdata/job

我在其中传递一个对象的 urn,该对象已以 zip 格式上传并给出了 rootFilename。到目前为止,好的。我不必关心参考文献,这很酷,工作更少。 但是 none 我可以使用模型派生得到的 JSONs api 包含关于 linked 文件的 urns 及其视图(除根文件之外)的信息 .那么他们在哪里?

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

假设我想上传包含 3 个 revit 文件的 ZIP link一起编辑

  1. 大师 - house.rvt
  2. 暖通空调 - hvac.rvt
  3. 电 - electro.rvt

Master 引用了 hvac 和 electro,hvac 和 electro 交叉引用了 master。

然后我会上传一个zip文件,成功翻译成SVF,现在我想在查看器中显示hvac.rvt,而不是掌握在一起! Hvac.rvt 在 3D 视图中关闭可见性的情况下交叉引用母版:

当我尝试这个时,我只能访问母版的 3D 和 2D 视图。 linked 文件没有视图,即使它们存在于文件中并且之前可以访问。

manifest: modelderivative/v2/designdata/:urn/manifest

metadata: modelderivative/v2/designdata/:urn/metadata

even full info: viewingservice/v1/{urn}/all

none 个包含有关 linked 文件的任何信息。唯一的例外是 designDescription.json(下载完整气泡时)提到模型有 links 和哪些。

示例(真实案例):

{
"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" : {}

                }
            ]
        }
    ]
}

}

但同样没有 linked 文件的位置。有一个属性 "relativePath" 但是通向哪里呢?

https://developer.autodesk.com 的文档几乎没有提及使用参考文件..

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

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

所以,是的,目前您似乎必须上传要翻译的每个文件(以供查看或转换为其他格式),除了将它们上传到 zip 文件中以用于主 Revit 文件翻译。

我已将你的评论转达给工程部门,关于你缺少 v1 API 中可用的功能。不幸的是,我目前无法保证 when/if 此功能将在 v2 API 中实现。

对于给您带来的不便,我们深表歉意。

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