public IList <Element> GetBy(RevitParameter valRevitParameter, List <ElementId> valCategoryElementId, string valValue) { IList <Element> vResult = new List <Element>(); bool vIsParse = false; double vData = 0; string vValueToString = valValue; if (!StringClasses.lstNames().Contains(valRevitParameter.Name)) { if (IsParsed(valValue, out vData)) { valValue = vData.ToString(); vIsParse = true; } } LibNumeric insLibNumeric = new LibNumeric(); if (insLibNumeric.IsDouble(valValue) && !StringClasses.lstNames().Contains(valRevitParameter.Name)) { vResult = GetElementValueDouble(valRevitParameter, valCategoryElementId, valValue); if (vResult.Count == 0) { if (vIsParse) { vResult = GetElementValueDoubleLessOrEqual(valRevitParameter, valCategoryElementId, valValue, vValueToString); if (vResult.Count == 0) { vResult = GetElementValueDoubleGreaterOrEqual(valRevitParameter, valCategoryElementId, valValue, vValueToString); } if (vResult.Count == 0) { vResult = GetElementValueIntOrstring(valRevitParameter, valCategoryElementId, valValue); if (vResult.Count <= 0) { vResult = FindByInternalValue(valRevitParameter, valCategoryElementId, valValue); } } } } } else { vResult = GetElementValueIntOrstring(valRevitParameter, valCategoryElementId, valValue); if (vResult.Count <= 0) { vResult = FindByInternalValue(valRevitParameter, valCategoryElementId, valValue); } } return(vResult); }
private IList <Element> FindByInternalValue(RevitParameter valRevitParameter, List <ElementId> valCategoryElementId, string valValue) { LibNumeric vLibNumeric = new LibNumeric(); List <Element> vResult = new List <Element>(); IList <string> vInternalValues = GetInternalValue(valValue); foreach (var vInternalValue in vInternalValues) { if (vLibNumeric.IsDouble(vInternalValue)) { IList <Element> vSearchResult = GetElementValueDouble(valRevitParameter, valCategoryElementId, vInternalValue); vResult = vResult.Concat(vSearchResult).ToList(); } } return(vResult); }
public IList <Element> GetElementValueDoubleGreaterOrEqual(RevitParameter valRevitParameter, List <ElementId> valCategoryElementId, string valValue, string valValueToString) { IList <Element> vResult = new List <Element>(); IList <Element> vResultTemp = new List <Element>(); foreach (var vCategoryId in valCategoryElementId) { BuiltInCategory vBuiltInCategory = (BuiltInCategory)vCategoryId.IntegerValue; ParameterValueProvider vPovider = new ParameterValueProvider(valRevitParameter.ElementId); string vRulestring = valValue; FilteredElementCollector vCollector = new FilteredElementCollector(_Doc); vCollector.OfCategory(vBuiltInCategory); LibNumeric insLibNumeric = new LibNumeric(); double ruleValDb = 0.0; if (insLibNumeric.IsDouble(valValue)) { Double vNum = 0; Double.TryParse(valValue, out vNum); ruleValDb = vNum + 0.001; } ParameterValueProvider pvp = new ParameterValueProvider(valRevitParameter.ElementId); FilterNumericGreaterOrEqual fnrv = new FilterNumericGreaterOrEqual(); var vFilterDoubleRule = new FilterDoubleRule(pvp, fnrv, ruleValDb, 10e-10); var epf = new ElementParameterFilter(vFilterDoubleRule); vCollector.WherePasses(epf); IList <Element> vElements = vCollector.ToElements(); if (vElements != null) { if (vElements.Count > 0) { vResultTemp = vElements.Concat(vElements).ToList(); } } } vResult = GetElementValueToString(valRevitParameter, vResultTemp, valValueToString, valValue); return(vResult); }