2017-05-30 56 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