public static Autodesk.Revit.DB.FilterRule GetStringRule(ElementId paramId, CriteriaName selectedCriteria, string ruleValue) { Autodesk.Revit.DB.FilterRule rule = null; try { switch (selectedCriteria) { case CriteriaName.beginswith: rule = ParameterFilterRuleFactory.CreateBeginsWithRule(paramId, ruleValue, false); break; case CriteriaName.contains: rule = ParameterFilterRuleFactory.CreateContainsRule(paramId, ruleValue, false); break; case CriteriaName.endswith: rule = ParameterFilterRuleFactory.CreateEndsWithRule(paramId, ruleValue, false); break; case CriteriaName.equals: rule = ParameterFilterRuleFactory.CreateEqualsRule(paramId, ruleValue, false); break; case CriteriaName.isgreaterthan: rule = ParameterFilterRuleFactory.CreateGreaterRule(paramId, ruleValue, false); break; case CriteriaName.isgreaterthanorequalto: rule = ParameterFilterRuleFactory.CreateGreaterOrEqualRule(paramId, ruleValue, false); break; case CriteriaName.islessthan: rule = ParameterFilterRuleFactory.CreateLessRule(paramId, ruleValue, false); break; case CriteriaName.islessthanorequalto: rule = ParameterFilterRuleFactory.CreateLessOrEqualRule(paramId, ruleValue, false); break; case CriteriaName.doesnotbeginwith: rule = ParameterFilterRuleFactory.CreateNotBeginsWithRule(paramId, ruleValue, false); break; case CriteriaName.doesnotcontain: rule = ParameterFilterRuleFactory.CreateNotContainsRule(paramId, ruleValue, false); break; case CriteriaName.doesnotendwith: rule = ParameterFilterRuleFactory.CreateNotEndsWithRule(paramId, ruleValue, false); break; case CriteriaName.doesnotequal: rule = ParameterFilterRuleFactory.CreateNotEqualsRule(paramId, ruleValue, false); break; } } catch (Exception ex) { System.Windows.MessageBox.Show("Failed to get string filter rule.\n" + ex.Message, "Get String Filter Rule", MessageBoxButton.OK, MessageBoxImage.Warning); } return(rule); }