使用Model Derivative API转换后Viewer中无法显示Rooms信息求助
解决Revit 2024模型转SVF2后Room信息丢失的问题
1. 先排查源模型的Room状态
- 确保所有Room是已完成边界计算的:Revit里未封闭的Room会显示红色,这类Room不会被Model Derivative导出。打开「房间和面积」面板检查每个Room的状态,补全封闭墙体后重新导出模型。
- 别让Room在所有视图里都隐藏:如果源模型中所有视图都把Room类别设为不可见,哪怕开了
generateMasterViews,转换时也会跳过Room元素。
2. 优化转换参数
你已经加了generateMasterViews和x-ads-force,但还得明确告诉API要导出Room。在请求体的advanced里新增exportRooms: true参数,修改后的代码如下:
await axios.post('https://developer.api.autodesk.com/modelderivative/v2/designdata/job', { input: {urn: urn,}, output: { formats: [ { type: 'svf2', views: ['2d', '3d'], advanced: { generateMasterViews: true, exportRooms: true // 新增参数 }, }, ], }, }, { headers: { Authorization: 'Bearer <ACCESSTOKEN>', region: 'EMEA', 'x-ads-force': true, }, } );
提醒:
x-ads-force头能强制重新转换,避免使用缓存的旧结果,这步你做对了。
3. 在Viewer里正确查看Room信息
- 开启Room可见性:在Viewer的图层管理器中,找到「Rooms」类别并勾选,避免Room因隐藏而无法看到。
- 搜索验证:按
Ctrl+F输入「Room」搜索,或通过代码viewer.search('Room')查看是否存在对应的元素ID。 - 检查属性数据:选中Room元素后查看属性面板,或调用
viewer.getProperties(dbId, (props) => console.log(props))直接打印属性,确认Room参数是否存在。
4. 排查转换任务的Manifest
调用Model Derivative的Manifest接口,检查转换后的衍生文件中是否包含Room相关的几何和属性条目。如果Manifest里完全没有Room的记录,说明转换过程未导出该元素,需回到源模型和参数再次排查。
5. 验证版本兼容性
Revit 2024属于较新版本,若以上步骤无效,可尝试将模型导出为Revit 2023版本后再进行转换,排除版本兼容性导致的问题。
内容的提问来源于stack exchange,提问作者Christiaan Kersic
相关产品推荐
相关产品推荐

