Collect all categories in a project

Sure, it’s part of my package: MEPover

import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *

clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)

clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument
categories = doc.Settings.Categories

model_cat = []
anno_cat = []
ana_cat = []
internal_cat = []

for c in categories:
	if c.CategoryType == CategoryType.Model:
		model_cat.append(Revit.Elements.Category.ById(c.Id.IntegerValue))
	elif c.CategoryType == CategoryType.Annotation:
		anno_cat.append(Revit.Elements.Category.ById(c.Id.IntegerValue))
	elif c.CategoryType == CategoryType.AnalyticalModel:
		ana_cat.append(Revit.Elements.Category.ById(c.Id.IntegerValue))
	elif c.CategoryType == CategoryType.Internal:
		internal_cat.append(Revit.Elements.Category.ById(c.Id.IntegerValue))
		

OUT = model_cat, anno_cat, ana_cat, internal_cat

Please note, I refrained from using ‘anal_cat’ :slight_smile:

11 Likes