---
title: "Compose Project"
method: POST
path: "/api/v1/projects/compose"
tags: ["projetos"]
---

# Compose Project

`POST /api/v1/projects/compose`

## Request

- Base URL: `https://app.estudoseletricos.com` (the document declares no server; this is the origin it was published from)
- URL: `https://app.estudoseletricos.com/api/v1/projects/compose`
- Auth: none declared

O documento do Workspace no formato do "Salvar projeto" da plataforma.

O espelho de `projects/convert`, e o que faz o Workspace ser um DOCUMENTO:
até aqui ele ABRIA o projeto da plataforma e não produzia nenhum — a rede, os
ajustes, a geometria por barra e a revisão viviam até o F5.

Compor é DOMÍNIO, não montagem de JSON: onde os ajustes moram para a
plataforma os ler (`coord.cfg`, nas keys `topo_*`), como a posição da
proteção é escrita, e o que a EMISSÃO nova deve ser — o arquivo salvo é
sempre a próxima emissão do que foi aberto, como no botão da plataforma.
Não toca no banco: guardar é a rota do CRUD, com a identidade dela.

## Request body

- ComporIn: O documento do Workspace, para virar o `.json` do 'Salvar projeto'.
  - `base` object, required: o projeto v5 que o `network/solve` devolveu — é de lá que sai o bloco `mb`, montado pelo núcleo a partir da MESMA rede que produziu o resultado
  - `anterior` object, nullable: o projeto ABERTO: o que esta interface não entende (ferramentas da suíte, white-label, campos do estudo de arco) viaja INTACTO, e a emissão nova é a próxima da dele
  - `protecoes` Protecao[]
    - `kind` 'bus' | 'edge', required
    - `ref` union, required: id da barra ('bus') ou [from_id, to_id] ('edge')
      - string
      - string[]
    - `label` string
    - `model_id` string, nullable: id no devices_db; None = ajuste manual
    - `color` string
    - `ajustes` object, nullable: ajustes DESTA proteção (curve, in, ir, tms, isden, isd, tsd, iien, ii, tinst, tab) e a tolerância DIGITADA de quem o banco não declara banda: toli (± % nos pickups), tolt (± % no tempo das curvas L e S) e tolii (± % só na instantânea — vence o toli no Ii). A identidade (placement_key) é resolvida no servidor, onde ela é definida — o cliente não a calcula. Fusível e MCB são de BANDA: aqui não há ajuste a fazer e o que vier é ignorado pelo núcleo. A curva TÉRMICA tabelada (G325), para o modelo cujo banco não a declara: `pts` (pontos [múltiplo, t_s] da borda lenta), `pts_rapida` (a rápida, opcional), `pts_base` ('Ir' ou 'In', obrigatória) e `pts_fonte` (de onde vieram)
  - `geometria` object
  - `revisoes` Revisao[]
    - `n` string, required: identificação da revisão, como o emissor a escreve
    - `data` string
    - `motivo` string
  - `estudos` object
  - `ident` object
  - `parametros` ParametrosDoEstudo: Os parâmetros do estudo que o projeto guarda ao lado dos ajustes (no `coord.cfg` da plataforma): o tempo de abertura do disjuntor, que entra na energia, as camadas de leitura da folha e o modo manutenção.
    - `cb_open_ms` number: tempo de abertura do disjuntor (ms)
    - `camadas_folha` CamadasFolha: As camadas de LEITURA da folha TCC — as mesmas da aba do coordenograma (`coord_show_*`). Nenhuma muda número: o tempo, a energia e o ponto de operação continuam calculados com elas desligadas (G128). A omissão é a folha que esta rota sempre desenhou.
      - `arco` boolean: verticais da corrente de arco (plena e reduzida) com os marcadores de operação. Desligada, a folha é de PROTEÇÃO pura — a que vai à concessionária
      - `ibf` boolean: vertical da falta franca da barra
      - `ikmin` boolean: corrente MÍNIMA (§7.1.2): pickup à direita dela não detecta a falta no fim do circuito
      - `ponto_ei` boolean: ★ no ponto de operação, com a energia e a categoria
      - `zonas_ei` boolean: fundo por categoria da NBR 17227 (1,2 · 12 · 40 cal/cm²), com a geometria da própria barra
      - `ith` boolean: corrente TÉRMICA equivalente Ith = Ik″·√(m+n) (Cláusula 14) no tempo de eliminação da própria folha. Sem duração não há grandeza térmica: a marca não sai, e `camadas_fora` diz por quê
      - `seletividade` boolean: as FAIXAS de corrente em que um par adjacente da cadeia reprova a seletividade (IEC 60255-151, margem de 15 %), atrás das curvas. O veredito é o de `seletividade`; par não verificado não tem faixa, e sem par reprovado a camada volta em `camadas_fora` com o motivo
    - `erms_on` boolean
    - `erms_ii_pu` number
    - `geometria_padrao` GeometriaPadrao: A geometria padrão da PLANTA por classe de tensão — o 'study case' do arco (W6). Cada classe é uma declaração PARCIAL sobre o padrão do núcleo (o campo nulo continua sendo o dele), e a declaração POR BARRA prevalece sobre as duas. Duas classes porque o padrão do núcleo tem duas (até 1 kV · acima).
      - `bt` Geometria: A geometria de arco DAQUELA barra — uma declaração PARCIAL sobre o padrão por tensão do núcleo (BT: G=32 · D=610 · MT: G=152 · D=914). Nenhum campo é obrigatório e nenhum tem default AQUI: quem sabe o padrão é o núcleo, e repeti-lo no contrato seria a segunda definição dele. O que vier nulo continua sendo o padrão — é o que permite declarar só a distância de trabalho de cinquenta barras sem afirmar medição do resto.
        - `G` number, nullable
        - `D` number, nullable
        - `W` number, nullable
        - `H` number, nullable
        - `P` number, nullable
        - `cfg` string, nullable
        - `confirmado` boolean, nullable: a geometria foi CONFERIDA em campo, e não assumida do padrão por tensão. Não muda cálculo nenhum — muda o que o memorial afirma, e afirmar que se mediu o que se herdou é o começo de um laudo errado
      - `mt` Geometria: A geometria de arco DAQUELA barra — uma declaração PARCIAL sobre o padrão por tensão do núcleo (BT: G=32 · D=610 · MT: G=152 · D=914). Nenhum campo é obrigatório e nenhum tem default AQUI: quem sabe o padrão é o núcleo, e repeti-lo no contrato seria a segunda definição dele. O que vier nulo continua sendo o padrão — é o que permite declarar só a distância de trabalho de cinquenta barras sem afirmar medição do resto.
        - `G` number, nullable
        - `D` number, nullable
        - `W` number, nullable
        - `H` number, nullable
        - `P` number, nullable
        - `cfg` string, nullable
        - `confirmado` boolean, nullable: a geometria foi CONFERIDA em campo, e não assumida do padrão por tensão. Não muda cálculo nenhum — muda o que o memorial afirma, e afirmar que se mediu o que se herdou é o começo de um laudo errado
    - `banda_padrao` 'norma', nullable: a banda padrão do disparador de curto-circuito (G330) guardada no projeto — a mesma opção de `StudyRequest.banda_padrao`
    - `t_sem_atuacao_ms` number, nullable: o tempo máximo de arco sem atuação (G329) guardado no projeto — a mesma opção de `StudyRequest.t_sem_atuacao_ms`
    - `base_ibf` 'pior_caso' | 'nominal', nullable: o pior caso de Ibf (G333) guardado no projeto — a mesma opção de `StudyRequest.base_ibf`
    - `t_cabo_C` number, nullable: a temperatura dos cabos da base nominal (G328) guardada no projeto — a mesma opção de `StudyRequest.t_cabo_C`
  - `lang` string

## Response `200`

Successful Response

- ComporOut: O projeto v5 pronto para salvar — e o que o gate teria a dizer sobre ele.
  - `projeto` object, required
  - `emissao` EmissaoDocumento, required: A emissão do DOCUMENTO (C32) — NÃO é a revisão da INSTALAÇÃO (G155). Uma conta quantas vezes o documento saiu (0, 1, 2…, com histórico) e avança sozinha a cada save; a outra é a identificação que o engenheiro declara ('rev 3', 'Rev. C') e diz o que a instalação é hoje. Estavam no mesmo campo, e o contador de emissões saía carimbado no unifilar como revisão vigente — uma revisão que ninguém declarou.
    - `n` integer, nullable: número da emissão que produziu o arquivo; nulo = documento nunca emitido
    - `data` string
    - `emissoes` integer: quantas emissões o histórico registra
    - `anterior_data` string: a data da emissão que esta substitui (a n−1); vazia quando não há anterior ou o histórico não a guarda
  - `avisos` string[]: o que o gate do CRUD apontou e não impede salvar

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/estudoseletricos/apis/arc-flash-platform-api.md) · [All operations](https://skmtc.dev/estudoseletricos/apis/arc-flash-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/estudoseletricos/apis/arc-flash-platform-api/revisions/5877d717cb1b?raw)
