Dynamo Python Primer
  • Take Dynamo Further 🚀
  • 1 Hello Python 🐍
    • 1.1 Why Should I Learn to Code?
    • 1.2 Python Introduction
    • 1.3 What is IronPython?
  • 2 Seeing The Bigger Picture 🔭
    • 2.1 Context Matters
    • 2.2 What is an API?
    • 2.3 The .NET Framework
    • 2.4 Object-Oriented Programming
  • 3 Getting Started 🛴
    • 3.1 Dynamo's Python Node
    • 3.2 Boilerplate Setup Code
    • 3.3 Basics: Input and Output
    • 3.4 Common Errors
  • 4 Revit-Specific Topics 🏡
    • 4.1 Introduction to Revit's API
    • 4.2 How to Read Revit's API Documentation
    • 4.3 Doc, UIDoc, App, UIApp
    • 4.4 Unwrapping Revit Elements
    • 4.5 The FilteredElementCollector
    • 4.6 Geometry Conversion Methods
    • 4.7 Working With Parameters
      • Family Parameters
      • Global Parameters
      • Project Information Parameters
      • Group Parameters
      • Built-In Parameters
    • 4.8 Working With Transactions
    • 4.9 Opening & Closing External Files
    • 4.10 Prompting UI Selection
    • 4.11 Working With Units
    • 4.12 Built-In Categories
    • 4.13 Family Acrobatics
    • 4.14 Feedback: TaskDialogs
  • 5 Glossary 📚
  • About This Primer 👋
Powered by GitBook
On this page

Was this helpful?

  1. 4 Revit-Specific Topics 🏡

4.12 Built-In Categories

A finer-grain version of Revit's Category system

Previous4.11 Working With UnitsNext4.13 Family Acrobatics

Last updated 5 years ago

Was this helpful?

Built-In Categories

The Revit user-interface shows many categories to users, such as Doors, Floors and Generic Models. However, Revit internally keeps track of a much more detailed list of categories, called Built-in categories. The full list of Built-in categories can be found in the - these are hard coded and we can't create more of them.

Retrieving Elements of a BuiltInCategory

Because the list covers nearly 1000 categories, it helps programmers target Revit elements with much greater precision. Built-in categories can be especially useful for FilteredElementCollectors, letting us retrieve highly-specific kinds of elements. For instance, to collect all area tags in a document:

#Boilerplate Code

area_tags = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_AreaTags).ToElements()
OUT = area_tags

Combined with the usual , the above code will rapidly fetch all area tags in a document. It is this level of precision which makes BuiltInCategories especially useful when coding.

BuiltInCategory Enumeration
boilerplate code