Besides those important parameters, built-in or custom, project or family, modifiable or read-only, Revit also has many categories, which can be categorized or grouped further based on different criteria or purposes.
In this post, let’s categorize Revit Categories based on the IsTagCategory criteria that the Category object itself carries on.
public static Dictionary<string, List<Category>> CategorizeCategories7(RvtDocument doc)
{
string tempFile = @"c:\temp\CategorizedCategories7.txt";
Dictionary<string, List<Category>> ret = new Dictionary<string, List<Category>>();
ret.Add("IsTagCategory", new List<Category>());
ret.Add("NOT IsTagCategory", new List<Category>());
try
{
foreach (Category c in doc.Settings.Categories)
{
if (c.Id.IntegerValue != (int)BuiltInCategory.INVALID)
{
if (c.IsTagCategory == true)
ret.First().Value.Add(c);
else
ret.Last().Value.Add(c);
}
}
List<Category> sorted = ret.First().Value.OrderBy(f => f.Name).ToList();
ret.First().Value.Clear();
ret.First().Value.AddRange(sorted);
using (StreamWriter sw = new StreamWriter(tempFile))
{
foreach (KeyValuePair<string, List<Category>> kvp in ret)
{
sw.WriteLine(kvp.Key.ToString());
foreach (Category c in kvp.Value)
{
sw.WriteLine(string.Format("\t{0}", c.Name));
}
}
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.ToString());
}
return ret;
}
The output may be as follows:
IsTagCategory
Air Terminal Tags
Analytical Beam Tags
Analytical Brace Tags
Analytical Column Tags
Analytical Floor Tags
Analytical Isolated Foundation Tags
Analytical Link Tags
Analytical Node Tags
Analytical Slab Foundation Tags
Analytical Wall Foundation Tags
Analytical Wall Tags
Area Load Tags
Area Tags
Assembly Tags
Cable Tray Fitting Tags
Cable Tray Tags
Callout Heads
Casework Tags
Ceiling Tags
Communication Device Tags
Conduit Fitting Tags
Conduit Tags
Curtain Panel Tags
Data Device Tags
Detail Item Tags
Door Tags
Duct Accessory Tags
Duct Fitting Tags
Duct Insulation Tags
Duct Lining Tags
Duct Tags
Electrical Equipment Tags
Electrical Fixture Tags
Elevation Marks
Fabrication Part Tags
Fire Alarm Device Tags
Flex Duct Tags
Flex Pipe Tags
Floor Tags
Foundation Span Direction Symbol
Furniture System Tags
Furniture Tags
Generic Model Tags
Grid Heads
Internal Area Load Tags
Internal Line Load Tags
Internal Point Load Tags
Level Heads
Lighting Device Tags
Lighting Fixture Tags
Line Load Tags
Mass Floor Tags
Mass Tags
Mechanical Equipment Tags
Nurse Call Device Tags
Parking Tags
Part Tags
Pipe Accessory Tags
Pipe Fitting Tags
Pipe Insulation Tags
Pipe Tags
Planting Tags
Plumbing Fixture Tags
Point Load Tags
Property Line Segment Tags
Property Tags
Railing Tags
Revision Cloud Tags
Roof Tags
Room Tags
Section Marks
Security Device Tags
Site Tags
Space Tags
Span Direction Symbol
Specialty Equipment Tags
Spot Elevation Symbols
Sprinkler Tags
Stair Landing Tags
Stair Run Tags
Stair Support Tags
Stair Tags
Structural Area Reinforcement Symbols
Structural Area Reinforcement Tags
Structural Beam System Tags
Structural Column Tags
Structural Connection Tags
Structural Fabric Reinforcement Symbols
Structural Fabric Reinforcement Tags
Structural Foundation Tags
Structural Framing Tags
Structural Path Reinforcement Symbols
Structural Path Reinforcement Tags
Structural Rebar Tags
Structural Stiffener Tags
Structural Truss Tags
Telephone Device Tags
Title Blocks
View Reference
View Titles
Wall Tags
Window Tags
Wire Tags
Zone Tags
NOT IsTagCategory
Analytical Floors
Ramps
Cable Tray Fittings
Structural Connections
Planting
Analytical Wall Foundations
Mass
Air Terminals
Stair Tread/Riser Numbers
Communication Devices
Piping Systems
Panel Schedule Graphics
Reference Lines
Analytical Spaces
Plumbing Fixtures
Ceilings
Section Boxes
Pipe Segments
Conduit Fittings
Sprinklers
Doors
Lighting Devices
Curtain Systems
Parking
Ducts
Revision Clouds
Imports in Families
Conduits
Multi-Category Tags
Analytical Isolated Foundations
Flex Pipes
Analytical Links
Structural Trusses
HVAC Zones
Site
Analytical Columns
Duct Systems
Duct Placeholders
Reference Planes
Multi-Rebar Annotations
Matchline
Duct Accessories
Furniture Systems
Telephone Devices
Lines
Wires
Pipes
Topography
Project Information
Fabrication Parts
Structural Internal Loads
Analysis Display Style
Pipe Insulations
Flex Ducts
Rebar Cover References
Assemblies
Structural Load Cases
Structural Area Reinforcement
Plan Region
Structural Framing
Electrical Fixtures
Data Devices
Structural Annotations
Lighting Fixtures
Duct Insulations
Section Line
Cable Tray Runs
Pipe Color Fill
Generic Models
Analysis Results
Scope Boxes
Render Regions
Electrical Equipment
Curtain Panels
Fire Alarm Devices
Analytical Braces
Displacement Path
Roads
Floors
Point Clouds
Analytical Foundation Slabs
Windows
Structural Path Reinforcement
Rebar Shape
Parts
Columns
Routing Preferences
Generic Annotations
Filled region
Structural Fabric Reinforcement
Connection Symbols
Raster Images
Adaptive Points
Sections
Curtain Wall Mullions
Structural Loads
Walls
Conduit Runs
Spot Slopes
Keynote Tags
Rebar Set Toggle
Pipe Color Fill Legends
Pipe Fittings
Structural Columns
Pipe Placeholders
Guide Grid
Grids
Callouts
Schedule Graphics
Cable Trays
Curtain System Tags
Structural Stiffeners
Entourage
Callout Boundary
Contour Labels
Nurse Call Devices
Areas
Materials
Roofs
Structural Fabric Areas
Structural Rebar
Reference Points
Shaft Openings
Duct Fittings
Cameras
Elevations
Specialty Equipment
Pipe Accessories
Masking Region
Structural Foundations
Duct Color Fill Legends
Analytical Beams
Curtain Grids
Levels
Brace in Plan View Symbols
Structural Connection Handlers
Security Devices
Spot Coordinates
Railings
Viewports
Duct Color Fill
Stair Paths
Duct Linings
Structural Beam Systems
Views
Sheets
Casework
Analytical Surfaces
Material Tags
Mechanical Equipment
Switch System
Furniture
Rooms
Analytical Walls
Stairs
Text Notes
Detail Items
Spot Elevations
Analytical Nodes
Boundary Conditions
Color Fill Legends
Spaces
Dimensions
Enjoy!
If you find the article, the code, or the RevitNetAddinWizard(Pro) useful, please kindly make a donation through clicking the right button from the following link: