首页 > 解决方案 > Revit Python 的 isinstance() 有问题

问题描述

我使用 if isinstance(ins,list): 来检查 . 但它返回 false 虽然 ins 是 List[Object]

def getname(ins):
    name=[]
    if isinstance(ins,list):
        for i in ins:
            name.append(i.Name)
    else:
        name.append(ins.Name)
    return name

Levels = FilteredElementCollector(doc).OfClass(Level).ToElements()
ULevels = UnwrapElement(Levels)
Levelsname = getname(ULevels)

错误信息是:

AttributeError:“列表[对象]”对象没有属性“名称”

标签: pythonrevit-api

解决方案


您可以在一行代码中执行此操作,如下所示:

[UnwrapElement(x).Name for x in FilteredElementCollector(doc).OfClass(Level).ToElements()]

因为我可以看到您正在使用 Dynamo,所以您也可以这样做:

在此处输入图像描述


推荐阅读