예제 #1
0
        void LoadInfo(bool valFromWindowLoaded)
        {
            LibParameters    inSLibParameters = new LibParameters(_Doc);
            List <ElementId> vCatList         = CategoriesList();

            _RevitParameter = inSLibParameters.GetFilterByCategory(vCatList);
            _RevitParameter = _RevitParameter.GroupBy(p => p.Name).Select(x => x.First()).ToList();
            if (valFromWindowLoaded)
            {
                RevitParameters = new ObservableCollection <RevitParameter>(_RevitParameter.OrderBy(x => x.Name));
            }
            else
            {
                ListParameterRefresh(new ObservableCollection <RevitParameter>(_RevitParameter));
            }
        }
예제 #2
0
        void FilterParameter(string valFilter)
        {
            LibElement            vLibElement       = new LibElement(_Doc);
            LibParameters         inSLibParameters  = new LibParameters(_Doc);
            List <RevitParameter> vParamsList       = inSLibParameters.GetFilterByCategory(CategoriesList());
            RevitParameter        vPickedElement    = (RevitParameter)ListParameter.SelectedItem;
            List <RevitParameter> vCommonParameters = vParamsList.FindAll(p => p.Name.Equals(vPickedElement.Name));
            IList <Element>       vResult           = new List <Element>();

            foreach (RevitParameter vParam in vCommonParameters)
            {
                IList <Element> vList = vLibElement.GetBy(vParam, CategoriesList(), valFilter);
                if (null != vList)
                {
                    vResult = vResult.Concat(vList).ToList();
                }
            }

            ElementList = new ObservableCollection <Element>(vResult);
            ElementListView.ItemsSource = ElementList;
        }