一、背景
小夥伴們在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獲取最新消息