I have a series of functions in a module which are starting to become quite repetitive. Each function extracts a list, and has an optional boolean argument to sort the list before returning it. Feels like there ought to be a way to inherit the sorting from a parent function?
def get_electrical_equipment(sort_by_name = False):
elements = DB.FilteredElementCollector(revit.doc)\
.OfCategory(DB.BuiltInCategory.OST_ElectricalEquipment)\
.WhereElementIsNotElementType()\
.ToElements()
if sort_by_name: elements.sort(key=lambda x: x.Name)
return elements
def get_panel_schedules(sort_by_name = False):
elements = DB.FilteredElementCollector(revit.doc)\
.WherePasses(DB.ElementClassFilter(DB.Electrical.PanelScheduleView))\
.WhereElementIsNotElementType()\
.ToElements()
if sort_by_name: elements.sort(key=lambda x: x.Name)
return elements
def get_panel_schedule_sheet_instances(sort_by_name = False):
elements = DB.FilteredElementCollector(revit.doc)\
.OfClass(DB.Electrical.PanelScheduleSheetInstance)\
.ToElements()
if sort_by_name: elements.sort(key=lambda x: x.Name)
return elements