翻译引擎提供相同的指导和viewableIDs到复杂模型

时间:2016-09-13 21:31:02

标签: autodesk-forge autodesk-model-derivative

最近我试图实现可以将3D查看器中的视图与原始revit模型的视图链接的场景。

  1. 我压缩了链接文件并将其上传
  2. 使用更改的rootFileName上传更多次相同的zip文件,以提供模型的所有方面并翻译所有
  3. 下载他们的manifest.jsons
  4. 使用viewableID和原始revit视图的uniqueID链接视图中的revit端视图和视图
  5. 在这里,我将提供清单输出的真实缩短示例

    例如文件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没有实际用途。

    非常感谢任何帮助

2 个答案:

答案 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文件,以提供模型的所有方面并翻译所有

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