---
title: "Study Plant Curto Seletividade"
method: POST
path: "/api/v1/study/plant/curto-seletividade"
tags: ["estudo"]
---

# Study Plant Curto Seletividade

`POST /api/v1/study/plant/curto-seletividade`

## 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/study/plant/curto-seletividade`
- Auth: none declared

O ESTUDO DE CURTO-CIRCUITO E SELETIVIDADE da planta (G335).

O documento de quem entrega o estudo de PROTEÇÃO, e não o de arco: as
correntes de curto de todas as barras, a capacidade de interrupção de cada
dispositivo e a coordenação barra a barra, da MESMA rede resolvida. Nada é
recalculado para o documento: a rede é a do `network/solve`, a capacidade de
interrupção é a do `_duty_da_planta` e a seletividade de cada barra é a do
`study/bus` — os números da tela. O portão é o do caderno (o Termo e a
ciência dos alertas da rede), porque a decisão de emitir é da planta.

O coordenograma só sai onde a seletividade se aplica — duas ou mais proteções
em série —, e a passada que decide isso é SEM figura (a folha custa 1–2 s por
barra); as demais barras ficam nas tabelas e nas conclusões, nomeadas.

## Request body

- CurtoSeletividadeRequest: O ESTUDO DE CURTO-CIRCUITO E SELETIVIDADE da planta (G335): o corpo do caderno — a mesma rede, as mesmas proteções e o mesmo portão de emissão —, mais o que só este documento escolhe. As camadas de ARCO da folha não são escolha: saem sempre desligadas, porque o documento não trata de arco.
  - `rede` NetworkRequest, required: Os registros dos data_editors (o mesmo contrato da tool `montar_rede`).
    - `unifilar_interativo` boolean: marca cada símbolo com `data-elem` para o clique (G126). É OPT-IN: o SVG default continua byte a byte o do laudo
    - `protecoes` Protecao[]: as proteções posicionadas, só para o DESENHO — elas não entram no cálculo de curto-circuito. Sem elas o diagrama sai sem os símbolos de proteção, e quem acabou de pôr um disjuntor pelo desenho não o veria aparecer. Lista vazia = o SVG de sempre.
      - `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)
    - `datablock` 'curto' | 'arco' | 'adequacao' | 'protecao': O QUE cabe no bloco de dados de cada barra, decidido no SERVIDOR — não é filtro de tela. `curto` traz as quatro correntes; `arco` traz só a Ik3φ, porque a energia e o tempo entram pelo estudo e quatro correntes ao lado deles tornam o bloco ilegível; `adequacao` traz Ik3φ e ip, que são as duas que o duty compara; `protecao` traz a máxima e a MÍNIMA, que são os limites entre os quais o pickup vive
    - `unifilar_subrede` string, nullable: id de barra: desenha só a ÁREA dela (a barra e o que está a jusante). As áreas da rede vêm em `areas`; None = a folha da rede inteira
    - `barras` object[], required: as barras (id, label, Vn_kV) — até 500 por rede (G342)
    - `elementos` object[], required: transformadores, cabos, barramentos e reatores — até 1000 por rede (G342)
    - `fonte` object, nullable: a concessionária no ponto de conexão. Ausente (ou nula) só na rede alimentada por gerador — sem nenhum dos dois é recusa de forma
    - `motores` object[], nullable
    - `geradores` object[], nullable: geradores síncronos por barra (G334, IEC 60909-0 §6.6.1): bus_id, label, Sn_kVA, xd2_pu, cos_phi e os opcionais U_rG_kV, x0_pu, aterramento, Rn_ohm
    - `cenarios` object[], nullable: os cenários de OPERAÇÃO (G336): nome, `fontes` em serviço ('concessionaria' e as barras com gerador; ausente = todas) e `abertas` (os elementos abertos, [DE, PARA] ou 'DE→PARA'). Com eles o estudo de arco de cada barra é o do cenário de MAIS energia
    - `lang` string
    - `unifilar` boolean
    - `folha` Folha: Carimbo do unifilar (sheet_meta): o que a UI sabe do estudo.
      - `local` string
      - `equip` string
      - `resp` string
      - `crea` string: registro do responsável no CREA
      - `art` string: nº da ART do estudo
      - `rev` string: identificação da revisão (ex.: 'rev 3')
      - `rev_data` string: data da revisão, como o emissor a escreve
      - `wl_name` string
  - `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)
  - `ajustes` object: por placement_key, como em study/bus
  - `geometria` object: por id de barra
  - `cb_open_ms` number: tempo de abertura do disjuntor (ms) — o MESMO da folha: a etiqueta tem de dizer a energia que o estudo da barra diz
  - `t_sem_atuacao_ms` number, nullable: OPÇÃO, desligada por padrão (nulo): o tempo máximo de arco, em ms, adotado na barra cuja proteção EXISTE e não vê nenhuma das correntes de arco (G329). Com ela a barra ganha energia no tempo declarado — sem somar abertura — e a marca `t_max_adotado = sem_atuacao`; sem ela, sai sem número, como sempre. Maior que zero e no máximo 2000 ms (IEEE 1584:2018 §6.9.1), senão 422. A barra sem proteção declarada continua sem número, e o alerta `retaguarda_cega` permanece
  - `banda_padrao` 'norma', nullable: a banda padrão do disparador de curto-circuito — a MESMA opção do estudo da barra (ver `StudyRequest.banda_padrao`): a etiqueta tem de dizer a energia que a folha diz. Nulo = a curva nominal
  - `base_ibf` 'pior_caso' | 'nominal', nullable: OPÇÃO, desligada por padrão (nulo = a corrente de curto MÁXIMA, como sempre): 'pior_caso' calcula cada barra também com a corrente MÍNIMA (IEC 60909-0 §7.1.2, ou a fonte mínima que a concessionária declara em `fonte.Icc_min_kA`) e fica com a que dá MAIS energia no cenário governante (NBR 17227 §4.2.1.3 e §5.1.12). O modo que governou sai em `ibf_base` de cada cenário; a corrente mínima que não pôde ser calculada é 422. 'nominal' (G328) calcula a energia com a corrente de TENSÃO NOMINAL — c = 1,0 no ponto de falta, sem K_T e os cabos em `t_cabo_C` (nulo = a temperatura de cada cabo): a base dos estudos feitos em tensão nominal, FORA do §7.1.2, dita no laudo; a máxima da norma segue dimensionando a barra
  - `t_cabo_C` number, nullable: a temperatura dos cabos (°C) na base `nominal` de Ibf (G328): nula = a temperatura declarada em cada cabo. Só vale com `base_ibf='nominal'`
  - `barras` string[], nullable: subconjunto de barras; None = todas as que têm estudo
  - `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
  - `ciencia` CienciaIn: O que a tela declara ao pedir um documento assinável: o Termo aceito e o `hash` do conjunto de alertas de que deu ciência.
    - `termo_aceito` boolean
    - `hash` string
  - `projeto` string
  - `responsavel` string
  - `revisoes` Revisao[]: histórico de revisões da planta, na ordem em que foi escrito; a vigente é a ÚLTIMA
    - `n` string, required: identificação da revisão, como o emissor a escreve
    - `data` string
    - `motivo` string
  - `estudos` object: por slug de ESTUDOS_DA_PLANTA (arco, curto, coordenograma, seletividade, partida): a revisão contra a qual cada um foi feito
  - `emissao` EmissaoDocumento: 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
  - `origem` string: procedência do MODELO (`_gerado_por`): rede montada por IA a partir dos documentos do engenheiro — a conferência é dele, e o documento registra de onde veio o modelo
  - `memoria_curto` boolean: o Anexo A: a memória de cálculo do curto-circuito (equações), por barra
  - `camadas_elemento` CamadasElemento: As camadas que o PRÓPRIO unifilar define para a folha: o dano do transformador que alimenta a barra, a partida dos motores dela e o dano k²S² do CABO que chega nela. As três juntas são o coordenograma de um motor — a curva de partida dele, o limite do cabo que o alimenta e a proteção que fica entre os dois — e é por isso que inserir um motor pelo diagrama cria também a barra dos terminais e o cabo: sem eles, duas dessas camadas não existem. Desligadas por omissão — a do transformador abre o eixo de tempo até ~1100 s, e ligá-la por padrão mudaria em silêncio a forma de toda folha existente.
    - `trafo` boolean
    - `motor` boolean
    - `cabo` boolean

## Response `200`

Successful Response

## Other responses

- `402`: exige assinatura ativa
- `409`: o conjunto de alertas mudou desde a ciência
- `422`: Validation Error
- `428`: sem o Termo aceito e a ciência dos alertas

---

[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)
