为什么这些链接文件丢失了?
Why these linked files are missing?
我正在尝试上传带有链接文档的 revit 文件。
所有文档都在同一个文件夹和同一个存储桶中。所有的时间。
1 - 您需要将文件上传到存储桶。完成!
2 - 您需要使用此端点为复合源文件创建引用:
https://forge.autodesk.com/en/docs/model-derivative/v2/reference/http/urn-references-POST/
好的,让我们看看我是否可以创建对无效文件的引用...
OK Forge 发现我的一个参考文件不存在!
不错
现在让我们发送有效文件:
好的,应该没问题。
现在让我们进入最后一步...让我们开始将文件转换为 SVF 的工作吧!
Forge 说链接文件丢失,为什么?
这是要求...
参考文献:
{
"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"}}
]
}
工作
{
"input": {
"urn": "dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6ZmVkZXJhZG8vUEwwNzYtQVJRLUVNQi5ydnQ",
"checkReferences": true
},
"output": {
"formats": [
{
"type": "svf",
"views": [
"2d",
"3d"
]
}
]
}
}
如您所见,第一个请求使用 URN,但未对 Base64 进行编码,第二个请求使用 URN 参数的编码。那是因为他们的文档说应该是这样的。
那么,猜猜为什么链接丢失了?
不幸的是,据我所知,reference API of the Model Derivate 目前不支持 Revit 文件。请上传包含主机 RVT 及其链接到 Forge OSS 的 ZIP,并使用此请求正文触发翻译作业:
{
"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 模型加载到同一场景中。它被称为查看器的aggregate/multiple模型场景。您可以选择任何一种方式来实现您想要的。
顺便说一句,
多模型场景下,可以通过访问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
。里面会有一个 /
斜杠。
希望对您有所帮助。干杯!
我正在尝试上传带有链接文档的 revit 文件。
所有文档都在同一个文件夹和同一个存储桶中。所有的时间。
1 - 您需要将文件上传到存储桶。完成!
2 - 您需要使用此端点为复合源文件创建引用: https://forge.autodesk.com/en/docs/model-derivative/v2/reference/http/urn-references-POST/
好的,让我们看看我是否可以创建对无效文件的引用...
OK Forge 发现我的一个参考文件不存在! 不错
现在让我们发送有效文件:
好的,应该没问题。
现在让我们进入最后一步...让我们开始将文件转换为 SVF 的工作吧!
Forge 说链接文件丢失,为什么?
这是要求...
参考文献:
{
"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"}}
]
}
工作
{
"input": {
"urn": "dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6ZmVkZXJhZG8vUEwwNzYtQVJRLUVNQi5ydnQ",
"checkReferences": true
},
"output": {
"formats": [
{
"type": "svf",
"views": [
"2d",
"3d"
]
}
]
}
}
如您所见,第一个请求使用 URN,但未对 Base64 进行编码,第二个请求使用 URN 参数的编码。那是因为他们的文档说应该是这样的。
那么,猜猜为什么链接丢失了?
不幸的是,据我所知,reference API of the Model Derivate 目前不支持 Revit 文件。请上传包含主机 RVT 及其链接到 Forge OSS 的 ZIP,并使用此请求正文触发翻译作业:
{
"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 模型加载到同一场景中。它被称为查看器的aggregate/multiple模型场景。您可以选择任何一种方式来实现您想要的。
顺便说一句,
多模型场景下,可以通过访问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
。里面会有一个 /
斜杠。
希望对您有所帮助。干杯!