You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Autodesk Forge API属性查询接口获取Revit标准类别?

解决Autodesk Forge属性查询接口无法获取Standard Revit Category的问题

问题分析

你基于Autodesk Forge属性查询接口开发API端点时,遇到了无法获取Standard Revit Category(如“Revit Wall”)的问题:

  • 基础参数(objectid、name、externalId等)可正常查询,自定义参数需指定精确路径(支持通配符)
  • 该类别值在模型中可见,但Viewer选中元素时不显示,且无论在fields数组传入什么路径(包括__category__)都无法通过API获取

解决方案

1. 直接查询顶级category字段

Standard Revit Category属于系统级元数据,并不在properties嵌套结构中,而是作为元素的顶级字段存在。直接在fields数组中添加category即可获取:

"fields": [
    "objectid",
    "name",
    "externalId",
    "category"
]

2. 结合模型元数据获取可读类别名称

属性查询返回的category字段是类别的GUID,若需要“Revit Wall”这类可读名称,需结合模型元数据接口:

  1. 调用GET /metadata/{urn}接口,获取模型中所有类别的guid与name映射关系
  2. 将属性查询结果中的category GUID与映射表匹配,即可得到对应的可读类别名称

3. 检查接口参数配置

确保属性查询请求的include参数包含category(默认可能仅返回properties),示例请求参数:

{
    "filter": {...},
    "fields": ["objectid", "name", "category"],
    "include": ["properties", "category"]
}

验证示例

属性查询返回的元素数据片段:

{
    "objectid": 123,
    "name": "Exterior Wall",
    "category": "a1b2c3d4-5678-90ef-ghij-klmnopqrstuv",
    "properties": {
        "Analytical Properties": {
            "Material": "Concrete"
        }
    }
}

通过元数据接口获取的类别映射:

{
    "guid": "a1b2c3d4-5678-90ef-ghij-klmnopqrstuv",
    "name": "Revit Wall",
    "children": []
}

两者匹配后即可得到目标类别名称。

内容的提问来源于stack exchange,提问作者Manuel Gasteiger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 15:15:03