关于Model Derivative API无法获取Revit模型房间数据的咨询
问题描述
- 通过Model Derivative API转换Revit模型的2D平面图后,Forge Viewer中可选中房间并查看其属性,但调用API获取对象树或元数据时,找不到房间对象及对应参数数据。
- 已执行操作:
- 转换Revit平面图并在Viewer中确认房间数据存在;
- 调用对象树/元数据接口未检索到房间对象;
- 了解到需生成主视图的说明,但不理解未生成主视图仍能在Viewer中访问房间数据的原因。
解决方案
空间元素的默认处理逻辑
房间属于Revit中的空间类元素,Model Derivative API默认的对象树和元数据接口仅返回实体类对象(如墙、门),空间元素不会被主动枚举。而Forge Viewer能显示房间属性,是因为房间数据被嵌入到了2D视图的衍生文件中,Viewer直接读取了这些嵌入数据,无需依赖API的元数据索引。转换时的配置调整
要让API能返回房间数据,转换模型时需在请求payload中添加advanced参数,明确指定包含空间元素并生成主视图:
{ "input": { "urn": "your-model-urn" }, "output": { "formats": [ { "type": "svf", "views": ["2d"], "advanced": { "generateMasterViews": true, "includeSpatialElements": true } } ] } }
includeSpatialElements: 强制转换引擎包含房间、空间等空间类元素;generateMasterViews: 生成主视图索引,让API能正确枚举所有对象(包括空间元素)。
- 正确获取房间数据的API调用
转换完成后,调用GET /modelderivative/v2/designdata/{urn}/metadata/{master-view-guid}/properties接口,通过主视图的GUID查询元数据,即可获取到房间对象及其参数数据。
内容的提问来源于stack exchange,提问作者joshmoore2911
相关产品推荐
相关产品推荐

