如何获得房间边界的最长和最短边缘?

How to get the longest and the shorted edge of a room boundary?

在 Revit API 中,我试图获得房间边界的最长和最短边。 (房间是长方形)

现在,我有一个房间的 4 条边界的列表。(rb_curves)这些是曲线。我正在尝试按每条曲线​​的长度对这个列表进行排序。

sorted_rb_curves = sorted(rb_curves, key=?)

我想知道我可以将什么分配给 'key' 以便排序。

非常感谢您的帮助!

根据对象属性对列表进行排序的一种简单方法是使用 lambda。在你的情况下它将是:

rb_curves.sort(key=lambda x: x.Length)

其中 Length 是您排序所依据的属性。请注意,这会修改您的原始列表(而不是创建新的排序列表)

这意味着 rb_curves[0] 是最短的边界,rb_curves[-1] 是最长的。