Introduction
If you work with Fabric or Power BI, you already know how important measures are. They power your visuals, drive business logic, and often hide the most valuable thinking inside your model. But once a model grows, keeping track of all those measures become tricky. That’s where Semp (Semantic Link for Fabric) helps. Using a Fabric notebook, you can connect directly to a semantic model and programmatically explore everything inside it including every measure.
In this article, I’ll walk you through:
What Semp / Semantic Link is
Why listing measures programmatically is useful
How to connect to a semantic model
How to list all measures (with their expressions)
Let’s get started.
What is Semp (Semantic Link)?
Semp is the Python package that powers Semantic Link inside Fabric:
import sempy.fabric as fabric
It lets you use Python to work with:
Instead of clicking around in Power BI Desktop, you can inspect your model programmatically which is great for governance, documentation, QA, and automation.
Why list measures from a notebook?
Here are a few practical reasons:
✅ Audit your model (find duplicates, deprecated logic, or inconsistencies)
✅ Document measures automatically
✅ Search for specific DAX patterns (like DIVIDE or CALCULATE)
✅ Support migration or refactoring
✅ Share model definitions with data engineering teams
Interestingly, you can do it without exporting PBIX files or opening Desktop.
List all DAX measures using Fabric Notebook
In this article, we will use Sales semantic model in the cornerstone_wks as seen below
![1]()
To list all the measures:
In the screenshot below, we can see the output - all the DAX measures in the Sales semantic model
![2]()
Conclusion
In conclusion, using Sempy in a Fabric notebook gives you visibility into your semantic models, automation instead of manual inspection, a repeatable way to analyze measures at scale. And best of all — you stay inside Fabric.