访问Area.Name会引发错误

时间:2017-05-30 10:19:18

标签: revit-api revitpythonshell

我只是试图找到一种方法来访问Revit Python Shell中的Area元素的name属性,尝试查看Jeremy Tammik的内容丰富的博客,尝试了AUGI,Revit API文档,一直在寻找现在2天......

尝试通过一系列方式访问,FilteredElementsCollector(doc).OfCategory(BuiltInCategory.OST_Areas),尝试过Area类,尝试通过AreaTag,每次我在每种情况下都会出错并且它驱使我坚果,这似乎是一个我似乎无法掌握的简单问题!

编辑:还尝试了元素ID,通过标签,通过区域方案,nada,没有去...

有人可以告诉我如何通过RPS访问这个属性吗?

3 个答案:

答案 0 :(得分:1)

为了回答我自己的问题,我实际上从没想过要查看其他Revit Python脚本的代码......在这种PyRevit的情况下,我认为这比RPS更有说服力,raelly期待他们的控制台工作要做!

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

正如我所说,这是一件非常简单的事,我只是不明白。

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

非常感谢!

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

我会说两件事:

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

...是有效的方法。请注意我使用GetParameters() NOT GetParameter()的方式。使用两者中的任何一个都有一些缺点。 lookup方法将返回与名称匹配的FIRST参数,在许多情况下,该参数可能是不同元素的不同参数。它不太可靠。

如果有多个,

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

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