9 May 2025
Exploring Revit data with AEC Data Model API

Introduction
If you're familiar with the AEC Data Model API, you're probably already aware that you can filter your design data based on properties, categories, and references.
That's great, but what if you need to determine what is available?
Can we retrieve project information?
That's what we'll cover in this blog post.
Understanding what is available
In the hierarchy of Revit projects, the elements are structured by categories. To help us understand what's available, we can start by listing the categories used in our ElementGroup.
This is possible using the distinctPropertyValuesInElementGroupByName query with the Revit Category Type Id property, like in the example below:
query AvailableCategories{
distinctPropertyValuesInElementGroupByName(elementGroupId:"YOUR ELEMENTGROUP ID"
name:"Revit Category Type Id"){
results{
values{
value
count
}
}
}
}
You can also leverage the distinctPropertyValuesInElementGroupById query to achieve the same goal ;)
This will return to us a list like the one below, depending on your design:
{
"data": {
"distinctPropertyValuesInElementGroupByName": {
"results": [
{
"values": [
{
"value": "Materials",
"count": 174
},
{
"value": "Curtain Wall Mullions",
"count": 149
},
{
"value": "Space Type Settings",
"count": 125
},
...
{
"value": "Project Information",
"count": 1
},
{
"value": "Ramps",
"count": 1
}
]
}
]
}
},
"extensions": {
"pointValue": {
"requestedQueryPointValue": 52
}
}
}
This means that this design has elements from Materials, Ramps, and all the other categories available in that response.
If we focus on the Project Information (or any other category available), we can use the GetElementsFromCategory query to list the elements associated.
# Task 4 – Get Elements within an ElementGroup using a filter
query GetElementsFromCategory {
elementsByElementGroup(elementGroupId: "YOUR ELEMENTGROUP ID", filter: {query:"property.name.category=='Project Information'"}) {
pagination {
cursor
}
results {
id
name
properties {
results {
name
value
definition {
units{
name
}
}
}
}
}
}
}
From there, we can retrieve project-specific information like Author, Project Name, and Project Status.
That is valid for any category available in your designs.