Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!To celebrate FabCon Vienna, we are offering 50% off select exams. Ends October 3rd. Request your discount now.
Documenting a Power BI semantic model is crucial for ensuring clarity, maintaining consistency, and empowering users to understand the data they are analyzing. Yet, it's a task often relegated to the "I'll do it later" pile because it can be tedious and time-consuming.
What if you could generate a comprehensive, dynamic data dictionary directly inside your Power BI Desktop with just a few lines of DAX? Thanks to the new INFO.VIEW functions, you now can. This article will show you how to automatically document your tables, columns, measures, and relationships, turning your model into a self-documenting system.
Why Model Documentation Matters
Before we dive into the how, let's recap the why. A good data dictionary provides a single source of truth for your data model and is essential for :
Introducing the INFO.VIEW DAX Functions
Released in late 2024, the INFO.VIEW functions are a game-changer for Power BI developers. They provide direct, programmatic access to your model's metadata as DAX table functions. The four key functions are:
The best part? These functions output tables, meaning you can use them to create new tables in your data model and build reports about your data.
Step-by-Step: Building Your Dynamic Data Dictionary
Let's walk through the process of creating a central data dictionary table.
Step 1: Create the Foundation Tables
First, we'll create individual tables for each component of the model. In Power BI Desktop:
ModelMeasures = INFO.VIEW.MEASURES()
ModelTables = INFO.VIEW.TABLES()
ModelColumns = INFO.VIEW.COLUMNS()
ModelRelationships = INFO.VIEW.RELATIONSHIPS()
This provides you with four separate tables containing metadata directly from your model.
Step 2: The Power of Descriptions
The Description field in these tables is arguably the most valuable. It's your chance to explain the purpose of a measure, column, or table in plain language.
To populate them:
This step transforms your documentation from a technical schema into a true business glossary .
Step 3: Combine Everything into One Master Table
While four tables are useful, a single, unified data dictionary is even better. We can use a more advanced DAX query to UNION the relevant parts of these tables together.
Create a new table with the following DAX code. This code, inspired by community experts, filters out hidden items and selects the most useful columns for a dictionary :
Data Dictionary =
VAR __Columns =
SELECTCOLUMNS (
FILTER ( INFO.VIEW.COLUMNS(), [IsHidden] = FALSE() && [Table] <> "Data Dictionary" ),
"Type", "Column",
"Name", [Name],
"Description", [Description],
"Location", [Table],
"Expression", [Expression]
)
VAR __Measures =
SELECTCOLUMNS (
FILTER ( INFO.VIEW.MEASURES(), [IsHidden] = FALSE() ),
"Type", "Measure",
"Name", [Name],
"Description", [Description],
"Location", [Table],
"Expression", [Expression]
)
VAR __Tables =
SELECTCOLUMNS (
FILTER ( INFO.VIEW.TABLES(), [IsHidden] = FALSE() && [Name] <> "Data Dictionary" ),
"Type", "Table",
"Name", [Name],
"Description", [Description],
"Location", "N/A",
"Expression", [Expression]
)
VAR __Relationships =
SELECTCOLUMNS (
INFO.VIEW.RELATIONSHIPS(),
"Type", "Relationship",
"Name", [Relationship],
"Description", BLANK(),
"Location", "From: " & [FromTable] & " -> To: " & [ToTable],
"Expression", "N/A"
)
RETURN
UNION ( __Columns, __Measures, __Tables, __Relationships )
Step 4: Build the Documentation Report Page
Now for the payoff. Create a new report page called "Data Dictionary" or "Model Documentation."
You now have an interactive, filterable data dictionary living inside your Power BI report. Users can select "Measure" to browse all calculations or "Column" to see all fields and their definitions.
Pro Tip: Exporting Your Documentation
You can easily export this documentation for sharing:
Conclusion: Documentation Made Simple
The INFO.VIEW functions have fundamentally changed the way documentation is handled in Power BI. What was once a manual, error-prone chore can now be an automated, dynamic, and integrated part of your development process.
By investing a small amount of time to set up this system, you create a living document that grows and changes with your model, drastically improving its usability and long-term maintainability.
Have you tried the new INFO.VIEW functions? How are you handling documentation in your Power BI projects? Share your tips and experiences in the comments below!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.