def GetFirstWallTypeNamed(doc, name): bip = DB.BuiltInParameter.SYMBOL_NAME_PARAM provider = DB.ParameterValueProvider(ElementId(bip)) evaluator = DB.FilterStringEquals() rule = DB.FilterStringRule(provider, evaluator, name, False) filter = DB.ElementParameterFilter(rule) fec = FilteredElementCollector( doc).OfClass(DB.WallType) \ .WherePasses(filter) \ .FirstElement() return fec
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) param_filter = DB.ElementParameterFilter(value_rule) else: # value Strings """This param equality for this type is not available in any language, so we go for for loop""" valuestring = True try: target_parameter_value = ele.Parameter[target_parameter].AsValueString( ) # As value strings got converted to strings 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)