如何在Dynamo(PythonScript)中獲取族類型名稱(AttributeError: Name錯誤解決方案)

一、背景

小夥伴們在PythonScript中,想通過Name屬性去獲取比如WallType的名稱時,會遇到這個錯誤

警告:IronPythonEvaluator.EvaluateIronPythonScript 操作失敗。
Traceback (most recent call last):
File "<string>", line 30, in <module>
AttributeError: Name

二、解決思路

源程序:

import clr
clr.AddReference('System')
from System.Collections.Generic import List
#導入Dynamo中封裝後的Revit節點
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
# 導入Revit原生API
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *
#  導入Revit原生文檔管理器
clr.AddReference("RevitServices")
from RevitServices.Persistence import DocumentManager
#  一.獲取當前文檔
doc = DocumentManager.Instance.CurrentDBDocument
uidoc = DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
#  二.獲取某種族類別下的所有族類型
result = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Walls).OfClass(WallType).ToElements()
#  三.比如獲取第一個WallType元素
familyType=result[0]
#  四.嘗試獲取WallType名稱
OUT=result[1].Name

然後我們發現這個時候就會出現上面的錯誤

AttributeError: Name

那麼如何解決呢?這個時候,對於WallType(族類型)名稱的獲取,這裏很特殊,我們可以使用

familyType.get_Parameter(BuiltInParameter.ALL_MODEL_TYPE_NAME).AsString()

來解決這個問題。修改後的代碼如下所示:

import clr
clr.AddReference('System')
from System.Collections.Generic import List
#導入Dynamo中封裝後的Revit節點
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
# 導入Revit原生API
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *
#  導入Revit原生文檔管理器
clr.AddReference("RevitServices")
from RevitServices.Persistence import DocumentManager
#  一.獲取當前文檔
doc = DocumentManager.Instance.CurrentDBDocument
uidoc = DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
#  二.獲取某種族類別下的所有族類型
result = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Walls).OfClass(WallType).ToElements()
#  三.比如獲取第一個WallType元素
familyType=result[0]
#  四.嘗試獲取WallType名稱
familyTypeName=familyType.get_Parameter(BuiltInParameter.ALL_MODEL_TYPE_NAME).AsString()
OUT=familyTypeName

正常顯示結果如下
在這裏插入圖片描述

三、注意事項

1.我是黑夜の騎士,歡迎大家關注我的博客,筆者將持續輸出revit二次開發以及編程乾貨
2.歡迎加入BIM行業開發交流1羣,獲取更多開發資料 羣號:711844216
3.博主的面向工程人員的Dynamo之Python開發教學視頻正在準備中,進Q羣711844216獲取最新消息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章