TMDL dans Power BI : 5 cas d'usage concrets pour transformer vos projets
Découvrez comment exploiter la vue TMDL pour gagner en productivité sur vos modèles sémantiques Power BI.
Nous contactercreateOrReplace
table Ventes
measure 'Total Ventes' =
SUM(Ventes[Montant])
formatString: #,##0.00 €
measure 'Croissance YoY' =
DIVIDE(
[Total Ventes] - [LY],
[LY]
)
formatString: #,##0.0 %
Par Emilien Granger - Mis à jour en avril 2026 · 8 min de lecture
Vous travaillez sur des modèles Power BI complexes et vous perdez du temps à naviguer entre les interfaces graphiques pour modifier vos mesures, relations et propriétés ? TMDL change la donne.
TMDL (Tabular Model Definition Language) est un langage texte lisible qui décrit l'intégralité d'un modèle sémantique Power BI : tables, colonnes, mesures DAX, expressions Power Query, relations, perspectives, traductions - tout. Depuis septembre 2025, la vue TMDL est Generally Available dans Power BI Desktop. Elle est aussi disponible en preview directement dans le navigateur via le service Power BI.
Dans cet article, vous découvrirez ce qu'est réellement TMDL, comment l'activer, et surtout 5 cas d'usage concrets avec des exemples de code pour l'exploiter immédiatement dans vos projets.
Qu'est-ce que TMDL et pourquoi c'est un tournant ?
TMDL est la représentation textuelle de votre modèle sémantique Power BI. Chaque table, chaque mesure, chaque relation est décrite dans un format structuré, lisible par un humain et modifiable comme du code.
Ce n'est pas un nouveau langage à apprendre de zéro. Si vous savez lire du DAX et un fichier de configuration YAML, vous savez déjà lire du TMDL.
TMDL vs l'interface graphique vs Tabular Editor
| Critère | Interface graphique | Tabular Editor | Vue TMDL |
|---|---|---|---|
| Modifications en masse | Une par une, clic par clic | Oui, via l'éditeur tabulaire | Oui, via find & replace dans le code |
| Propriétés cachées | Non | Oui | Oui, nativement |
| Versioning Git | Impossible (.pbix binaire) | Oui, via dossier TMDL externe | Oui, via format PBIP |
| Partage de scripts | Captures d'écran | Export/import JSON | Copier-coller du code TMDL |
| Courbe d'apprentissage | Faible | Moyenne | Faible à moyenne |
| Outil tiers requis | Non | Oui | Non |
Le point clé : TMDL rend accessibles nativement dans Power BI Desktop des capacités qui nécessitaient auparavant Tabular Editor ou des outils externes. Cela ne remplace pas Tabular Editor pour des workflows avancés, mais pour 80 % des tâches quotidiennes, la vue TMDL suffit.
Activer la vue TMDL dans Power BI Desktop
La vue TMDL est disponible pour tous les utilisateurs Power BI depuis septembre 2025. Si vous utilisez une version récente de Power BI Desktop, elle est activée par défaut.
Si ce n'est pas le cas :
- Allez dans Fichier → Options et paramètres → Options → Fonctionnalités en preview
- Cochez Vue TMDL
- Redémarrez Power BI Desktop
- L'icône TMDL apparaît dans la barre latérale gauche
Une fois dans la vue TMDL, glissez n'importe quel objet (table, mesure, colonne) depuis le volet Données vers l'éditeur de code. Power BI génère automatiquement le script createOrReplace correspondant.
L'éditeur intègre la coloration syntaxique DAX et Power Query, l'autocomplétion, les tooltips au survol et le formatage automatique (SHIFT + ALT + F).
Comprendre la syntaxe TMDL
Un script TMDL suit une structure hiérarchique simple. Voici un exemple concret :
createOrReplace table Ventes lineageTag: 97143e5b-7736-4fcb-8042-26b92b1f5684 column Montant dataType: decimal formatString: #,##0.00 column DateVente dataType: dateTime formatString: dd/MM/yyyy measure 'Total Ventes' = SUM(Ventes[Montant]) formatString: #,##0.00 € measure 'Croissance YoY' = VAR ValeurPrecedente = CALCULATE( [Total Ventes], SAMEPERIODLASTYEAR(Calendrier[Date]) ) RETURN DIVIDE([Total Ventes] - ValeurPrecedente, ValeurPrecedente) formatString: #,##0.0 %
Quelques règles à retenir :
- L'indentation définit la hiérarchie (comme en Python ou YAML)
createOrReplaceindique que le script remplacera l'objet existant à l'application- Chaque propriété (
dataType,formatString…) est déclarée sous l'objet qu'elle qualifie - Les expressions DAX s'écrivent directement après le signe
=
Avant d'appliquer un script, Power BI affiche un diff qui montre précisément ce qui va changer. Vous validez visuellement avant d'impacter le modèle - pas de mauvaise surprise.
5 cas d'usage concrets de TMDL
1. Modifications en masse avec Find & Replace
C'est le cas d'usage le plus immédiat. Vous devez renommer un display folder sur 30 mesures ? Changer le formatString de toutes vos mesures financières ? Mettre à jour une référence de table après un refactoring ?
Exemple : changer le dossier d'affichage de toutes les mesures d'une table
- Glissez la table entière dans la vue TMDL
- Utilisez CTRL+H (Find & Replace)
- Remplacez
displayFolder: FinancepardisplayFolder: Finance\KPIs - Prévisualisez le diff → Appliquez
En interface graphique, cette opération nécessite de modifier chaque mesure individuellement. En TMDL, c'est fait en 10 secondes.
Autre exemple courant : renommer des colonnes en masse
Avec le Find & Replace regex, vous pouvez supprimer les espaces de tous les noms de colonnes d'un coup. Power BI Desktop maintient la correspondance entre le nom de la colonne dans le modèle et la sourceColumn en Power Query - pas de casse.
2. Accéder aux propriétés cachées de votre modèle
L'interface graphique de Power BI Desktop n'expose pas toutes les propriétés du modèle sémantique. TMDL les rend accessibles sans outil tiers.
Detail Rows Definition - Personnalise ce que l'utilisateur voit quand il fait "Afficher les détails" sur une valeur dans Excel ou Power BI. Sans cette propriété, l'utilisateur reçoit toutes les colonnes brutes. Avec, vous contrôlez précisément les colonnes retournées.
measure 'Total Ventes' = SUM(Ventes[Montant]) formatString: #,##0.00 € detailRowsDefinition = SELECTCOLUMNS( Ventes, "Date", Ventes[DateVente], "Client", Ventes[NomClient], "Montant", Ventes[Montant] )
isAvailableInMdx - Mettre cette propriété à false sur des colonnes techniques réduit la consommation mémoire et nettoie l'expérience "Analyser dans Excel".
column ID_Technique dataType: int64 isHidden: true isAvailableInMdx: false
isPrivate - Cache une table entière des outils clients (utile pour les tables intermédiaires de calcul).
Perspectives - Créez et gérez des perspectives directement en TMDL pour filtrer ce que voit chaque groupe d'utilisateurs via "Personnaliser les visuels".
3. Partager et réutiliser des composants de modèle
TMDL transforme vos composants de modèle en blocs de code portables. Un Calculation Group, une table calendrier, un ensemble de mesures Time Intelligence - tout devient un script que vous pouvez copier-coller, stocker et partager.
Workflow concret :
- Scriptez votre table calendrier en TMDL
- Stockez le fichier
.tmdldans un dossier SharePoint ou un repo Git partagé - Un collègue ouvre un nouveau modèle, colle le script dans la vue TMDL, applique → la table est créée instantanément avec toutes ses colonnes, hiérarchies et mesures
Exemple : script d'une table calendrier réutilisable
createOrReplace table Calendrier lineageTag: a1b2c3d4-e5f6-7890-abcd-ef1234567890 dataCategory: Time column Date dataType: dateTime isKey: true formatString: dd/MM/yyyy column Annee dataType: int64 column Mois dataType: int64 sortByColumn: Date column NomMois dataType: string sortByColumn: Mois hierarchy 'Hiérarchie Date' level Annee column: Annee level Mois column: NomMois
Fini les captures d'écran dans Teams pour partager un modèle. Le code est la documentation.
4. Éditer Power Query sans ouvrir l'éditeur
La vue TMDL expose les expressions M (Power Query) de chaque partition. Vous pouvez les lire et les modifier directement dans l'éditeur de code, sans ouvrir la fenêtre Power Query Editor - qui est souvent lente à charger sur les gros modèles.
Exemple : modifier la source d'une table
createOrReplace
table Ventes
partition Ventes = m
mode: import
expression =
let
Source = Sql.Database("serveur-prod.database.windows.net", "DW_Prod"),
Ventes = Source{[Schema="dbo", Item="FACT_Ventes"]}[Data]
in
Ventes
Pour pointer vers un autre environnement, modifiez directement la chaîne de connexion dans le script. Pratique pour switcher entre Dev et Prod sans naviguer dans l'interface Power Query.
⚠️ Attention
Si vous modifiez une expression Power Query, un refresh manuel de la table est nécessaire pour que les changements prennent effet.
5. Préparer le terrain pour le versioning Git (PBIP)
Le format PBIP (Power BI Project) décompose votre fichier .pbix en fichiers texte, dont des fichiers .tmdl. C'est la base du versioning Git pour Power BI.
La vue TMDL dans Power BI Desktop est directement alignée avec ce format. Quand vous sauvegardez en PBIP :
- Chaque script dans la vue TMDL est stocké comme un fichier
.tmdldans le dossier\TMDLScripts - Vous pouvez éditer ces fichiers dans VS Code (avec l'extension TMDL) et ils se rechargent à la réouverture dans Power BI Desktop
- Les diffs Git deviennent lisibles : vous voyez exactement quelle mesure a changé, quelle propriété a été modifiée
Workflow Git typique :
- Sauvegardez votre rapport en format PBIP
- Initialisez un repo Git dans le dossier du projet
- Commitez vos fichiers
.tmdl - Chaque modification de modèle = un commit lisible
- Les pull requests permettent la revue de code entre développeurs BI
C'est le passage d'une logique "un fichier binaire qu'on s'envoie par mail" à une logique "code versionné et reviewé en équipe".
TMDL sur le web : la prochaine étape
Depuis mars 2025, Microsoft a lancé en preview TMDL View on the Web - la possibilité d'éditer vos modèles sémantiques directement dans le navigateur via le service Power BI.
Cela ouvre la porte à des modifications rapides en production sans télécharger le modèle ni ouvrir Power BI Desktop. L'éditeur web supporte l'édition de propriétés, les partitions, et les propriétés avancées comme isAvailableInMdx.
C'est encore en preview, mais la direction est claire : le code-first devient le standard pour la modélisation sémantique dans l'écosystème Power BI.
Quand utiliser TMDL - et quand s'en passer
TMDL n'est pas la réponse à tout. Voici un guide décisionnel rapide :
| Situation | Outil recommandé |
|---|---|
| Créer un modèle de zéro (tables, relations) | Interface graphique |
| Modifier 1-2 mesures | Interface graphique ou DAX Query View |
| Modifier 20+ mesures / propriétés en masse | Vue TMDL |
| Accéder à des propriétés cachées | Vue TMDL ou Tabular Editor |
| Pipeline CI/CD complet | PBIP + Git + Tabular Editor |
| Partager un composant de modèle | Vue TMDL (copier-coller le script) |
| Audit rapide de la structure d'un modèle | Vue TMDL (scripter et lire) |
L'idée n'est pas de tout faire en TMDL, mais de savoir quand c'est le bon outil. Pour les modifications en masse, l'accès aux propriétés cachées et le partage de scripts, c'est imbattable.
Conclusion
TMDL transforme Power BI Desktop d'un outil purement graphique en un environnement de développement professionnel. Les 5 cas d'usage qu'on a vus - modifications en masse, propriétés cachées, réutilisation de composants, édition Power Query et versioning Git - couvrent des problèmes concrets que tout développeur BI rencontre au quotidien.
La fonctionnalité est GA, gratuite, et ne demande aucun outil externe. Si vous ne l'avez pas encore essayée, glissez une table dans la vue TMDL et explorez. C'est le meilleur moyen de comprendre la valeur ajoutée.
Vous souhaitez structurer vos projets Power BI avec les meilleures pratiques de développement ?
Nous accompagnons nos clients dans la mise en place de workflows professionnels (versioning, CI/CD, standards de modélisation) adaptés à leur contexte.
Contactez l'équipe Datapilot
Conseil d'expert
Pour une utilisation optimale de TMDL, nous vous recommandons d'utiliser Visual Studio Code avec l'extension "Power BI TMDL" qui offre la coloration syntaxique et l'autocomplétion spécifiques à ce langage.