Exemplo n.º 1
0
        public static Element FindPanelSchedule(Document doc, string fieldName, string value)
        {
            var rule   = ParameterFilterRuleFactory.CreateContainsRule(new ElementId(BuiltInParameter.PANEL_SCHEDULE_NAME), value, false);
            var filter = new ElementParameterFilter(rule);


            var items = new FilteredElementCollector(doc)
                        .OfCategory(BuiltInCategory.OST_ElectricalEquipment)
                        .ToElements()
                        .Where(e => e.Name.ToLower().Equals(value.ToLower()))
                        .ToArray();

            //foreach (var e in items)
            //{
            //    var name = e.LookupParameter("Panel Schedule Name");
            //    var panelNameParameter = e.GetOrderedParameters().FirstOrDefault(p => p.Definition.Name.Equals("Panel Schedule Name"));
            //}

            //var items = new FilteredElementCollector(doc)
            //    .OfCategory(BuiltInCategory.OST_ElectricalEquipment)
            //    .WherePasses(filter)
            //    .ToElements();

            return(FilterElements(items, value, fieldName));
        }
Exemplo n.º 2
0
        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
            // get UIdocument
            UIDocument uidoc = commandData.Application.ActiveUIDocument;
            //get document
            Document doc = uidoc.Document;

            //create filter
            List <ElementId> cats = new List <ElementId>();

            cats.Add(new ElementId(BuiltInCategory.OST_Sections));

            ElementParameterFilter filter = new ElementParameterFilter(ParameterFilterRuleFactory.CreateContainsRule(new ElementId(BuiltInParameter.VIEW_NAME), "wip", false));

            try
            {
                using (Transaction trans = new Transaction(doc, "create plan view"))
                {
                    trans.Start();
                    //apply filter
                    ParameterFilterElement filterElement = ParameterFilterElement.Create(doc, "My First Filter", cats, filter);
                    doc.ActiveView.AddFilter(filterElement.Id);
                    doc.ActiveView.SetFilterVisibility(filterElement.Id, false);
                    trans.Commit();
                }

                return(Result.Succeeded);
            }
            catch (Exception e)
            {
                message = e.Message;
                return(Result.Failed);
            }
        }
Exemplo n.º 3
0
        public void CreateFilterRule3dGrid(Document doc, out ParameterFilterElement parameterFilterElement)
        {
            if (CheckFilter(doc, out parameterFilterElement))
            {
            }
            else
            {
                List <ElementId> categories = new List <ElementId>();
                categories.Add(new ElementId(BuiltInCategory.OST_GenericModel));
                List <FilterRule> filterRules = new List <FilterRule>();
                // Create filter element assocated to the input categories
                parameterFilterElement = ParameterFilterElement.Create(doc, "Grid 3D", categories);
                var            collector      = (from x in new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_GenericModel).OfClass(typeof(FamilyInstance)).Cast <FamilyInstance>() where x.Name.Contains("650mm Bubble - Single") select x).ToList();
                FamilyInstance familyInstance = collector.First();

                if (familyInstance != null)
                {
                    ElementId sharedParamId = familyInstance.get_Parameter(BuiltInParameter.ALL_MODEL_FAMILY_NAME).Id;

                    filterRules.Add(ParameterFilterRuleFactory.CreateContainsRule(sharedParamId, "3D Grid", true));
                }

                parameterFilterElement.SetRules(filterRules);
                // Apply filter to view
                //doc.ActiveView.AddFilter(parameterFilterElement.Id);
                //doc.ActiveView.SetFilterVisibility(parameterFilterElement.Id, false);
            }
        }
Exemplo n.º 4
0
        private static FilterRule CreateRule(ElementId ParameterId, string Function, string Value)
        {
            switch (Function)
            {
            case "Равно":
                return(ParameterFilterRuleFactory.CreateEqualsRule(ParameterId, Value, true));

            case "Не равно":
                return(ParameterFilterRuleFactory.CreateNotEqualsRule(ParameterId, Value, true));

            case "Больше":
                return(ParameterFilterRuleFactory.CreateGreaterRule(ParameterId, Value, true));

            case "Больше или равно":
                return(ParameterFilterRuleFactory.CreateLessOrEqualRule(ParameterId, Value, true));

            case "Меньше":
                return(ParameterFilterRuleFactory.CreateLessRule(ParameterId, Value, true));

            case "Меньше или равно":
                return(ParameterFilterRuleFactory.CreateLessOrEqualRule(ParameterId, Value, true));

            case "Содержит":
                return(ParameterFilterRuleFactory.CreateContainsRule(ParameterId, Value, true));

            case "Не содержит":
                return(ParameterFilterRuleFactory.CreateNotContainsRule(ParameterId, Value, true));

            case "Начинается с":
                return(ParameterFilterRuleFactory.CreateBeginsWithRule(ParameterId, Value, true));

            case "Не начинается с":
                return(ParameterFilterRuleFactory.CreateNotBeginsWithRule(ParameterId, Value, true));

            case "Заканчивается на":
                return(ParameterFilterRuleFactory.CreateEndsWithRule(ParameterId, Value, true));

            case "Не заканчивается на":
                return(ParameterFilterRuleFactory.CreateNotEndsWithRule(ParameterId, Value, true));

            case "Поддерживает":
                return(ParameterFilterRuleFactory.CreateSharedParameterApplicableRule(Value));

            default:
                return(null);
            }
        }
        protected override Result ProcessCommand(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
            // Create Category
            var cats = new List <ElementId>();

            cats.Add(new ElementId(BuiltInCategory.OST_Sections));
            var sectionFilter = ParameterFilterRuleFactory.CreateContainsRule(new ElementId(BuiltInParameter.VIEW_NAME), "Section 1", false);
            var elementFilter = new ElementParameterFilter(sectionFilter);

            using (Transaction trans = new Transaction(_activeDocument, "Create Filter"))
            {
                trans.Start();

                var filter = ParameterFilterElement.Create(_activeDocument, "Wall Filter", cats, elementFilter);
                _activeDocument.ActiveView.AddFilter(filter.Id);
                _activeDocument.ActiveView.SetFilterVisibility(filter.Id, false);
                trans.Commit();
            }
            return(Result.Succeeded);
        }
Exemplo n.º 6
0
        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);
        }