Bespaar tijd in Power BI met TMDL (2025)

Met TMDL kunnen we het semantisch model van een rapport in Power BI Desktop direct als code bewerken. Dit is interessant voor developers, maar ook zeer geschikt voor een low-code analist die wat repititieve taken wil verminderen.

Persoonlijk verwacht ik in de nabije toekomst veel van deze functionaliteit. Met TMDL kun je het semantisch model namelijk als code zien en bewerken. Dit maakt het eenvoudig om het met AI zoals Copilot of ChatGPT te verbeteren.

In deze blog komen de volgende onderwerpen aan bod:

  1. TMDL activeren
  2. Opbouw TMDL view
  3. Zoeken en kopiëren in het semantisch model
  4. Bulk aanpassingen in je semantisch model
  5. Git versiebeheer

1. TMDL view activeren

In 2025 staat TMDL nog in preview mode, dus moet je deze eerst zelf activeren. Dit doe je als volgt:

  1. Ga linksboven naar “File
  2. Dan “Options and settings
  3. Dan “Options
  4. Onder “Preview features” zie je onderaan “TMDL view“. Vink deze aan.

Als je Power BI Desktop opnieuw opstart, zie je nu links TMDL view staan.

2. Opbouw TMDL view

Je kunt objecten in TMDL view bekijken door deze in de editor te slepen. Voorbeelden zijn:

  • Eén enkele measure
  • Meerdere measures of andere objecten (houd CRTL ingedrukt)
  • Het gehele semantisch model

De measure hieronder is naar de TMDL editor gesleept en laat de sales zien voor enkel de United States. Deze is daarom met US dollars geformatteerd. Hier kunnen ook additionele eigenschappen toegevoegd worden zoals de display folder of een beschrijving.

3. Zoeken en kopiëren in het semantisch model

Door aan de rechterkant op “Model” te klikken, kun je het volledige semantische model naar de editor slepen. Dit biedt onder andere de volgende voordelen:

  • Nu kun je met CRTL+F eenvoudig zoeken op een bepaalde measure en en je ziet precies waar deze allemaal gebruikt wordt.
  • Je kunt bepaalde tabellen, calculation groups of measures die vaker in rapporten gebruikt worden (denk bijvoorbeeld aan bepaalde time intelligence measures), eenvoudig kopiëren naar een nieuw rapport. Hierdoor heb je één standaard formattering en zijn je berekeningen in ieder rapport exact hetzelfde.
  • Als binnen je organisatie een bepaalde definitie verandert of een andere formattering gewenst is, kun je deze eenvoudig overal in het model aanpassen.

4. Bulk aanpassingen in je semantisch model

Sommige aanpassingen in Power BI kunnen tijdrovend zijn, zoals het toevoegen van beschrijvingen aan elke measure. Herinner je je hoe frusterend het bijvoorbeeld is dat Power BI iedere keer een tijdje moet laden na het toevoegen van een beschrijving voor een measure? In TMDL kun je dit voor alle measures tegelijk doen.

Wanneer je in de TMDL-weergave bent, klik je in het rechterdeelvenster onder Data op Model. Klap de ‘Measures‘-header open en selecteer alle measures door eerst de eerste te selecteren en daarna de laatste, terwijl je de SHIFT-toets ingedrukt houdt. Als je niet alle measures wilt selecteren, kun je zelf een selectie maken door de CTRL-toets ingedrukt te houden en op de gewenste measures te klikken. Sleep vervolgens de geselecteerde Measures naar de TMDL-weergave.

Nu kun je eenvoudig beschrijvingen toevoegen aan alle measures tegelijk door een regel startend met “///” boven elke measure te plaatsen. Nadat je de beschrijvingen hebt toegevoegd, klik je op Apply om je wijzigingen door te voeren en de measure-beschrijvingen bij te werken.

Als je de measure nu in model view opent, zie je dat er een beschrijving is toegevoegd.

Op deze manier kun je alle beschrijvingen in één keer aanpassen, maar ook kun je andere elementen snel aanpassen zoals formatteringen, namen, berekeningen etc. Als je geen zin hebt om zelf beschrijvingen toe te voegen: laat een AI tool naar keuze (zoals ChatGPT, Claude of Copilot) de beschrijvingen voor je in de TMDL-code zetten. Dit doe je als volgt:

  • Kopieer de syntax uit de TMDL-weergave nadat je de measures erin hebt gesleept.
  • Plak deze in de AI-tool van jouw keuze.
  • Voeg de volgende prompt toe (deze werkt voor mij erg goed):
Je bent een Power BI prompt engineer. Je ontvangt Power BI TMDL-code die DAX-measures bevat. Voor elke measure voeg je een leesbaar, beknopt en beschrijvende comment toe over wat de measure doet. De comment moet worden toegevoegd in een nieuwe regel boven elke regel die begint met “measure”. Elke comment moet beginnen met ///. Schrijf de comments in het Nederlands, in duidelijke zakelijke taal die geschikt is voor businessanalisten. Geef alleen commentaar op daadwerkelijke measures (regels die beginnen met “measure”), niet op berekende kolommen of andere elementen. Wijzig de DAX-formules zelf niet. Verwijder of herschik geen bestaande code. Richt je op duidelijkheid, nauwkeurigheid en zakelijke context.

Gebruik dit formaat:
/// [Beknopte beschrijving van wat de measure berekent]
measure [MeasureName] = ...
  • Vervang vervolgens de TMDL-code van je measures met de output van je AI-tool.
  • Controleer alle gegenereerde beschrijvingen — zoals je hieronder kunt zien, lijken alle beschrijvingen correct te zijn.
  • Klik op Apply om de beschrijvingen door te voeren.

Nu heb je beschrijvingen van alle measures in je semantisch model.

5. Git versiebeheer

TMDL is ook een bestandstype. De simpelste en snelste manier om aan versiebeheer voor je semantisch model te doen is door deze “lomp” naar een text editor of IDE zoals VS Code te kopiëren en op te slaan met de .tmdl extensie (zie onderstaande afbeelding). In de achtergrond zie je dat ik het semantisch model open heb staan in VS Code. Deze file kun je nu naar je versiebeheerprogramma naar keuze pushen. Dit is vooral handig als je semantisch model voor meerdere rapporten gebruikt wordt.

Power BI is inmiddels ook geïntergreerd met Azure DevOps om aan versiebeheer te kunnen doen. Als je structureel versiebeheer voor je Power BI modellen en rapportages wilt opzetten is dit beter dan de eenvoudige methode die ik hierboven voorstel. Power BI versiebeheer middels het gebruik van de Azure DevOps integratie zal ik in een latere blog oppakken.

Vragen?

Neem gerust contact op.

Bas Crommentuijn
Bas Crommentuijn

Mijn naam is Bas en mijn interesse ligt op het snijvlak van data analyse & data engineering. Mijn blogs gaan voornamelijk over schaalbare data & BI toepassingen.

Artikelen: 4