翻译引擎为复杂模型的不同文件提供相同的 guids 和 viewableIDs

Translating engine gives same guids & viewableIDs to diferrent files of complex model

最近我正在尝试实现可以​​在 3D 查看器中查看原始 revit 模型的视图 link 的场景。

  1. 我压缩了 link 文件并上传了它们
  2. 使用更改的 rootFileName 上传更多次相同的 zip 文件以提供模型的所有方面并翻译所有内容
  3. 下载他们的manifest.jsons
  4. link revit 侧的视图,查看器中的视图使用原始 revit 视图的 viewableID 和 uniqueID

在这里我将提供清单输出的真实简短示例

例如文件 1.

{
 "guid" : "578dd62c-d5dc-8da0-1c75-aa6b0be8ba76",
 "name" : "3D pohled",
 "success" : "100%",
 "hasThumbnail" : "true",
 "status" : "success",
 "type" : "folder",
 "progress" : "complete",
 "children" : [{
   "guid" : "07e30540-b182-cd58-1c1f-eb46bc58fb9c",
   "name" : "{3D}",
   "success" : "100%",
   "size" : 771479.0,
   "hasThumbnail" : "true",
   "role" : "3d",
   "viewableID" : "8af1141e-a7ca-22b4-d104-d7331a1c0454",
   "status" : "success",
   "type" : "geometry",
   "progress" : "complete",
   "children" : [{
     "guid" : "429ba882-f0a0-40fa-96e6-c6e02d9fc601-00022cda",
     "name" : "{3D}",
     "role" : "3d",
     "camera" : [22586.240234, 40687.59375, 32810.621094, 54.133858, -29.527559, 16437.923828, -0.160696, -0.29039, 0.943319, 0.547078, 0, 1, 1],
     "status" : "success",
     "type" : "view",
     "progress" : "complete"
    }, {
     "guid" : "9a3b544b-3c15-9304-f6f8-2c4db7a7dcb3",
     "type" : "resource",
     "role" : "graphics",
     "urn" : "urn:adsk.viewing:fs.file:dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dGVzdGJfMTIzZWUvRkhfRmFzJUMzJUExZGFfdi4wMS56aXA/output/Resource/3D_pohled/_3D_/_3D_.svf",
     "mime" : "application/autodesk-svf",
     "size" : 680482.0
    }
   ]
  }
 ]
}

例如。文件 2

{
 "guid" : "578dd62c-d5dc-8da0-1c75-aa6b0be8ba76",
 "name" : "3D pohled",
 "success" : "100%",
 "hasThumbnail" : "true",
 "status" : "success",
 "type" : "folder",
 "progress" : "complete",
 "children" : [{
   "guid" : "07e30540-b182-cd58-1c1f-eb46bc58fb9c",
   "name" : "{3D}",
   "success" : "100%",
   "size" : 7648740.0,
   "hasThumbnail" : "true",
   "role" : "3d",
   "viewableID" : "8af1141e-a7ca-22b4-d104-d7331a1c0454",
   "status" : "success",
   "type" : "geometry",
   "progress" : "complete",
   "children" : [{
     "guid" : "429ba882-f0a0-40fa-96e6-c6e02d9fc601-00022cda",
     "name" : "{3D}",
     "role" : "3d",
     "camera" : [40927.800781, 19529.832031, 36075.765625, 54.958988, -27.723097, 16418.119141, -0.359014, -0.171787, 0.917387, 0.320998, 0, 1, 1],
     "status" : "success",
     "type" : "view",
     "progress" : "complete"
    }, {
     "guid" : "9a3b544b-3c15-9304-f6f8-2c4db7a7dcb3",
     "type" : "resource",
     "role" : "graphics",
     "urn" : "urn:adsk.viewing:fs.file:dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dGVzdGJfMTIzZWUvRkhfVFpCX1ZaVC56aXA/output/Resource/3D_pohled/_3D_/_3D_.svf",
     "mime" : "application/autodesk-svf",
     "size" : 7552662.0
    }
   ]
  }
 ]
}

如您所见,每次文件的 URN 不同,viewableID 和 guid 仍然相同。这是不应该发生的,并且在处理信息时代表了一个真正的问题。在 manifest.json 中也缺少 有关原始 revit guid(uniqueid) 的信息,它是从哪个视图生成的,需要在 revit 端唯一标识视图。

我认为这是一个错误,需要解决,并且将 revit view guid 添加到输出清单中也会有很大帮助。因为name属性不够唯一,其他的guids没有实际用处。

如有任何帮助,我们将不胜感激

如果从同一个文件翻译过来,则 ID 将相同(即 Revit 在其视图上使用的唯一 ID),无论文件名如何。因此,如果您有一个带有视图的 .rvt,请使用不同的名称复制此文件,同时翻译它们,它们在该视图上将具有相同的 ID。

编辑 2016 年 10 月 17 日

我们在 2016 年 9 月 26 日更新了翻译引擎,对于 3d 和 2d,气泡中的 viewableID 与 Revit 视图的 UniqueId 相同。这样您就可以使用 viewableId 来实现您的功能特征。

众所周知,Revit 元素的 "unique" ID 事实上并不是真正的 GUID。一个文件的两个副本对于这些文件中的元素将具有完全相同的 "unique" id(它们不会在另存为操作中重新生成)。 Revit 中唯一 id 的目的是提供一种机制来促进工作共享,其中元素 id 不是 "stable" 并且可能在重新加载最新事件期间发生变化,其中来自中心的元素 id 与本地元素 id 冲突。 以下是 The Building Coder 关于此主题的一些信息: http://thebuildingcoder.typepad.com/blog/2014/04/element-id-export-unique-navisworks-and-other-ids.html#3

就您的具体问题而言:"How can i identify, uniquely, the views in revit when traversing manifest.json?"我建议您(如果您有能力)将 Revit 文件名添加为您已上传和翻译的导出视图名称的一部分。从 URN 中提取出来以确定您实际拥有的视图。

如果这不起作用,也许您可​​以帮助我们更好地理解此语句: 多次上传具有更改的 rootFileName 的相同 zip 文件以提供模型的所有方面并翻译所有内容

这是想达到什么目的?同一视图数据的查看器端的不同实现?如果是这样,也许您可​​以告诉我们更多关于您最终想要实现的目标,我们可以提供一些更具体的建议。