最近我试图实现可以将3D查看器中的视图与原始revit模型的视图链接的场景。
在这里,我将提供清单输出的真实缩短示例
例如文件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不同时,仍然可以看到ID和guid是相同的。这不是假设发生的,并且在处理信息时代表了一个真正的问题。在manifest.json中还缺少有关原始revit guid(uniqueid)的信息,从中生成视图,这是在revit端唯一识别视图所需的。
我认为这是一个bug,需要解决,并且在输出清单中添加revit view guid会有很大帮助。因为name属性不够独特,所以其他guids没有实际用途。
非常感谢任何帮助
答案 0 :(得分:0)
如果它们是从同一文件(即Revit在其视图中使用的唯一ID)转换的,则无论文件名是什么,它们都是相同的。因此,如果你有一个带有视图的.rvt,用不同的名称复制这个文件,翻译它们,它们在该视图上将具有相同的id。
编辑2016年10月17日
我们已在2016年9月26日更新了翻译引擎,并且对于3d和2d,气泡中的viewableID与Revit View的UniqueId相同。这样您就可以使用viewableId来实现您的功能。
答案 1 :(得分:0)
众所周知,Revit元素的“唯一”ID实际上并不是真正的GUID。对于这些文件中的元素,文件的两个副本将具有完全相同的“唯一”ID(它们不会在另存为操作时重新生成)。 Revit中唯一ID的目的是提供一种机制来促进工作共享,其中元素ID不是“稳定的”,并且可能在重新加载最新事件期间发生变化,其中元素ID来自中心与本地元素ID冲突。 以下是The Building Coder关于此主题的一些信息: http://thebuildingcoder.typepad.com/blog/2014/04/element-id-export-unique-navisworks-and-other-ids.html#3
就您的具体问题而言:“在遍历manifest.json时,如何唯一地识别revit中的视图?”我建议你可以(如果你有能力)添加Revit文件名作为你上传和翻译的导出视图名称的一部分。从URN中取出,以确定您实际拥有的视图。
如果这不起作用,也许你可以帮助我们更好地理解这个陈述: 使用更改的rootFileName上载更多次相同的zip文件,以提供模型的所有方面并翻译所有
这是试图实现的目标?相同视图数据的查看器端的不同实现?如果是这样,也许您可以告诉我们更多关于您最终要实现的目标,我们可以提供更具体的建议。