在使用 Revit API 并浏览“RevitAPI.chm”文件(以及浏览 Internet 上的示例)时,我注意到有些方法存在,但在“RevitAPI.chm”文件中既没有列出,也没有在使用 RevitPythonShell 时提出建议。
我解释。例如,假设我有一个“空间”对象,通过
s = FilteredElementCollector(doc).OfClass(SpatialElement).ToElements()
如果我这样做,让我们说(假设 s[0] 是一个有效的 Space 对象):
s[0].Geometry
我有一个“索引器对象”:
<indexer# object at 0x0000000000000049>
但如果我这样做:
s[0].get_Geometry(Options())
然后我得到了我的 GeometryElement 对象。例如,get_BoundingBox 也有同样的行为。
现在,这很好,但我可以了解这些 get_something 方法的唯一方法是查看示例(在“RevitAPI.chm”或论坛等上)。所以这有点奇怪,不是吗?从某种意义上说,这些方法实际上并未列出。
所以我想我的问题是:
- 这是正常行为吗?(或者我通常应该使用 s[0].Geometry 来获取 GeometryElement 对象吗?)
- 如果是,……为什么?:D
- 这些“索引器”是什么?
谢谢!阿尔诺。
PS:使用 Revit 2017,使用 RevitPythonShell 和 pyRevit 进行测试