访问 Area.Name 抛出错误

Accessing Area.Name Throws Error

我只是想找到一种方法来访问 Revit 中 Area 元素的名称 属性 Python Shell,尝试查看 Jeremy Tammik 内容丰富的博客,尝试过AUGI,Revit API 文档,已经找了 2 天了...

尝试通过多种方式访问​​,FilteredElementsCollector(doc).OfCategory(BuiltInCategory.OST_Areas),通过 Area class 尝试,通过 AreaTag 尝试,每次我在各种情况下都会出错这让我抓狂,这似乎是一个我似乎无法理解的简单问题!

编辑:还通过元素 ID、通过标签、通过区域方案进行了尝试,nada,不行...

谁能告诉我如何通过 RPS 访问此 属性?

为了回答我自己的问题,我实际上从未想过查看其他 Revit Python 脚本的代码...在 PyRevit 的这种情况下,我认为它比 RPS 更雄辩,非常期待完成他们的控制台工作!

基本上,我错误地使用了 GetParameter('parameter') 而不是 LookupParameter('parameter')。

正如我所说,这是一件简单到我无法理解的事情。

如果有人有足够的知识连贯地澄清这一点,请回答!

非常感谢!

也许您的问题与此相同? :

https://groups.google.com/forum/#!searchin/RevitPythonShell/name|sort:relevance/revitpythonshell/uaxB1FLXG80/sdJNrTfoPuUJ

Your_Area.Name # throws error

Element.Name.GetValue(Your_Area) # works great

我想说两件事:

areaObject.LookupParameter("Name")
areaObject.GetParameters("Name")

...是有效的方法。请注意我是如何使用 GetParameters() 而不是 GetParameter() 的。使用两者中的任何一个都有一些缺点。查找方法将 return 第一个匹配名称的参数,在许多情况下可能是不同元素的不同参数。这不是很可靠。

GetParameters() 方法将 return 它们全部,如果有多个,那么你必须处理一个 List<Parameter> 而不是你可以从中提取值的单个对象。

我个人建议使用 areaObject.get_Parameter(BuiltInParameter.ROOM_NAME) 方法从 Area 对象中提取 Name 值。 BuiltInParameter 始终指向相同的参数,并且可靠地 return 只是那个参数。以下是有关这些方法的更多详细信息: http://www.revitapidocs.com/2018/4400b9f8-3787-0947-5113-2522ff5e5de2.htm