예제 #1
0
        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);
        }