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

无公开3D视图的Revit模型如何从Model Derivative获取标高数据?

从Model Derivative数据中获取标高信息(规避Revit语言差异)

核心思路:用Revit内置参数ID/内部名称定位标高属性

Revit的参数具备语言无关的内置ID和内部名称,不管UI是中文还是英文,这些标识始终保持一致,这是解决属性键不一致问题的关键:

  • 标高关联参数的内置ID为 20011(对应Revit API中的BuiltInParameter.LEVEL_PARAM)
  • 该参数的内部名称为 LEVEL_PARAM

具体操作步骤

  1. 获取带内置参数ID的元素属性
    调用Model Derivative的属性接口时,添加参数确保拿到完整的参数元数据:
GET https://developer.api.autodesk.com/modelderivative/v2/designdata/{urn}/metadata/{guid}/properties?forceget=true&includeParamId=true

其中includeParamId=true会返回每个属性的paramId字段,forceget=true确保获取最新的属性数据。

  1. 遍历元素,匹配标高属性
    遍历返回的元素数据,找到paramId为20011(或internalName为LEVEL_PARAM)的属性,其value字段就是该元素所属标高的唯一标识(通常是标高的ID或名称)。

  2. 获取标高自身的详细信息
    若需要标高的具体参数(比如标高值),可以:

  • 通过元素的parent字段找到所属标高元素的ID,单独查询该元素的属性
  • 或者直接筛选所有category.id为-2000003(Revit标高类别的内置ID)的元素,这些就是模型中的所有标高,它们的属性里包含标高的高度值等信息。

示例代码片段(伪代码)

// 假设已获取到元素属性列表
const groupByLevel = {};
elements.forEach(element => {
  const levelParam = element.properties.find(p => p.paramId === "20011");
  if (levelParam) {
    const levelKey = levelParam.value;
    groupByLevel[levelKey] = groupByLevel[levelKey] || [];
    groupByLevel[levelKey].push(element);
  }
});

内容的提问来源于stack exchange,提问作者Duc Trung Tran

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 10:32:58