Revit 2025 API
Category Class |
Represents the category or subcategory to which an element belongs.

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntax
The Category type exposes the following members.

Name | Description | |
---|---|---|
![]() | AllowsBoundParameters | To check if the category can have project parameters. |
![]() | AllowsVisibilityControl | Whether the visibility can be controlled by the user for this category in this view. |
![]() | BuiltInCategory | Gets the BuiltInCategory value for this category. |
![]() | CanAddSubcategory | Indicates if subcategories can be assigned to the category. |
![]() | CategoryType | Gets the category type of this category. |
![]() | HasMaterialQuantities | Identifies if elements of the category are able to report what materials they contain in what quantities. |
![]() | Id | Returns the category id associated with the category object. |
![]() | IsCuttable | Indicates if the category is cuttable or not. |
![]() ![]() | IsReadOnly | Identifies if the object is read-only or modifiable. (Inherited from APIObject) |
![]() | IsTagCategory | Identifies if the category is associated with a type of tag for a different category. |
![]() | IsValid | Indicates if the Category is valid or not. |
![]() | IsVisibleInUI | Identifies if the category is visible to the user and should be displayed in UI. |
![]() | LineColor | The color of lines shown for elements of this category. |
![]() | Material | Retrieves or changes the material of the category. |
![]() | Name | The category name. |
![]() | Parent | Returns the parent category of this category. |
![]() | SubCategories | Returns a map containing all of the subcategories of this category. |
![]() | Visible | Retrieves or changes the visibility of the category in the active view. |

Name | Description | |
---|---|---|
![]() | Dispose | Causes the object to release immediately any resources it may be utilizing. (Inherited from APIObject) |
![]() | Equals | Determines whether the specified object is equal to the current object. (Inherited from Object) |
![]() ![]() | GetBuiltInCategory | Gets the BuiltInCategory value corresponding to the given built-in category identifier. |
![]() ![]() | GetBuiltInCategoryTypeId | Gets the ForgeTypeId identifying the given built-in category. |
![]() ![]() | GetCategory(Document, BuiltInCategory) | Retrieves a category object corresponding to a BuiltInCategory id. |
![]() ![]() | GetCategory(Document, ElementId) | Retrieves a category object corresponding to the category id. |
![]() | GetGraphicsStyle | Gets the graphics style associated with this category for the given graphics style type. |
![]() | GetHashCode | (Overrides ObjectGetHashCode) |
![]() | GetLinePatternId | Gets the line pattern id associated with this category for the given graphics style type. |
![]() | GetLineWeight | Retrieves the line weight assigned to the category for the given graphics style type. |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object) |
![]() ![]() | IsBuiltInCategory | Checks whether a ForgeTypeId identifies a built-in category. |
![]() ![]() | IsBuiltInCategoryValid | Checks if a Category exists for a given BuiltInCategory. |
![]() | SetLinePatternId | Sets the line pattern id associated with this category for the given graphics style type. |
![]() | SetLineWeight | Sets the line weight for the given graphics style type. |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object) |

Categories are an important tool within Revit for identifying the inferred type of an
element, such as anything in the Walls category should be considered as a wall. The API
exposes access to the built in categories within Revit via the Document.Settings.Categories
property.

Element selectedElement = null; foreach (ElementId id in uidoc.Selection.GetElementIds()) { selectedElement = document.GetElement(id); break; // just get one selected element } // Get the category instance from the Category property Category category = selectedElement.Category; BuiltInCategory enumCategory = category.BuiltInCategory; // Format the prompt string, which contains the category information String prompt = "The category information of the selected element is: "; prompt += "\n\tName:\t" + category.Name; // Name information prompt += "\n\tId:\t" + enumCategory.ToString(); // Id information prompt += "\n\tParent:\t"; if (null == category.Parent) { prompt += "No Parent Category"; // Parent information, it may be null } else { prompt += category.Parent.Name; } prompt += "\n\tSubCategories:"; // SubCategories information, CategoryNameMap subCategories = category.SubCategories; if (null == subCategories || 0 == subCategories.Size) // It may be null or has no item in it { prompt += "No SubCategories;"; } else { foreach (Category ii in subCategories) { prompt += "\n\t\t" + ii.Name; } } // Give the user some information TaskDialog.Show("Revit",prompt);
Dim selectedElement As Element = Nothing For Each id As ElementId In uidoc.Selection.GetElementIds() selectedElement = document.GetElement(id) ' just get one selected element Exit For Next ' Get the category instance from the Category property Dim category As Category = selectedElement.Category Dim enumCategory As BuiltInCategory = category.BuiltInCategory ' Format the prompt string, which contains the category information Dim prompt As [String] = "The category information of the selected element is: " prompt += vbLf & vbTab & "Name:" & vbTab + category.Name ' Name information prompt += vbLf & vbTab & "Id:" & vbTab & enumCategory.ToString() ' Id information prompt += vbLf & vbTab & "Parent:" & vbTab If category.Parent Is Nothing Then ' Parent information, it may be null prompt += "No Parent Category" Else prompt += category.Parent.Name End If prompt += vbLf & vbTab & "SubCategories:" ' SubCategories information, Dim subCategories As CategoryNameMap = category.SubCategories If subCategories Is Nothing OrElse 0 = subCategories.Size Then ' It may be null or has no item in it prompt += "No SubCategories;" Else For Each ii As Category In subCategories prompt += vbLf & vbTab & vbTab + ii.Name Next End If ' Give the user some information TaskDialog.Show("Revit", prompt)
No code example is currently available or this language may not be supported.
No code example is currently available or this language may not be supported.
See Also