public override List <ISelectionFilter> GetSelectionFilters()
        {
            var categories = new List <string>();
            var parameters = new List <string>();
            var views      = new List <string>();

            if (CurrentDoc != null)
            {
                //selectionCount = CurrentDoc.Selection.GetElementIds().Count();
                categories = ConnectorRevitUtils.GetCategoryNames(CurrentDoc.Document);
                parameters = ConnectorRevitUtils.GetParameterNames(CurrentDoc.Document);
                views      = ConnectorRevitUtils.GetViewNames(CurrentDoc.Document);
            }

            return(new List <ISelectionFilter>
            {
                new ListSelectionFilter {
                    Name = "Category", Icon = "Category", Values = categories
                },
                new ListSelectionFilter {
                    Name = "View", Icon = "RemoveRedEye", Values = views
                },
                new PropertySelectionFilter
                {
                    Name = "Parameter",
                    Icon = "FilterList",
                    HasCustomProperty = false,
                    Values = parameters,
                    Operators = new List <string> {
                        "equals", "contains", "is greater than", "is less than"
                    }
                }
            });
        }
예제 #2
0
        //TODO: store these string values in something more solid to avoid typos?
        public override List <ISelectionFilter> GetSelectionFilters()
        {
            var categories  = new List <string>();
            var parameters  = new List <string>();
            var views       = new List <string>();
            var projectInfo = new List <string> {
                "Project Info", "Levels", "Views 2D", "Views 3D", "Families & Types"
            };

            if (CurrentDoc != null)
            {
                //selectionCount = CurrentDoc.Selection.GetElementIds().Count();
                categories = ConnectorRevitUtils.GetCategoryNames(CurrentDoc.Document);
                parameters = ConnectorRevitUtils.GetParameterNames(CurrentDoc.Document);
                views      = ConnectorRevitUtils.GetViewNames(CurrentDoc.Document);
            }

            return(new List <ISelectionFilter>
            {
                new ListSelectionFilter {
                    Slug = "category", Name = "Cat", Icon = "Category", Values = categories, Description = "Adds all objects belonging to the selected categories"
                },
                new ListSelectionFilter {
                    Slug = "view", Name = "View", Icon = "RemoveRedEye", Values = views, Description = "Adds all objects visible in the selected views"
                },
                new ListSelectionFilter {
                    Slug = "project-info", Name = "P. Info", Icon = "Information", Values = projectInfo, Description = "Adds the selected project information such as levels, views and family names to the stream"
                },
                new PropertySelectionFilter
                {
                    Slug = "param",
                    Name = "Param",
                    Description = "Adds  all objects satisfying the selected parameter",
                    Icon = "FilterList",
                    HasCustomProperty = false,
                    Values = parameters,
                    Operators = new List <string> {
                        "equals", "contains", "is greater than", "is less than"
                    }
                },
                new AllSelectionFilter {
                    Slug = "all", Name = "All", Icon = "CubeScan", Description = "Selects all document objects and project information."
                }
            });
        }