首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么这些链接文件会丢失?

为什么这些链接文件会丢失?
EN

Stack Overflow用户
提问于 2019-10-02 04:38:55
回答 1查看 189关注 0票数 0

我正在尝试上传包含链接文档的revit文件。

所有文档都在相同的文件夹和存储桶中。每时每刻。

1-您需要将文件上传到存储桶中。完成了!

2-您需要使用以下端点为复合源文件创建引用:https://forge.autodesk.com/en/docs/model-derivative/v2/reference/http/urn-references-POST/

好的,让我们看看我是否可以创建一个对无效文件的引用……

OK Forge发现我的一个参考文件不存在!好的。

现在让我们发送有效的文件:

好的,应该没问题。

现在让我们进入最后一步...让我们开始将文件转换为SVF的作业!

Forge说链接的文件丢失了,为什么?

以下是请求...

参考文献:

代码语言:javascript
运行
复制
{
    "urn": "urn:adsk.objects:os.object:federado/PL076-ARQ-EMB.rvt",
    "filename":"PL076-ARQ-EMB.rvt",
    "references": [
        {"urn":"urn:adsk.objects:os.object:federado/PL076-HID-EMB.rvt", "metadata": {"Teste":"Gabriel"}},
        {"urn":"urn:adsk.objects:os.object:federado/PL076-INC-EMB.rvt", "metadata": {"Teste":"Gabriel"}},
        {"urn":"urn:adsk.objects:os.object:federado/PL076-ACO-EMB.rvt", "metadata": {"Teste":"Gabriel"}},
        {"urn":"urn:adsk.objects:os.object:federado/PL076-ARQ-TOR01-FAC.rvt", "metadata": {"Teste":"Gabriel"}},
        {"urn":"urn:adsk.objects:os.object:federado/PL076-ARQ-TOR01-OPC01.rvt", "metadata": {"Teste":"Gabriel"}},
        {"urn":"urn:adsk.objects:os.object:federado/PL076-ELE-EMB.rvt", "metadata": {"Teste":"Gabriel"}},
        {"urn":"urn:adsk.objects:os.object:federado/PL076-ENG-EMB.rvt", "metadata": {"Teste":"Gabriel"}},
        {"urn":"urn:adsk.objects:os.object:federado/PL076-EST-CORDOALHAS.rvt",  "metadata": {"Teste":"Gabriel"}},
        {"urn":"urn:adsk.objects:os.object:federado/PL076-EST-EMB.rvt","metadata": {"Teste":"Gabriel"}}
    ]

}

工作

代码语言:javascript
运行
复制
{
   "input": {
     "urn": "dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6ZmVkZXJhZG8vUEwwNzYtQVJRLUVNQi5ydnQ",
     "checkReferences": true
    },
   "output": {
     "formats": [
        {
          "type": "svf",
          "views": [
            "2d",
            "3d"
          ]
        }
     ]
   }
}

如您所见,第一个请求使用URN,但没有编码为Base64,第二个请求使用URN参数的编码。这是因为他们的文档说它应该是这样的。

那么,有没有猜到链接缺失的原因呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-02 10:45:55

不幸的是,据我所知,reference API of the Model Derivate目前不支持Revit文件。请上传包含主机RVT的ZIP及其到Forge OSS的链接,并使用此请求正文触发翻译作业:

代码语言:javascript
运行
复制
{
   "input": {
     "urn": "dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6ZmVkZXJhZG8vUEwwNzYtQVJRLUVNQi56aXA",
     "compressedUrn": true,
     "rootFilename": "PL076-ARQ-EMB.rvt"
   },
   "output": {
     "formats": [
       {
         "type": "svf",
         "views": [
           "2d",
           "3d"
         ]
       }
     ]
   }
 } 

如果这些模型被上传到您自己的托管Forge OSS存储桶中,并且它们还没有被删除,那么您必须下载包括主机和链接在内的所有文件,并将它们打包成zip文件,然后重新上传以进行翻译。

通常,Forge OSS会在24小时后自动删除所有上传的文件,并使用临时存储桶保留策略(这是我们的代码示例和教程中的默认策略,您可以根据需要进行更改,详情请参阅OSS Retention Policy page )

但是,还有另一种方法可以在同一查看器场景中查看所有模型-使用Forge viewer将从RVT转换的单个SVF模型加载到同一场景中。众所周知,这就是查看器的聚合/多模型场景。你可以选择任何一种方法来实现你想要的。

顺便说一句,

在多机型场景下,您可以通过访问viewer.impl.modelQueue().getModels()获取加载的机型,通过viewer.getAggregateSelection()获取选择集。

如果您的模型是从zip转换而来的,那么您可以通过所选元素的外部id来确定它是否来自链接文件。Revit模型的外部id是Revit API中的Element.UniqueId。Revit中的每个图元都有一个名为UniqueId的唯一GUID,并在将图元放置到Revit视图中时指定。

在Forge Viewer中,您可以通过调用viewer.getProperties( dbId )来获取项目的外部id。对于来自链接的项目,外部将看起来像65e0379f-2c38-40b3-b403-2979327abc7a-00080a4e/22858843-3747-4f42-8654-519948201028-000eaf08。里面会有一个/斜杠。

希望能有所帮助。干杯!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58191963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档