Quantcast
Channel: RevitNetAddinWizard & NavisworksNetAddinWizard
Viewing all articles
Browse latest Browse all 872

Revit .NET API: Categorize Revit Categories (pt. 6) - Based on IsReadOnly

$
0
0

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 IsReadOnly criteria that the Category object itself carries on.

        public static Dictionary<string, List<Category>> CategorizeCategories6(RvtDocument doc)
        {
            string tempFile = @"c:\temp\CategorizedCategories6.txt";
            Dictionary<string, List<Category>> ret = new Dictionary<string, List<Category>>();
            ret.Add("IsReadOnly", new List<Category>());
            ret.Add("NOT IsReadOnly", new List<Category>());
            try
            {
                foreach (Category c in doc.Settings.Categories)
                {
                    if (c.Id.IntegerValue != (int)BuiltInCategory.INVALID)
                    {
                        if (c.IsReadOnly == 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:

IsReadOnly
NOT IsReadOnly
    Part Tags
    Pipe Insulation Tags
    Analytical Floors
    Mechanical Equipment Tags
    Ramps
    Cable Tray Fittings
    Foundation Span Direction Symbol
    Communication Device Tags
    Analytical Wall Tags
    Structural Connections
    Planting
    Ceiling Tags
    Analytical Wall Foundations
    Furniture Tags
    Mass
    Air Terminals
    Pipe Accessory Tags
    Security Device Tags
    Window Tags
    Stair Tread/Riser Numbers
    Communication Devices
    Piping Systems
    Panel Schedule Graphics
    Detail Item Tags
    Reference Lines
    Analytical Spaces
    Plumbing Fixtures
    Structural Framing Tags
    Ceilings
    Section Boxes
    Elevation Marks
    Data Device Tags
    Pipe Segments
    Conduit Fittings
    Sprinklers
    Doors
    Lighting Fixture Tags
    Lighting Devices
    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
    Site
    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
    Furniture Systems
    Telephone Devices
    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
    Assemblies
    Structural Load Cases
    Stair Support Tags
    Structural Area Reinforcement
    Structural Truss Tags
    Analytical Slab Foundation Tags
    Plan Region
    Structural Framing
    Electrical Fixtures
    Air Terminal Tags
    Data Devices
    Structural Annotations
    Lighting Fixtures
    Duct Insulations
    Span Direction Symbol
    Section Line
    Cable Tray Runs
    Section Marks
    Pipe Color Fill
    Generic Models
    Lighting Device Tags
    Floor Tags
    Sprinkler Tags
    Analysis Results
    Scope Boxes
    Line Load Tags
    Render Regions
    Structural Path Reinforcement Symbols
    Electrical Equipment
    Stair Landing Tags
    Curtain Panels
    Fire Alarm Devices
    Analytical Braces
    Displacement Path
    Roads
    Duct Lining Tags
    Floors
    Flex Duct Tags
    Point Clouds
    Analytical Wall Foundation Tags
    Analytical Foundation Slabs
    Windows
    Structural Area Reinforcement Tags
    Structural Path Reinforcement
    Stair Run Tags
    Rebar Shape
    Parts
    Nurse Call Device Tags
    Columns
    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
    Walls
    Conduit Runs
    Duct Accessory Tags
    Spot Slopes
    Keynote Tags
    Space Tags
    Rebar Set Toggle
    Pipe Color Fill Legends
    Pipe Fittings
    Structural Columns
    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
    Entourage
    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
    Nurse Call Devices
    Areas
    Materials
    Roofs
    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
    Specialty Equipment
    Analytical Floor Tags
    Pipe Accessories
    Structural Connection Tags
    Masking Region
    Structural Foundations
    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
    Security Devices
    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
    Casework
    Conduit Tags
    Point Load Tags
    Analytical Surfaces
    Structural Fabric Reinforcement Tags
    Material Tags
    View Titles
    Mechanical Equipment
    Parking Tags
    Structural Beam System Tags
    Analytical Brace Tags
    Electrical Equipment Tags
    Generic Model Tags
    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:

Download RevitNetAddinWizardPro and/or Donate


Viewing all articles
Browse latest Browse all 872

Trending Articles