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" } } }); }
//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." } }); }