首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >'List[Element]‘对象没有属性'Name’

'List[Element]‘对象没有属性'Name’
EN

Stack Overflow用户
提问于 2019-04-17 11:58:09
回答 2查看 822关注 0票数 0

我有两个问题

  1. 级别列表不包含名称或其他参数,因此此错误开始于我正在收集的每个元素。

  1. Urinals.Symbol.FamilyName("Type Comments").AsString() == "Urinal"):没有用
代码语言:javascript
复制
from pyrevit.output import charts
from pyrevit import script
from pyrevit import revit, DB
from Autodesk.Revit.DB import FilteredElementCollector, BuiltInCategory
__context__ = 'zerodoc'

from System.Collections.Generic import List
doc = __revit__.ActiveUIDocument.Document
uidoc = __revit__.ActiveUIDocument

from rpw import db, ui, doc
from pyrevit.framework import List
from pyrevit import revit, DB
room_filter = "WORK"


import rpw
from rpw import doc, uidoc, DB

# GET ALL ROOMS IN MODEL
rooms = DB.FilteredElementCollector(doc).OfCategory(DB.BuiltInCategory.OST_Rooms)
Urinals = DB.FilteredElementCollector(doc).OfCategory(DB.BuiltInCategory.OST_PlumbingFixtures).WhereElementIsNotElementType().ToElements()
ub_count = 0
MRest_rooms = []
WRest_rooms = []
ADARest_rooms = []
Urinal_count = 0

#for u in Urinals:
#   if (Urinals.Symbol.FamilyName("Type Comments").AsString() == "Urinal"):
#    Urinal_count +=1
for r in rooms:
    if (r.Level.Name != 'CONTAINER LEVEL') and (r.LookupParameter("Name").AsString() == "M RESTROOM"):
        MRest_rooms.append(r)
    if (r.Level.Name != 'CONTAINER LEVEL') and (r.LookupParameter("Name").AsString() == "W RESTROOM"):
        WRest_rooms.append(r)

print "Number of Male Rest Room =",len(MRest_rooms)
print "Number of Female Rest Room =", len(WRest_rooms)

Level = DB.FilteredElementCollector(doc).OfCategory(DB.BuiltInCategory.OST_Levels).WhereElementIsNotElementType().ToElements()
print "Number of Level =",len(Level)
for i in Level:
 a = Level.Name
 print a
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-05 16:39:02

您的错误是这一行:

代码语言:javascript
复制
Level = DB.FilteredElementCollector(doc).OfCategory(DB.BuiltInCategory.OST_Levels).WhereElementIsNotElementType().ToElements()
print "Number of Level =",len(Level)
for i in Level:
 a = Level.Name
 print a

它应该是:

代码语言:javascript
复制
Level = DB.FilteredElementCollector(doc).OfCategory(DB.BuiltInCategory.OST_Levels).WhereElementIsNotElementType().ToElements()
print "Number of Level =",len(Level)
for i in Level:
 a = i.Name
 print a

for循环中,您称为Level.Name,其中Level实际上是一个级别列表。因此出现了例外。

注释掉的代码也有相同的问题:

代码语言:javascript
复制
for u in Urinals:
   if (Urinals.Symbol.FamilyName("Type Comments").AsString() == "Urinal"):
    Urinal_count +=1

代之以:

代码语言:javascript
复制
for u in Urinals:
   if (u.Symbol.FamilyName("Type Comments").AsString() == "Urinal"):
    Urinal_count +=1
票数 0
EN

Stack Overflow用户

发布于 2019-04-17 18:03:18

在调试器中查看它,您将自己看到。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55727077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档