You built the data model in Power BI Desktop — your tables, your relationships, your measures, over your own sources on your own computer. What you do not want to do by hand is the report. This page is the whole workflow: hand DASH:Gen the definition of your model, get back a report bound to it, open it in Desktop, refresh, done. Your data never leaves your computer, and your model is never changed.
There are two ways to do it. In the browser, with a file you export from Desktop. From your AI assistant (Claude Code, Claude Desktop, Cursor, VS Code) through the DASH:Gen MCP server, which reads the model straight from your project folder and puts the report back beside it. The result is the same; the assistant route needs no export and no unzipping.
1. What goes up, what comes back
| Goes to DASH:Gen | Stays on your computer | Comes back | |
|---|---|---|---|
| Model definition | table, column and measure names, types, DAX, relationships, the date table | — | untouched |
| Data sources (Power Query, connection strings, file paths, SharePoint sites) | browser upload of a .pbit: yes, inside the template. Zipped project, and always through the MCP server: no — the partitions' sources are stripped | your sources | as uploaded (.pbit) or as they were (project) |
| Rows | never | all of them | none — the visuals are empty until you press Refresh |
| The report | — | — | new: pages, visuals, filters, the look you chose |
The agents design the dashboard on rows invented from the model — the types, the date table, the relationships decide their shape — so nothing you see in the finished report is a statement about your data until Desktop has refreshed it against your sources.
A model run costs one Power BI run, the same as a run from a data file.
2. In the browser
2.1 Export the model from Power BI Desktop
Open your .pbix (or .pbip) in Desktop and choose File → Export → Power BI template (.pbit). A template holds the model and the current report layout and no data — that is what makes it small and what makes it the right thing to upload. Give it any description; the description is not read.
You may instead zip your project folder (File → Save as → Power BI project (.pbip), then zip the folder that holds <Name>.pbip, <Name>.SemanticModel and <Name>.Report). Leave the .pbi folder inside <Name>.SemanticModel out of the zip if you can: it is Desktop's local cache of your rows, it is not read, and it can push the upload past the size cap. A .pbix is not an upload — its model and its data share a part only Desktop can write.
2.2 Upload it as the source
On the DASH:Gen window, switch to Power BI at the top of the window, then drop the .pbit (or the zip) where a data file goes. The source panel recognises a model and shows its tables instead of sheets — each with its role (fact, dimension, date), its columns and its measures in brackets — and the note that your model is returned as it is. Switch to HTML or Apache Superset and the model stays in the panel, marked, with Generate greyed out: a model is Power BI's alone.
2.3 Say what the report should show
Write the brief the way you would tell a colleague, naming the model's own things: "Revenue by region and month, gross margin trend, top ten customers by revenue, one page per sales channel." The design agent references your measures by name ([Total Revenue]) and your columns as Table[Column], so the closer your words are to the field list, the closer the report is to what you meant.
Choose a design and colours, or a Power BI theme and Visual-Templates, as for any Power BI run. Under the Power BI options one switch is new: Add measures, off by default. On, the agent may create measures the report needs (a ratio, a share); they are delivered as one file beside the project (§4), never written into your model.
2.4 Generate, and see it before you download it
Run Power BI. While it runs, the window says what it is doing: reading your model, inventing rows to design on, designing the report, writing the template. When it lands, the report is drawn in the window — its pages and visuals, on rows invented from your model. Every number there is made up: the rows exist so the report has a shape, and a measure is shown as a stand-in, not computed. Your real numbers appear when you open the file in Desktop and press Refresh.
Before you download, you can change it:
- A visual's type — click the visual and choose another (Clustered bar, Pie chart, Matrix, …). A type the report could not draw with that visual's fields is refused with the reason. Free.
- The look — Change look: a design and its colours, or a Power BI theme. Free.
- Anything the AI has to do again — write it under Change this report ("add a dimension", "split the revenue page by country", "one page per channel") and make a new version. The model is designed again with everything you asked so far; it costs one Power BI run. Earlier versions stay in the strip above and come back with one click, free.
Nothing is rebuilt until you download: the file is built then, from what the window shows.
2.5 Download, open, refresh
Choose the file under Change this report — the template (.pbit, for a .pbit upload) or the project (.pbip, zipped) — and download it. A project comes as a zip. Extract the whole zip to a folder — the .pbip inside refers to its sibling folders by relative path, and Windows' compressed-folder view extracts only the file you double-click. Inside:
<Dashboard>.pbip open this
<Dashboard>.Report/ the new report
<YourModel>.SemanticModel/ your model folder, exactly as uploaded (zip upload)
or re-emitted from the template (.pbit upload)
README.txt what was read, what was not drawn and why
Open <Dashboard>.pbip in Power BI Desktop. The pages are there and every visual is empty. Press Refresh: Desktop reads your sources exactly as your model always did — it may ask for credentials the first time, as it would for any project — and the visuals fill with your data. Save as .pbix if you want one file.
A .pbit upload can also come back as a .pbit (choose PBIT as the output format): your template exactly as you exported it — the model, the settings and every other part byte for byte — with only the report replaced, written in the same report format your template used. Open it in Desktop, and it asks for the parameters and sources your template always asked for. This format has not yet been confirmed on every Desktop version; if yours refuses the file, choose PBIP.
3. From your AI assistant (MCP)
Install the DASH:Gen MCP server once (the AI assistants (MCP) page — an API key from Account → API keys, one command in your assistant). Then, in your assistant, with the project folder open or its path at hand:
You: Build a sales dashboard on
~/reports/Sales/Sales.pbip— revenue by region and month, gross margin, top customers. One page per channel.Assistant: (inspect_model) Five tables — Sales (fact), Customer, Date, a measures table; measures Total Revenue, Gross Margin %, Order Lines… (generate_report_for_model) Done —
Sales Dashboard.pbipandSales Dashboard.Reportare beside your model. Open the .pbip in Power BI Desktop and press Refresh. It cost 0.5 Coins.
What the two tools do:
inspect_modelreads the model on your disk — the.pbip, its.SemanticModelfolder, or a.pbit— and lists tables with their roles, columns, measures with their descriptions, the relationships and the date table. It uploads nothing and costs nothing. Use it, or let the assistant use it, to name the right measures in the prompt.generate_report_for_modelsends the model's definition only: every partition's source (the M that names your SharePoint site, your server, your file paths) is removed before upload, the.pbicache and your existing report are never read. It waits for the run and writes<Name>.Report/and<Name>.pbipbeside your model folder — never inside it, never over an existing folder (a taken name becomes… (2)). TheREADME.txtlands beside them as<Name>.README.txt. Open the new.pbipin Desktop and press Refresh; the report'sdefinition.pbirpoints at the.SemanticModelfolder you already have.
Your existing <Name>.Report stays what it was: the new report is a second one on the same model. To fold pages from the new report into your own, copy the page folders from <Dashboard>.Report/definition/pages/ and add their names to your report's pages.json.
4. Measures the agent adds
With Add measures on (in the browser) or add_measures: true (assistant), measures the design needs and the model lacks arrive as one file, definition/tables/_Measures.tmdl, beside the project (the assistant saves it as <Name>._Measures.tmdl). Copy it into your model's definition/tables/ folder and refresh: TMDL loads a table file even when model.tmdl does not list it, so nothing of yours is edited. A model saved as model.bim, or a .pbit, gets the same measures as DAX in the README instead, to create by hand.
Off, which is the default, the report uses your measures and nothing else — the safer choice when the model is yours to keep tidy.
5. What the report can and cannot use
- Visible objects only. A hidden table, a hidden column or a hidden measure is never offered to the design; hide what the report should not touch.
- Measures are the metrics. A column is never summed by a visual on a model run; a model with few measures gets tables and slicers from its columns. Add the measures you want charted, or switch Add measures on.
- Relationships decide what can share a visual. A measure on a fact and a column on a dimension it does not reach are not drawn together; the README names every chart left out and why. A measure on a measures-only table counts as the tables its DAX reads.
- The date table. A table marked as the date table (Mark as date table in Desktop, or
dataCategory: Time) is where time axes go; without one, the axis is the fact's own date column. - Renaming later. The report references your names. Rename a column in the model and the visual that used it goes blank, as with any report — re-run with the same prompt, or fix the field in Desktop.
6. Refreshing with your local data, step by step
- Extract the download (or, with the assistant, nothing to extract).
- Open the new
.pbipin Power BI Desktop. - Desktop shows the pages with empty visuals and, if it has not seen the sources on this machine before, asks how to sign in — the same prompts your own project gives.
- Home → Refresh. Every table loads from your sources: the files, the SharePoint list, the SQL Server — whatever your partitions already named.
- Check the README's charts not drawn list for anything you expected and did not get, and adjust the prompt or the model for the next run.
Nothing in these steps sends data anywhere. The model refreshes on your computer against the same sources it always used, because the partitions that name them were never rewritten.
7. If something is refused
| Message | What it means |
|---|---|
| A Power BI model is generated for Power BI only — choose that target | The model was dropped, or is held, while HTML or Apache Superset is selected at the top of the window |
| A model upload stands alone | A data file was attached beside the model; the tables come from the model |
| … holds no semantic model | The zip has no definition.pbism, no definition/*.tmdl and no model.bim — zip the project folder, not the .pbix |
| … holds 2 semantic models | Two projects in one zip; zip the one the report is for |
| DATASET cannot be generated on a model upload | A stages selection named DATASET; a model run generates charts and the dashboard only |
| Log in to build a report on your own model | The no-account trial takes data files only |
| a .pbit output needs a .pbit upload | A zipped project comes back as a project; choose PBIP |
The README of every download lists what the reader skipped in your model (an unfamiliar property, a second partition) — none of it stops the run.
DASH:Gen