Revit API:'Hidden' 方法?

Revit API: 'Hidden' methods?

在使用 Revit API 并浏览 "RevitAPI.chm" 文件(以及浏览 Internet 上的示例)时,我注意到有些方法存在但未在 "RevitAPI.chm" 中列出使用 RevitPythonShell 时也不建议文件。

我解释一下。比方说,我有一个 "Space" 对象,通过

获得
s = FilteredElementCollector(doc).OfClass(SpatialElement).ToElements()

如果我这样做,假设(假设 s[0] 是一个有效的 Space 对象):

s[0].Geometry

我得到了一个 'indexer object':

<indexer# object at 0x0000000000000049>

但是 如果我这样做:

s[0].get_Geometry(Options())

然后我得到了我的 GeometryElement 对象。例如,get_BoundingBox 也有相同的行为。

现在,这很好,但我了解这些 get_something 方法的唯一方法是查看示例(在 "RevitAPI.chm" 或论坛等上)。所以这有点奇怪,不是吗?从某种意义上说,这些方法实际上并未列出。

所以我想我的问题是:

谢谢! 阿诺.

PS:使用 Revit 2017,使用 RevitPythonShell 和 pyRevit 进行测试

以小写 get_ 为前缀的方法是自动生成的 getter 方法。官方 Revit API 在 Element class 上提供并记录了 BoundingBox 属性。相当不优雅的是,这个所谓的 属性 接受了一个争论。因此,C# .NET 实现为其生成了一个 属性 getter 函数。