使用Autodesk Forge能否将RVT导出为含多个3D视图的SVF?
关于RVT转SVF导出多3D视图的实现方法
是可以实现的,默认转换仅输出默认{3D}视图的原因是未在转换作业中指定额外导出视图,具体操作步骤如下:
前提步骤:获取RVT内所有3D视图的GUID
首先调用模型衍生服务的清单查询接口,筛选出所有类型为3D的视图项,记录对应guid字段,后续转换时需要传入这些ID。
REST API 操作方式
提交SVF转换作业时,在请求体的output.formats.advanced参数中配置如下内容即可导出指定多视图:
{ "input": { "urn": "<你的RVT文件Base64 URN>" }, "output": { "formats": [ { "type": "svf", "views": ["3d"], "advanced": { "generateMasterViews": true, "viewableIds": ["<视图1 GUID>", "<视图2 GUID>", "<其他需要导出的视图GUID>"] } } ] } }
必须将generateMasterViews设为true,多视图导出配置才会生效。
C# 官方类库操作方式
使用Autodesk.Forge官方SDK时,构造转换作业参数的示例如下:
// 构造转换参数 var jobInput = new JobPayloadInput(urn: yourRvtUrn); var advancedSettings = new JobPayloadItemAdvanced( generateMasterViews: true, viewableIds: new List<string> {"<视图1 GUID>", "<视图2 GUID>"} ); var jobFormat = new JobPayloadItem( type: JobPayloadItem.TypeEnum.Svf, views: new List<JobPayloadItem.ViewsEnum> {JobPayloadItem.ViewsEnum._3d}, advanced: advancedSettings ); var jobOutput = new JobPayloadOutput(new List<JobPayloadItem> {jobFormat}); var jobPayload = new JobPayload(jobInput, jobOutput); // 提交转换作业 var api = new ModelDerivativeClient(); var response = await api.TranslateAsync(jobPayload, accessToken);
结果验证
转换完成后再次查询文件清单,就能看到多个独立的3D视图资源,每个视图都可以单独加载、导出,和Revit内保存的视图参数完全一致。
内容的提问来源于stack exchange,提问作者Sumana
相关产品推荐
相关产品推荐

