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

时间:2016-07-30 15:53:24

标签: json autodesk-forge autodesk-model-derivative

在Data和View API的第1版中,我必须上传所有文件并使用

将它们链接在一起
  

引用/ V1 / setreference

之后注册其中的每一个进行翻译。这样做的一个优点是我可以在查看器中单独显示每个链接文件或者将所有链接文件链接在一此外,我可以将3D和2D视图与我的数据库中的每个文件相关联。

在API v2中,我需要使用

发送POST JOB
  

modelderivative / V2 / designdata /工作

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

示例方案:(可在API v1中使用)

我想说我想上传包含3个连接在一起的revit文件的ZIP

  1. master - house.rvt
  2. hvac - hvac.rvt
  3. electro - electro.rvt
  4. 主要参考hvac和电子,hvac和电子交叉引用主人。

    然后我将上传一个zip文件,成功转换为SVF,现在我想在查看器中显示hvac.rvt,而不是一起掌握! Hvac.rvt具有对主视图的交叉引用,在3D视图中关闭了可见性:

    当我尝试这个时,我只能访问主人的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处的文档几乎没有说明使用引用的文件..

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

所以,是的,目前您似乎必须上传要翻译的每个文件(用于查看或其他格式),另外还要将其上传到主要Revit文件翻译的zip文件中。

我已将您对工程的评论传递给您,因为您错过了v1 API中提供的功能。不幸的是,我现在无法承诺在v2 API中何时/是否实现此功能。

很抱歉给它带来不便。