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 HasMaterialQuantities criteria that the Category object itself carries on.
public static Dictionary<string, List<Category>> CategorizeCategories4(RvtDocument doc)
{
string tempFile = @"c:\temp\CategorizedCategories4.txt";
Dictionary<string, List<Category>> ret = new Dictionary<string, List<Category>>();
ret.Add("HasMaterialQuantities", new List<Category>());
ret.Add("NOT HasMaterialQuantities", new List<Category>());
try
{
foreach (Category c in doc.Settings.Categories)
{
if (c.Id.IntegerValue != (int)BuiltInCategory.INVALID)
{
if (c.HasMaterialQuantities == 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:
HasMaterialQuantities
Assemblies
Casework
Ceilings
Columns
Communication Devices
Curtain Panels
Data Devices
Doors
Electrical Equipment
Electrical Fixtures
Entourage
Fire Alarm Devices
Floors
Furniture
Furniture Systems
Generic Models
Lighting Devices
Lighting Fixtures
Mechanical Equipment
Nurse Call Devices
Parts
Plumbing Fixtures
Roofs
Security Devices
Site
Specialty Equipment
Sprinklers
Stairs
Structural Columns
Structural Connections
Structural Foundations
Structural Framing
Telephone Devices
Walls
Windows
NOT HasMaterialQuantities
Part Tags
Pipe Insulation Tags
Analytical Floors
Mechanical Equipment Tags
Ramps
Cable Tray Fittings
Foundation Span Direction Symbol
Communication Device Tags
Analytical Wall Tags
Planting
Ceiling Tags
Analytical Wall Foundations
Furniture Tags
Mass
Air Terminals
Pipe Accessory Tags
Security Device Tags
Window Tags
Stair Tread/Riser Numbers
Piping Systems
Panel Schedule Graphics
Detail Item Tags
Reference Lines
Analytical Spaces
Structural Framing Tags
Section Boxes
Elevation Marks
Data Device Tags
Pipe Segments
Conduit Fittings
Lighting Fixture Tags
Assembly Tags
Duct Tags
Curtain Systems
Structural Rebar Tags
Parking
Ducts
Door Tags
Internal Area Load Tags
Revision Clouds
Imports in Families
Conduits
Multi-Category Tags
Analytical Isolated Foundations
Flex Pipes
Property Line Segment Tags
Curtain Panel Tags
Analytical Links
Structural Trusses
HVAC Zones
Mass Floor Tags
Analytical Columns
Duct Systems
Zone Tags
Duct Placeholders
Reference Planes
Cable Tray Tags
Multi-Rebar Annotations
Matchline
Specialty Equipment Tags
Duct Accessories
Duct Fitting Tags
Furniture System Tags
Callout Heads
Lines
Wires
Pipes
Structural Stiffener Tags
Topography
Casework Tags
Project Information
Wall Tags
Cable Tray Fitting Tags
Fabrication Parts
Structural Internal Loads
Analysis Display Style
Pipe Insulations
Flex Ducts
Duct Insulation Tags
Rebar Cover References
Structural Load Cases
Stair Support Tags
Structural Area Reinforcement
Structural Truss Tags
Analytical Slab Foundation Tags
Plan Region
Air Terminal Tags
Structural Annotations
Duct Insulations
Span Direction Symbol
Section Line
Cable Tray Runs
Section Marks
Pipe Color Fill
Lighting Device Tags
Floor Tags
Sprinkler Tags
Analysis Results
Scope Boxes
Line Load Tags
Render Regions
Structural Path Reinforcement Symbols
Stair Landing Tags
Analytical Braces
Displacement Path
Roads
Duct Lining Tags
Flex Duct Tags
Point Clouds
Analytical Wall Foundation Tags
Analytical Foundation Slabs
Structural Area Reinforcement Tags
Structural Path Reinforcement
Stair Run Tags
Rebar Shape
Nurse Call Device Tags
Area Load Tags
Routing Preferences
Generic Annotations
Area Tags
View Reference
Filled region
Analytical Column Tags
Structural Fabric Reinforcement
Connection Symbols
Conduit Fitting Tags
Raster Images
Structural Column Tags
Analytical Beam Tags
Adaptive Points
Fabrication Part Tags
Grid Heads
Sections
Room Tags
Curtain Wall Mullions
Stair Tags
Structural Loads
Revision Cloud Tags
Conduit Runs
Duct Accessory Tags
Spot Slopes
Keynote Tags
Space Tags
Rebar Set Toggle
Pipe Color Fill Legends
Pipe Fittings
Pipe Placeholders
Guide Grid
Grids
Fire Alarm Device Tags
Planting Tags
Callouts
Schedule Graphics
Electrical Fixture Tags
Telephone Device Tags
Cable Trays
Curtain System Tags
Structural Stiffeners
Internal Line Load Tags
Structural Fabric Reinforcement Symbols
Mass Tags
Analytical Node Tags
Property Tags
Structural Path Reinforcement Tags
Callout Boundary
Structural Area Reinforcement Symbols
Contour Labels
Areas
Materials
Structural Fabric Areas
Structural Rebar
Reference Points
Shaft Openings
Spot Elevation Symbols
Internal Point Load Tags
Analytical Isolated Foundation Tags
Flex Pipe Tags
Duct Fittings
Cameras
Elevations
Analytical Floor Tags
Pipe Accessories
Structural Connection Tags
Masking Region
Level Heads
Duct Color Fill Legends
Analytical Beams
Curtain Grids
Levels
Brace in Plan View Symbols
Railing Tags
Structural Connection Handlers
Structural Foundation Tags
Wire Tags
Site Tags
Pipe Tags
Analytical Link Tags
Spot Coordinates
Railings
Viewports
Title Blocks
Plumbing Fixture Tags
Pipe Fitting Tags
Duct Color Fill
Stair Paths
Duct Linings
Structural Beam Systems
Roof Tags
Views
Sheets
Conduit Tags
Point Load Tags
Analytical Surfaces
Structural Fabric Reinforcement Tags
Material Tags
View Titles
Parking Tags
Structural Beam System Tags
Analytical Brace Tags
Electrical Equipment Tags
Generic Model Tags
Switch System
Rooms
Analytical Walls
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:
Download RevitNetAddinWizardPro and/or Donate