officetuning/skill-library

tmdl-pbir

Formatos de texto do Power BI Project (.pbip) — TMDL para o modelo semântico e PBIR para o relatório.

View source

How to use

  1. Copy the installation command and review the source package before installing it in your own agent environment.
  2. Check the source document for required tools, credentials and supported hosts.
  3. Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/officetuning/skill-library --skill tmdl-pbir

Before you start

  • Installation does not include a model subscription, API allowance or permission to access your files.
  • Repository stars and installation counts describe activity, not an independent quality or security test.
Original skill document

Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.

TMDL e PBIR

Um Power BI Project (.pbip) salva em pastas separadas, em texto amigável ao Git:

ParteFormatoPasta
Modelo semânticoTMDL*.SemanticModel\definition\
RelatórioPBIR*.Report\definition\

Os dois trocam um JSON monolítico por um arquivo por objeto: alterar uma medida gera diff em um único arquivo de tabela.

TMDL essencial

tmdl
table Vendas

    /// Soma o valor líquido das vendas. Exclui cancelados e devoluções.
    measure 'Total de Vendas' = SUM ( Vendas[Valor da Venda] )
        formatString: R$ #,##0.00
        displayFolder: Vendas

    column 'Código do Cliente'
        dataType: int64
        isHidden
        summarizeBy: none
        sourceColumn: CodigoCliente

    partition Vendas = m
        mode: import
        source =
            let
                Origem = Sql.Database(Servidor, Banco),
                Dados = Origem{[Schema = "dbo", Item = "VwFatVenda"]}[Data]
            in
                Dados
RegraSintaxe
Declarar objeto<tipo> <nome>
Nome com espaço, ., =, : ou ''Nome do Objeto' (aspas simples internas duplicadas '')
Propriedade comumpropriedade: valor
Booleano verdadeirosó o nome: isHidden
Propriedade padrão / expressãomeasure Nome = <expressão>
Expressão multilinhaum nível de indentação a mais que as propriedades
Preservar formatação exatadelimitar com logo após o =
Descrição/// na linha imediatamente acima, sem linha em branco
Referenciar sem redeclararref table Vendas
Nome qualificado'Tabela'.'Coluna'
Indentação1 tab por nível; erro de indentação = erro de parsing

Script de alteração — um só verbo por script:

tmdl
createOrReplace

    ref table Vendas
        measure '# Pedidos' = DISTINCTCOUNT ( Vendas[Código do Pedido] )
            formatString: #,##0

createOrReplace substitui o objeto e todos os descendentes: ao usar table Produto sem ref, colunas e medidas omitidas somem. Para acrescentar uma medida, use ref table.

UDFs são objetos function e ficam em definition/functions.tmdl:

tmdl
createOrReplace

    /// Aplica imposto sobre um valor.
    function 'Fiscal.ComImposto' = (valor : NUMERIC) => valor * 1.1

Sintaxe, tipos de parâmetro e padrões de UDF: skill dax-udf.

TMDL view: editar em lote

A TMDL view (GA no Desktop, qualquer licença) mostra fórmula, formato e pasta de exibição juntos. Receitas:

TarefaComo
Mover várias medidas para uma pastaArraste as medidas para o editor, troque displayFolder: de todas com Ctrl + H, Apply
Corrigir formato em loteLocalize formatString: 0.00 e substitua pelo padrão (ex.: #,0.00)
Renomear com padrãoCtrl + F com expressão regular; confira dependências antes
Copiar tabela para outro modeloArraste a tabela, copie o script, cole na TMDL view do outro modelo
Backup antes de mudança grandeArraste o modelo inteiro e salve o script (fica em TMDLScripts\ no .pbip)

A TMDL view aplica na hora. Editar arquivos .tmdl fora do Desktop exige reiniciar o Desktop, a menos que o recurso em preview Detect and reload external PBIP changes (Desktop agosto/2026) esteja ligado: aí aparece o aviso Apply external changes. Ele não recarrega o cache.abf.

Estrutura de pastas, tabela de propriedades que são expressão, API .NET (TmdlSerializer), exceções e fontes: references/tmdl.md.

PBIR essencial

definition\
├── pages\
│   ├── pages.json                 (ordem das páginas)
│   └── [pagina]\
│       ├── page.json              (obrigatório)
│       └── visuals\[visual]\visual.json   (obrigatório: posição, formatação, query)
├── bookmarks\
├── version.json                   (obrigatório)
└── report.json                    (obrigatório)
  • Cada arquivo declara um JSON Schema público; o VS Code valida e dá IntelliSense.

Schemas: microsoft/json-schemas.

  • definition.pbir aponta o modelo: byPath (caminho relativo, edição completa)

ou byConnection (live connect; obrigatório via Fabric REST API).

  • Nome de pasta/arquivo: letras, dígitos, _ ou -. Renomear exige reiniciar o

Desktop e pode quebrar referências.

  • ⚠️ visual.json e bookmarks podem guardar valores de dados (filtro

'Company' = 'Contoso', seleção de slicer). Cuidado ao versionar em repositório público.

  • ⚠️ Converter PBIR-Legacy → PBIR não se desfaz pela interface. Salve uma cópia antes.

Status (02/10/2026): PBIP e PBIR estão em disponibilidade geral (GA) e o PBIR é o formato padrão de relatório. Ao editar e salvar um relatório PBIR-Legacy, o Power BI converte para PBIR. Status muda: confirme na documentação antes de afirmar.

Habilitar, converter, restaurar, recursos avançados, erros comuns e limites: references/pbir.md.

PBIP + Git: a rotina mínima

Antes: instale Git e VS Code; salve como Power BI Project (.pbip).

`.gitignore`: o Desktop cria sozinho (se ainda não existir) com:

**/.pbi/localSettings.json
**/.pbi/cache.abf

cache.abf é o cache com dados: nunca versionar. Sem ele, o Desktop abre o modelo completo, só sem dados (basta atualizar).

Começar: VS Code → abrir a pasta do projeto → Source Control → Initialize Repository → primeiro commit.

AçãoComoDica
Gravar versãoCommit depois de cada mudança que funcionaMensagem diz o porquê: "Margem % passa a excluir devoluções"
RevisarVeja o diff antes do commitUma medida alterada aparece só no .tmdl da tabela
Desfazer o que não foi gravadogit restore <arquivo>—
Voltar um arquivo a um commit anteriorgit checkout <commit> -- <arquivo>—

⚠️ Feche o Power BI Desktop antes de restaurar, trocar de branch ou fazer git pull: sem o recurso em preview de recarga externa, o Desktop só relê os arquivos ao abrir e pode sobrescrever a versão restaurada ao salvar.

⚠️ unappliedChanges.json guarda alterações do Power Query ainda não aplicadas; ao aplicar, elas sobrescrevem consultas editadas fora do Desktop.

Agente de IA alterando o modelo (MCP): comece de um commit limpo e revise o diff no fim. Ver skill powerbi-mcp. Pipeline (BPA, binding, CI/CD): skill bi-qa-documentacao.

Posição dos visuais

O bloco de posição do visual.json (x, y, z, width, height, tabOrder, em pixel, origem no canto superior esquerdo) recebe as coordenadas do grid da skill dashboard-layout. Confirme o formato no schema antes de editar em lote.

Related by task

from this repository

More skills

All skills
officetuning
Community

bi-nomenclatura

Padrão Corporativo de Nomenclatura para SQL, ETL e modelo semântico Power BI — prefixos Tab/Vw/Pr/Fn/Cns, TabDim/TabFat/TabPon/TabFlt, fronteira entre camada física e semântica, nomes de medida e a convenção de comparativo temporal AV/AA/Δ/Δ%/Δi. Use ao nomear ou renomear tabela, view, procedure, consulta, coluna ou medida, ao escolher prefixo, ao criar alias SQL ou ao nomear medida que compara com o ano anterior.

installs
1
GitHub stars
1
Updated
Oct 3
officetuning
Community

bi-qa-documentacao

Documentar e validar um modelo Power BI antes de publicar — descrição de medida com /// na DAX Query View, QA em três camadas (Best Practice Analyzer pelo Tabular Editor CLI, smoke test de medidas via XMLA, binding visual.json × TMDL), pipeline de CI/CD e geração de documentação .docx a partir do TMDL/PBIR. Use para documentar medida no código, checklist de publicação automatizado, validar PBIP, CI/CD Power BI, testar medidas por script, visual quebrado, dicionário de dados, handoff ou "gerar Wo

installs
1
GitHub stars
1
Updated
Oct 3
officetuning
Community

dashboard-canvas

Método Dashboard Canvas (OfficeTuning) para planejar um relatório Power BI antes de abrir o Desktop — 12 blocos em 4 fases (Descoberta, Dados, Governança, Execução), taxonomia de tabela e campo, matrizes Tipo de Dado × Segmentação e Tipo de Dado × 5W2H, anatomia de página e revisão de modelo existente contra o Canvas. Use em briefing de BI, workshop com cliente, escopo de dashboard, cronograma de projeto BI, 5W2H ou "planejar dashboard". Para posição em pixel dos visuais use dashboard-layout.

installs
1
GitHub stars
1
Updated
Oct 3
officetuning
Community

dashboard-layout

Wireframe, grid e sistema visual de relatórios Power BI — base 8px, grid 12×9 sobre canvas 1920×1080, conversão para x/y/width/height do visual.json, zonas reservadas e modos de filtro do Background Builder, tooltip 400×304, paleta derivada de Accent/Navy e o bug de fuso horário em "última atualização" no Service. Use para definir onde cada visual fica, padronizar layout entre páginas, montar um relatório a partir do Background Builder, diagnosticar relatório desalinhado ou data de atualização e

installs
1
GitHub stars
1
Updated
Oct 3