def GetFirstTextNoteUsingType(doc, texttype): bip = DB.BuiltInParameter.ELEM_TYPE_PARAM provider = DB.ParameterValueProvider(ElementId(bip)) evaluator = DB.FilterNumericEquals() rule = DB.FilterElementIdRule(provider, evaluator, texttype.Id) filter = DB.ElementParameterFilter(rule) fec = DB.FilteredElementCollector(doc, draftview.Id).OfClass(FilledRegion) \ .WherePasses( filter ) \ .FirstElement() return fec
def GetFirstWallUsingType(doc, walltype): bip = DB.BuiltInParameter.ELEM_TYPE_PARAM provider = DB.ParameterValueProvider(ElementId(bip)) evaluator = DB.FilterNumericEquals() rule = DB.FilterElementIdRule(provider, evaluator, walltype.Id) filter = DB.ElementParameterFilter(rule) fec = DB.FilteredElementCollector(doc).OfClass(Wall) \ .WherePasses( filter ) \ .FirstElement() return fec
def GetFirstDetailLineUsingType(doc, type, bip): bip = DB.BuiltInParameter.ELEM_TYPE_PARAM provider = DB.ParameterValueProvider(ElementId(bip)) evaluator = DB.FilterNumericEquals() rule = DB.FilterElementIdRule(provider, evaluator, type.Id) filter = DB.ElementParameterFilter(rule) fec = DB.FilteredElementCollector(doc).OfCategory(DB.BuiltInCategory.OST_Lines) \ .WherePasses( filter ) \ .FirstElement() return fec
except: forms.alert("Parameter {0} not found in {1}".format( selected_switch_parameter, category_name), exitscript=True) decode_valuestring(target_parameter_value, target_category, target_parameter) else: try: target_parameter_value = ele.Parameter[target_parameter].AsDouble() except: forms.alert("Parameter {0} not found in {1}".format( selected_switch_parameter, category_name), exitscript=True) param_id = DB.ElementId(target_parameter) param_prov = DB.ParameterValueProvider(param_id) param_equality = DB.FilterNumericEquals() # equality class for double value_rule = DB.FilterDoubleRule(param_prov, param_equality, target_parameter_value, 1e-3) param_filter = DB.ElementParameterFilter(value_rule) elif selected_switch_parameter in ["Mark", "Comments"]: # string values try: target_parameter_value = ele.Parameter[target_parameter].AsString() except: forms.alert("Parameter {0} not found in {1}".format( selected_switch_parameter, category_name), exitscript=True) param_id = DB.ElementId(target_parameter) param_prov = DB.ParameterValueProvider(param_id) param_equality = DB.FilterStringEquals() # equality class for string value_rule = DB.FilterStringRule(param_prov, param_equality, target_parameter_value, True)
from pyrevit.coreutils import Timer timer = Timer() # ------------------------------------------------------------------------------ import Autodesk.Revit.DB as DB doc = __revit__.ActiveUIDocument.Document uidoc = __revit__.ActiveUIDocument height_param_id = DB.ElementId(DB.BuiltInParameter.WALL_USER_HEIGHT_PARAM) height_param_prov = DB.ParameterValueProvider(height_param_id) param_equality = DB.FilterNumericEquals() heigh_value_rule = DB.FilterDoubleRule(height_param_prov, param_equality, 10.0, 1E-6) param_filter = DB.ElementParameterFilter(heigh_value_rule) walls = DB.FilteredElementCollector(doc) \ .WherePasses(param_filter) \ .ToElementIds() uidoc.Selection.SetElementIds(walls)