public bool ApplyFilters(Document doc, View v, ElementId fillPatternId, bool colorLines, bool colorFill) { for (int i = 0; i < valuesList.Count; i++) { MyParameter mp = valuesList[i]; Parameter param = mp.RevitParameter; string filterName = _filterNamePrefix + catsName + " " + paramName; if (_criteriaType == CriteriaType.Equals) { filterName = filterName + " равно "; } else if (_criteriaType == CriteriaType.StartsWith) { filterName = filterName + " нач.с "; } filterName += mp.AsValueString(); ParameterFilterElement filter = FilterCreator.createSimpleFilter(doc, catsIds, filterName, mp, _criteriaType); if (filter == null) { continue; } ViewUtils.ApplyViewFilter(doc, v, filter, fillPatternId, i, colorLines, colorFill); } return(true); }
public bool ApplyFilters(Document doc, View v, ElementId fillPatternId, bool colorLines, bool colorFill) { Debug.WriteLine("Start apply rebar filters for view: " + v.Name); for (int i = 0; i < values.Count; i++) { string val = values[i]; Debug.WriteLine("Value: " + val); ParameterFilterElement filterConstr = FilterCreator.CreateConstrFilter(doc, catIdConstructions, markParam, val, _filterNamePrefix); ViewUtils.ApplyViewFilter(doc, v, filterConstr, fillPatternId, i, colorLines, colorFill); if (!_rebarIsFamilyParamExists) { ParameterFilterElement filterRebarSingleMode = FilterCreator .CreateRebarHostFilter(doc, catIdRebar, rebarIsFamilyParam, rebarHostParam, rebarMrkParam, val, _filterNamePrefix, RebarFilterMode.SingleMode); ViewUtils.ApplyViewFilter(doc, v, filterRebarSingleMode, fillPatternId, i, colorLines, colorFill); continue; } #if R2017 || R2018 ParameterFilterElement filterRebarStandardRebar = FilterCreator .CreateRebarHostFilter(doc, catIdRebar, rebarIsFamilyParam, rebarHostParam, rebarMrkParam, val, _filterNamePrefix, RebarFilterMode.StandardRebarMode); ViewUtils.ApplyViewFilter(doc, v, filterRebarStandardRebar, fillPatternId, i, colorLines, colorFill); Debug.WriteLine("Filter created and applied to view: " + filterRebarStandardRebar.Name); ParameterFilterElement filterRebarIfcRebar = FilterCreator .CreateRebarHostFilter(doc, new List <ElementId> { new ElementId(BuiltInCategory.OST_Rebar) }, rebarIsFamilyParam, rebarHostParam, rebarMrkParam, val, _filterNamePrefix, RebarFilterMode.IfcMode); ViewUtils.ApplyViewFilter(doc, v, filterRebarIfcRebar, fillPatternId, i, colorLines, colorFill); Debug.WriteLine("Filter created and applied to view: " + filterRebarIfcRebar.Name); #else ParameterFilterElement filterRebarOrStyle = FilterCreator .CreateRebarHostFilter(doc, catIdRebar, rebarIsFamilyParam, rebarHostParam, rebarMrkParam, val, _filterNamePrefix, RebarFilterMode.DoubleMode); ViewUtils.ApplyViewFilter(doc, v, filterRebarOrStyle, fillPatternId, i, colorLines, colorFill); Debug.WriteLine("Filter created and applied to view: " + filterRebarOrStyle.Name); #endif } Debug.WriteLine("All filters applied"); return(true); }