Programmatic method of determining ROOM objects exist in a directory full of Revit models

Background:

We often have large projects with multiple different Revit models. Current project has two architects, each with several main Revit files plus linked models for things like repeated modules (groups of rooms in a department), shared coordinates file, structure, etc. When downloading these from Autodesk BIM360 (aka Autodesk Construction Cloud, aka Forma), we get a giant ZIP with the Revit models PLUS any and all linked models into these. Over a dozen models on this project.

Next, we’re setting these Revit models up for the Pollination workflow. We need ROOMS!

Objective:

Instead of guessing at the models with rooms, opening them up and poking around, I am wondering if there’s a programmatic way, without opening Revit, to check for the existence of room objects within the Revit model.

I sent Claude Code to work trying to read the .rvt files and it poured through BasicFileInfo, ProjectInformation, Global/PartitionTable, etc. and was confident that rooms exist in this test model, but it couldn’t find the actual room objects (number, name, level, etc.) which is what I want.

Does anyone know if this is possible to do using Python, without opening Revit?

If not, it looks like I could open Revit and then use the Revit API to silently open a bunch of Revit models in a parent directory to do this. This seems like a heavier lift, and not something I want to deal with today..

Any other tips people have in figuring this out for super large projects? I know I could track down the BIM manager for the project and get a rundown, but coordinating something like this with a large team on a design/build project is also quite labor intensive…

TIA!

Hi @gregatze,

Good question!

I know you asked for a programmatic method here but the easiest way to find the answer to this question might be simply asking the person who shares the file with you. They almost always know which file includes what.

That said, have you seen the ara3d project? It is using C# but it extracts the object from Revit model into a machine readable format. They call it bim-open-schema.

They also have a Revit plugin which might be a good reference to learn from for interacting with Revit.

I have never used it myself but from what I have seen it should be able to extract the information that you are looking for from Revit files.