Represents the category or subcategory to which an element belongs.
Inheritance Hierarchy
System.ObjectAutodesk.Revit.DB.APIObject
Autodesk.Revit.DB.Category
Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 26.1.0.0 (26.1.0.34)
Syntax
C#
public class Category : APIObject
The Category type exposes the following members.
Properties
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. |
Methods
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 Object.GetHashCode()) |
![]() | 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) |
Remarks
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.Example
C#
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);
VB
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)