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.

ソースを見る

使い方

  1. インストールコマンドをコピーし、自分の環境へ導入する前にソースを確認します。
  2. 必要なツール、認証情報、対応環境を原文で確認します。
  3. 入力と成果物を指定し、出力を資料と照合します。
npx skills add https://github.com/officetuning/skill-library --skill tmdl-pbir

開始前の確認

  • 導入にはモデル契約、API枠、ファイルへのアクセス許可は含まれません。
  • スター数や導入数は活動の指標であり、独立した品質・安全性試験ではありません。
リポジトリの原文

見出し、例、コード、表、リンク、参照画像を含む原文を表示しています。

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.

タスクに関連する項目

同じリポジトリから

関連する Skills

すべての Skills
officetuning
コミュニティ

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.

導入数
1
GitHub Stars
1
更新日
10月3日
officetuning
コミュニティ

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

導入数
1
GitHub Stars
1
更新日
10月3日
officetuning
コミュニティ

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.

導入数
1
GitHub Stars
1
更新日
10月3日
officetuning
コミュニティ

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

導入数
1
GitHub Stars
1
更新日
10月3日