2017-05-30 72 views
1

我只是想找到一种方法来访问Revit Python Shell内的Area元素的名称属性,尝试查看Jeremy Tammik的令人惊讶的信息博客,尝试AUGI,Revit API文档,一直在寻找现在为期2天...访问Area.Name引发错误

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

编辑:另外通过元素的id试图通过标签,通过区域方案,虚无缥缈,没有去...

谁能告诉我如何通过RPS访问此物业?

非常感谢提前!

+0

谢谢你的赞赏! :-) –

回答

1

我想说两点:

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

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

GetParameters()如果有多个方法会返回全部数据,那么您必须处理一个List<Parameter>而不是一个可以从中提取数值的单个对象。

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

1

为了回答我自己的问题,我从来没有想过通过其他Revit Python脚本的代码进行浏览......在这种情况下,PyRevit在我看来比RPS更有说服力,他们期待着控制台工作要完成!

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

正如我所说,这是愚蠢的简单,我只是不明白。

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

非常感谢!

+0

小心点标记答案?谢谢! – konrad

+0

感谢您的留言,一直很忙我忘了我甚至发布了这个问题,我的歉意! – TeaNotes

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 
+0

我不知道这个问题是否与这篇文章有关, https://groups.google.com/forum/#!topic/RevitPythonShell/7ImzPRR9K3o 我试图在IronPython代码中关注一个变量名为ShowCls [https:// github。com/IronLanguages/main/search?utf8 =%E2%9C%93&q = showcls&type =],但我没有足够的时间和知识去进一步 – PRMoureu