当楼梯不是楼梯 class 时检索踏板深度

Retrieving tread depth when stairs not of Stairs class

我正在查看我从 2016 年升级到 2018 年的公开可用模型“210 King - Autodesk Toronto.rvt”(原始 2016 版 here)。当我 select 模型中的楼梯对象时,它在属性面板中有一个 "Actual Tread Depth"。

我想在 API 中访问此花纹深度。在 Revit 附带的示例项目中,楼梯为 class Autodesk.Revit.DB.Architecture.Stairs(派生自 Element),其中有一个 ActualTreadDepth 属性。但是在这个模型中,楼梯都是classElement的对象。将它们转换为 Stairs 会引发异常。

两个问题:

您可以直接在 Element class 上访问参数值。无需强制转换为 Stairs。这对参数访问没有任何影响。

如果您是 Revit 的新手 API,请看一看 getting started material。这将更深入地回答这个问题,以及许多其他问题。

您的 'why' 问题的答案恐怕会有很大帮助...历史原因、Revit BIM 范例、基础产品功能等等...通常有几种不同的方法在 Revit 中表示对象。正如您所指出的,Element 是 catch-all 基本情况。

如果您正在使用的模型是使用 Element 创建的代表楼梯,他们可能没有您正在寻找的 属性。在这种情况下,您可能不得不求助于其他方法来确定有用的值,例如(相当复杂的)几何分析。