【问题标题】:Revit API: 'Hidden' methods?Revit API:“隐藏”方法?
【发布时间】:2017-10-31 03:20:59
【问题描述】:

在使用 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 进行测试

【问题讨论】:

    标签: revitpythonshell pyrevit


    【解决方案1】:

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

    【讨论】:

    • 谢谢你,杰里米。
    猜你喜欢
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    • 2014-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多