Power BI für BIM 101 – Teil 3: DAX mit ChatGPT

In den letzten beiden Blogposts haben wir über die Grundlagen in Power BI gesprochen: Datenschemas und Beziehungen. Doch sobald man sich etwas intensiver mit Power BI beschäftigt, stößt man auf DAX.

DAX steht für Data Analysis Expressions und ist die Formelsprache von Power BI (sowie anderen Microsoft-Tools).

DAX-Formeln können durchaus kompliziert werden, aber mit Hilfe von LLMs wie ChatGPT sind sie deutlich einfacher zu meistern – und das möchte ich euch heute an einem einfachen Beispiel zeigen.

Schauen wir uns zunächst ein häufiges Szenario bei der Nutzung von Autodesk Data Exchange an. Der Autodesk Viewer unterstützt Federated Views – also das Aggregieren mehrerer Data Exchanges in der 3D-Ansicht. Für einfache Szenarien besitzen die Data Exchanges eine „Federated View“-Spalte, die dazu genutzt werden kann, mehrere Data Exchanges miteinander zu verbinden. Dazu werden in der Modellansicht einfach die einzelnen Felder aufeinander gezogen (Schritt 1 unten). Sobald diese Beziehung aktiv ist, können im Viewer-Visual die entsprechenden *.viewer-Spalten hinzugefügt werden (Schritt 2 unten):

Doch das ist eine einfache Beziehung und stößt schnell an ihre Grenzen, da sie keine komplexeren Datenauswertungen ermöglicht – wie zum Beispiel die Auswertung beider Data Exchanges in anderen Visuals. Sagen wir beispielsweise, wir möchten die Revit-Kategorien aus beiden Exchanges auswerten – das ist mit dem aktuellen Datenmodell nicht ohne Weiteres möglich. Natürlich können wir separate Auswertungen erstellen, und beide werden – sofern der Viewer wie im oberen Screenshot erstellt wurde – auch interaktiv mit dem Viewer verbunden sein:

Um Auswertungen über beide Tabellen hinweg durchführen zu können, also ein Visual zu erstellen, das Kategorien aus beiden Modellen auflistet, müssen wir diese zusammenführen. Es ist nicht möglich, mehr als eine aktive Verbindung zwischen verschiedenen Tabellen zu haben – und es gibt mehrere Ansätze, wie man in diesem Fall vorgehen kann. Ich habe sehr gute Erfahrungen damit gemacht, die Problemlösung gemeinsam mit ChatGPT zu erarbeiten und verschiedene Optionen zu evaluieren. Natürlich ist es auch möglich, andere LLMs zu nutzen – meiner Erfahrung nach bietet ChatGPT aktuell jedoch die besten Erklärungen und macht die wenigsten Fehler bei der Erstellung von DAX-Formeln.

Wenn du dir also unsicher bist, wie etwas in Power BI funktioniert – erkläre einfach ChatGPT kurz zusammen, wie deine Daten aufgebaut sind und was du erreichen möchtest, du wirst von dem Resultat überrascht sein.

Wenn du dir also unsicher bist, wie etwas in Power BI funktioniert, erkläre ChatGPT einfach kurz, wie deine Daten aufgebaut sind und was du erreichen möchtest – du wirst vom Ergebnis überrascht sein.

Ich habe nach einigen Konversationen folgenden Prompt genutzt, um den DAX Code für diesen Fall zu generieren:

You are a Power BI and DAX expert. Create a new table called Combined that combines data from the tables 'HVAC' and 'STR'.

The new table should:
- Include a column called RevitCategory based on [Revit Category Type Id]
- Include a column called FederatedViewerMapping based on [Federated Viewer Mapping]
- Include a column called Discipline to identify the source and use the original name of the table as value for each element
- Only include rows where RevitCategory is not empty

Und hier ist das Ergebnis diesen Prompts:

Combined =
FILTER (
UNION (
SELECTCOLUMNS (
HVAC,
"RevitCategory", HVAC[Revit Category Type Id],
"FederatedViewerMapping", HVAC[Federated Viewer Mapping],
"Discipline", "HVAC"
),
SELECTCOLUMNS (
STR,
"RevitCategory", STR[Revit Category Type Id],
"FederatedViewerMapping", STR[Federated Viewer Mapping],
"Discipline", "STR"
)
),
NOT ( ISBLANK ( [RevitCategory] ) )
)

Nun müsst ihr nur eine neue Tabelle anlegen, den Code eingeben und schließlich die Data Exchanges mit dieser neuen Tabelle verbinden (sie sollten nicht mehr direkt miteinander verbunden sein):

Anschließend könnt ihr diese Tabelle nutzen, um andere Visuals zu befüllen:

Nach demselben Prinzip können natürlich alle weiteren benötigten Werte übernommen werden – diese Vorgehensweise ist wesentlich effizienter und performanter, als alle verfügbaren Daten zu kopieren, da der DAX Code jederzeit erweitert werden kann.

Falls ihr Lust auf mehr bekommen habt – in wenigen Tagen halten wir ein Webinar, in dem wir uns genauer ansehen, wie wir weitere Daten einbinden und 4D-Simulationen direkt in Power BI erzeugen können. Lasst euch das nicht entgehen! 🙂

👉🏼 Hier geht es zur Webinaranmeldung

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..

Vorheriger Artikel
hand with silver glove holding a robot hand

Power BI für BIM 101 – Teil 2: Beziehungstipps