# Novidades do TopoSuite

## Versão 1.12.0 (maio/2026)

### 🟣 Nova camada: Assentamentos do INCRA no mapa

No **Visualizador de Mapa** (comando TP_VISUALIZADOR), agora tem uma camada nova chamada **"Assentamentos (INCRA)"**, junto das parcelas SIGEF e do CAR. Ligue ela no painel de camadas e os **Projetos de Assentamento** aparecem desenhados em **roxo** sobre o satélite, na sua região de trabalho.

Clicou num assentamento? O balão mostra os dados dele: **nome do projeto, município, código SIPRA, área em hectares, número de famílias, capacidade, fase e data de criação**. E tem o botão **Baixar perímetro**, que desenha o contorno do assentamento direto no seu desenho.

### 🛡️ Visualizador mais estável

Corrigimos uma falha em que o **Civil 3D podia fechar sozinho** (erro fatal) só de deixar o Visualizador de Mapa aberto. Resolvido — pode deixar o mapa aberto à vontade.

### 📐 Aba TopoSuite mais compacta

A aba **TopoSuite** estava ficando **alta demais** quando aberta. Reorganizamos os botões dos painéis **SIGEF** e **Utilitários** em mais colunas, e agora a aba tem a mesma altura das outras abas do Civil 3D.

### 🔑 Download do SIGEF mais claro

Ao baixar os dados de uma parcela pelo Visualizador, a janela de login agora explica o passo a passo: **faça o login no gov.br primeiro** e depois clique em "Já estou logado". E se você clicar antes de logar, a janela **não fecha mais** — ela avisa e deixa você concluir o login e tentar de novo, sem ter que recomeçar tudo.

> Lembrando: para baixar os arquivos oficiais (CSV e memorial PDF) o SIGEF exige login gov.br (nível prata/ouro) **e** o "Sou humano" da consulta — é uma proteção do próprio INCRA. Você resolve esse "Sou humano" uma vez e baixa as parcelas que precisar.

---

## Versão 1.11.0 (maio/2026)

### 🗺️ Novo: Visualizador de Mapa (comando TP_VISUALIZADOR)

Chegou um **mapa interativo** dentro do plugin, com imagem de satélite do Google (a mesma de altíssima qualidade que você já conhece) e fallback automático pra imagem da ESRI se o Google falhar. Tem botão também no painel **Utilitários** da aba TopoSuite.

Ao abrir, ele já **se posiciona sozinho** no seu projeto: se o desenho tem parcelas ou pontos, enquadra neles; senão, abre no último lugar que você estava; senão, mostra o Brasil inteiro. Na barra de ferramentas você liga/desliga **Satélite / Mapa / Híbrido**, enquadra o projeto, seleciona uma área clicando 2 pontos no desenho, e **busca por município** (ou cola uma coordenada `lat,lon`).

**Camadas de referência direto dos órgãos:**
- **Parcelas SIGEF** (INCRA) e **CAR** (Cadastro Ambiental Rural) aparecem desenhadas sobre o mapa, carregando só o que está na tela pra não travar.
- **Limite do município** também pode ser exibido.

**Clicou numa parcela do SIGEF?** Abre uma janelinha com os dados dela: nome, se está registrada, número da matrícula, responsável técnico, data da certificação e o código do imóvel. E aí você tem dois botões poderosos:

- **Baixar perímetro** — desenha na hora a polilinha fechada daquela parcela (SIGEF ou CAR) dentro do seu Model, numa layer própria. Rápido e sem precisar de login.
- **Baixar dados SIGEF** — faz login no gov.br e baixa **tudo**: o CSV de vértices, o CSV de limites e o PDF do memorial. Em seguida já roda a importação completa: cria os pontos (CogoPoints), a polilinha da gleba **e as polilinhas de cada tipo de limite** (nas layers "TIPO DE LIMITE - LA1", etc.). É o mesmo resultado de baixar manualmente do SIGEF e importar — só que num clique.

E tem o **"Importar do Model"**: mostra as parcelas do seu próprio desenho por cima do mapa, pra você comparar com o que está cadastrado.

> 💡 Dica: ao baixar dados do SIGEF, se o resumo mostrar pontos "reusados" ou "pulados", é normal — quando dois levantamentos do mesmo credenciado usam a mesma numeração de vértice (V-0001, V-0002…), o plugin não duplica ponto no desenho. Pra ter todos separados, importe em desenhos diferentes.

### Criação de vários lotes/glebas de uma vez (SIGEF)

A rotina de **Carregar Vértices** foi preparada pra rodar em várias parcelas de uma vez só — detectando confrontantes e resolvendo divergências com o PropertySet do mesmo jeito que já fazia uma a uma.

### CPF com máscara e conferência automática

Nos campos de **CPF** (proprietário, confrontante, perfil profissional), o número agora se formata sozinho enquanto você digita (`123.456.789-00`) e o plugin confere se é um CPF válido. Campo de CPF opcional vazio continua sendo aceito normalmente.

---

## Versão 1.10.0 (maio/2026)

### Aviso quando o PropertySet do confrontante está diferente do plugin

Imagine este cenário: você abriu o cadastro do **Confrontante - 6**, mudou o nome do proprietário de "Pedro" para "Mariana" no plugin. Em seguida, o Civil 3D travou e fechou sem salvar o DWG. Quando você reabre, o **PropertySet** da parcela vizinha voltou pra "Pedro" (porque o DWG não foi salvo), mas o banco continua com "Mariana". Antes, o plugin **criava o Pedro como um proprietário novo**, deixando os dois ali, lado a lado. Agora isso não acontece mais.

Em vez de criar duplicação, o plugin:

- **Não toca no banco** sozinho (o que você cadastrou continua intacto).
- **Mostra um aviso amarelo** ⚠ no topo da lista de Confrontantes: "X confrontante(s) com divergência entre banco e PropertySet".
- **Marca cada confrontante divergente** com um ⚠ amarelo do lado do nome.
- Quando você seleciona um confrontante com divergência, aparece um **painel "Resolver"** no painel direito.
- Clicar em **Resolver** abre uma janelinha com a tabela "Campo | No banco | No PropertySet" e duas opções:
  - **Importar do PropertySet** — o banco recebe os dados do PSet (sobrescreve).
  - **Manter o banco** — o PSet é reescrito com o que está no banco (e o aviso some na hora).

Sem mais surpresas: você sempre vê quando há divergência e decide.

### Apenas 1 responsável por confrontante (sem brecha)

No cadastro de proprietários de cada confrontante, a coluna **Resp.** agora tem uma regra rígida: **sempre exatamente 1 marcado**. Marcar um desmarca os outros. Tentar desmarcar o único marcado é bloqueado. Se o banco estava bagunçado (0 ou 2+ responsáveis por algum motivo histórico), o plugin normaliza ao abrir.

### Nome do proprietário atualiza na hora na lista

Ao **editar, adicionar ou remover** proprietário de um confrontante, o subtítulo (nome do proprietário) que aparece debaixo de cada item na lista esquerda da janela **Confrontantes** agora atualiza imediatamente. Antes você precisava fechar e reabrir a janela pra ver o nome novo.

---

## Versão 1.9.0 (maio/2026)

### Importação de pontos TXT agora aceita qualquer formato

O comando **TP_IMPORTARPONTOS** ganhou uma janela onde você configura como seu arquivo é organizado, antes de importar:

- **Ordem das colunas livre** — mapeia cada coluna do seu arquivo (Nome, Este, Norte, Cota, Descrição, Sigma E/N/Z, Método ou *(ignorar)*). Você não precisa mais reordenar o TXT antes — o plugin lê do jeito que estiver.
- **Separador de colunas** — `;`, `,`, **TAB** ou **espaço**.
- **Separador decimal** — ponto ou vírgula.
- **Primeira linha é cabeçalho?** Marca a checkbox e o plugin pula a primeira linha.
- **Preview ao vivo** — antes de importar, vê como o plugin vai interpretar a primeira linha do seu arquivo.
- **Persistência** — sua configuração fica salva pra próxima vez.

E a janela ficou **redimensionável**, com scroll vertical quando você reduz a altura. Os botões Importar/Cancelar nunca somem.

### Município-UF: um campo só, com 5571 municípios na lista

Na janela **Dados do Imóvel**, antes você tinha dois campos separados: "Município" e "UF". Agora é **um campo só** chamado *Município-UF*, com a lista oficial dos ~5571 municípios brasileiros embutida no plugin (a mesma da planilha SIGEF). Você digita parte do nome e a lista filtra automaticamente. Selecionar gera o formato canônico `Guiricema-MG`.

Se você digitar errado (`Guiricea-MG` em vez de `Guiricema-MG`), o plugin **corrige automaticamente** — usa um algoritmo que tolera letra a menos, letra a mais e troca de letras adjacentes. O mesmo vale para o **Tipo de Documento** (Matrícula/Transcrição): pode digitar `maticula`, `MATRÍCULA`, `Transcricao` que vira sempre o formato certo.

### PropertySet ganhou Município-UF e Localidade

O grupo **DADOS DO IMOVEL** do PropertySet agora tem 11 campos (antes eram 9). Os 2 novos:

- `10-MUNICIPIO_UF` — Município e UF no formato `Nome-UF` (ex: `Guiricema-MG`).
- `11-LOCALIDADE` — nome do local (texto livre, ex: "Sítio Santo Antônio").

Rode **TP_APLICARPROPERTYSETS** uma vez por DWG pra criar os campos novos nas parcelas existentes.

### Geração da planilha ODS preenche o município automaticamente

Quando você gera a planilha ODS pra SIGEF, agora o município já vem preenchido nas células A17 e B17 da aba `identificacao` — o mesmo Município-UF do plugin. Você não precisa mais digitar/selecionar o município depois.

### Nova ferramenta: "Nomear Imóvel pelo Parcel"

Na aba **Ferramentas** do SIGEF, agora tem um botão chamado **Nomear Imóvel pelo Parcel**. Você clica, seleciona as parcelas no Civil 3D em massa, e o plugin copia o **nome da Parcel** de cada uma direto pro campo `01-NOME_DO_IMOVEL` do PropertySet. Útil quando você organizou os nomes das parcelas no Civil 3D e quer popular tudo de uma vez. Anexa o PropertySet sozinho se faltar.

### Gerar em Lote agora inclui Cartas de Anuência

O diálogo de **Geração em Lote** (aba Exportar) ganhou um 4º checkbox: **Cartas de Anuência**. Marca, e o plugin gera um DOCX `_anuencias.docx` por imóvel selecionado, com 1 carta por confrontante que (a) assina e (b) tem vértices vinculados. Usa os defaults padrão do modo individual (tabela completa, sem cônjuges).

### Calcular Área SGL em lote

O botão **Calcular Área SGL** da aba Ferramentas agora pergunta: só do imóvel selecionado, ou de TODOS os imóveis cadastrados? Útil quando você cadastrou vários imóveis em sequência e quer calcular tudo numa tacada só.

### Janela "Vértices da Gleba" fecha sozinha ao salvar

Antes você tinha que clicar Salvar **e** Fechar. Agora, ao salvar com sucesso, a janela fecha automaticamente. Em caso de erro, continua aberta pra você corrigir.

### Checkbox "Proprietário falecido" no topo

Na janela de **Proprietário PF**, o checkbox **Proprietário falecido (espólio)** mudou de lugar — agora fica no topo do card "Pessoa Física". E o card "Espólio" só aparece quando o checkbox está marcado. A janela fica bem mais limpa pra cadastro de proprietário vivo.

### Diálogo de Conflito separa imóvel × proprietário

Quando você vincula uma gleba a uma parcela que já tinha PropertySet preenchido com dados diferentes, o diálogo de conflito agora tem **2 decisões independentes**:

- **Imóvel/Gleba**: Importar do PropertySet (sobrescreve plugin) **ou** Manter o plugin.
- **Proprietário**: Adicionar como novo proprietário do imóvel **ou** Não importar.

Antes era uma decisão só. Agora você pode, por exemplo, manter o nome do imóvel que já digitou, mas importar o proprietário que veio no PropertySet da parcela.

### Civil 3D não minimiza mais junto com o plugin

Corrigimos vários casos onde:

- Ao **fechar a janela do plugin** (após gerar memorial ou ODS), o Civil 3D era minimizado junto.
- Ao **clicar em botões que pedem seleção no Civil** (Selecionar Parcela, Inserir Assinaturas, Nomear Imóvel pelo Parcel, etc.), o Civil ia pra barra de tarefas.

Agora o plugin esconde a sua própria janela sem mexer no Civil 3D, e ao fechar, o Civil é restaurado se estiver minimizado.

### Tema escuro dos ComboBoxes 100%

Vários ComboBoxes editáveis do plugin (Município-UF, Tipo de Documento, estado civil, regime de bens, etc.) ficavam com fundo branco horrível ao receber foco. Corrigido em todos.

### Bonus: campo Município-UF voa

A lista de 5571 municípios não trava mais ao digitar nem ao abrir o dropdown — virtualização real ativa + filtro inteligente com cache.

---

## Versão 1.8.3 (maio/2026)

### Notificação automática de nova versão

Toda vez que você abre o plugin, ele verifica se tem uma versão nova publicada. Se tiver, aparece uma janelinha avisando, com botões pra **Baixar agora**, **Lembrar depois** ou **Ignorar esta versão**. O download abre direto no navegador.

Se uma atualização for muito importante (correção crítica), ela vem marcada como obrigatória — aí o plugin só te deixa baixar ou sair.

### Telefone/WhatsApp obrigatório no cadastro

A janela de "Criar conta" agora pede telefone/WhatsApp junto com email e senha. O campo já formata sozinho conforme você digita: `(11) 98765-4321`. O mesmo vale no cadastro pelo site.

### Confrontantes são preenchidos sozinhos no SIGEF

No comando **TP_SIGEF**, ao clicar **Carregar Vértices** dentro de uma gleba, o plugin agora **cria automaticamente** os imóveis confrontantes a partir das parcelas vizinhas do Civil 3D — lendo nome, matrícula, CNS, comarca, CCIR, código SIGEF, área SGL e proprietário direto do PropertySet das parcelas vizinhas. Você não precisa mais cadastrar cada confrontante na mão.

Detalhes importantes:

- Se a parcela vizinha ainda não tem PropertySet preenchido, o plugin cria uma entrada "stub" só com o nome da parcela (você completa depois).
- Se você re-clica "Carregar Vértices", o cadastro do confrontante é atualizado com dados frescos do PropertySet.
- Se duas glebas do mesmo imóvel são adjacentes no desenho, uma **não vira confrontante da outra** (você não confronta consigo mesmo). O texto continua aparecendo no corpo do memorial, mas o proprietário não duplica nas assinaturas.

### Banco e PropertySet conversam automaticamente (sem mais botões "Importar/Exportar")

Esse é o maior pulo da versão. Os botões "Importar Civil 3D", "Exportar Civil 3D", "Enviar ao Civil 3D" e "Importar em Lote" sumiram. Agora:

- **Quando você edita algo no plugin** (imóvel, gleba, proprietário, confrontante, lote urbano), o plugin escreve automaticamente no PropertySet das parcelas vinculadas. Sem clicar em botão.
- **Quando você edita o PropertySet direto no Civil 3D**, ao voltar pro plugin (Alt+Tab) os dados refletem na janela automaticamente. E antes de gerar memorial, o plugin garante que tá tudo atualizado.

### Quando há divergência banco × PropertySet, o plugin pergunta

Cenário comum: você vincula uma gleba a uma parcela que já tinha PropertySet preenchido no Civil 3D, e o plugin abre uma janelinha mostrando lado a lado o que está no plugin e o que está no PropertySet. Você escolhe se quer **Importar do PropertySet** (sobrescrever o plugin) ou **Manter o plugin** (sobrescrever o PropertySet no próximo save).

Se o plugin está vazio nesse campo (você acabou de criar o imóvel, por exemplo), nem pergunta — importa direto do PropertySet pra evitar você ter que digitar tudo de novo.

### TP_APLICARPROPERTYSETS continua existindo

Pra criar as definições no Style Manager e aplicar em massa em todas as parcelas, o comando **TP_APLICARPROPERTYSETS** continua no ribbon. Útil em DWGs novos.

### Comando TP_LIMPARPROPERTYSETS pra apagar de propósito

Como o sync nunca apaga campos do PropertySet com vazio (proteção contra perda de dados), pra zerar um campo de propósito você precisa rodar **TP_LIMPARPROPERTYSETS** (que tem opções de "rurais", "urbanos" ou "ambos").

---

## Versão 1.5.0 (abril/2026)

### Tabela do perímetro: coluna de altitude agora é opcional

Na janela da **Tabela do Perímetro** apareceu um checkbox novo: **"Incluir coluna de altitude"**.

- Em projetos **rurais (SGL)**, ele já vem marcado — a cota é parte do levantamento.
- Em projetos **urbanos (UTM)**, vem desmarcado por padrão — afinal, em lote urbano você raramente coloca altitude na tabela do memorial.
- Você pode marcar ou desmarcar à vontade, em qualquer modo.

Quando desmarcado, a tabela sai do desenho com 6 colunas em vez de 7 (sem a Altitude), e o seletor de "casas decimais da altitude" some da janela pra não atrapalhar.

### Altitude da tabela: agora pega do PropertySet, não mais do ponto direto

Bug chato resolvido: às vezes, ao criar um vértice, o ponto era snapado sem querer numa linha que estava na cota 0 (uma linha de construção, por exemplo). Resultado: o Civil 3D zerava a altitude do CogoPoint, e a tabela do perímetro vinha com altitude 0 — mesmo o ponto tendo a cota correta gravada no PropertySet SIGEF.

Agora a tabela primeiro consulta o campo **05-COTA** do PropertySet do ponto (que é onde os comandos do plugin sempre gravam a cota verdadeira). Só se esse campo não estiver preenchido é que ela cai no valor do `CogoPoint.Elevation`. Resultado: tabela bate sempre com a altitude correta do levantamento.

---

## Versão 1.4.0 (abril/2026)

### Tabela de coordenadas do perímetro como bloco no desenho

Esta versão traz um botão novo na ribbon — **"Tabela do Perímetro"** no painel SIGEF — que monta uma tabela bonita do perímetro da parcela direto no Model. Antes, pra ter algo parecido, você só conseguia gerar do botão "Gerar Tabela" da janela de Lote Urbano. Agora é um clique só, pra qualquer parcela do desenho.

**Como funciona:**

1. Clica em **Tabela do Perímetro** no ribbon (ou digita `TP_TABELACOORD` na linha de comando).
2. Escolhe se os cálculos vão ser **SGL** (igual ao memorial descritivo) ou **UTM** (igual às labels do Civil 3D).
3. Diz o tamanho do texto plotado (em mm) e a escala da prancha (1:1000, 1:2000…) — o plugin calcula a altura do texto no model automaticamente. Texto 2 mm em escala 1:1000 vira 2 m no desenho; em 1:2000 vira 4 m.
4. Configura casas decimais das coordenadas e da altitude do jeito que preferir (vem com defaults sensatos).
5. Clica na parcela.
6. Clica onde quer inserir e pronto — tabela completa com 7 colunas: De, Latitude/Este, Longitude/Norte, Altitude, Para, Azimute e Distância.

### Tabela grande não cabe na prancha? Quebra automática

Se você tem 60+ vértices, a tabela inteira vai ficar enorme — não cabe numa prancha A1. Pra isso tem o checkbox **"Quebrar em vários blocos"**. Ao marcar:

- O plugin pede pra você clicar **dois pontos** delimitando a área disponível na prancha (canto superior e canto inferior).
- A altura entre esses dois cliques define quantos vértices cabem em cada bloco.
- O plugin gera vários blocos lado a lado, todos alinhados — o primeiro encaixa na sua área, o segundo fica logo ao lado com um pequeno espaçamento, e assim por diante.
- Cada bloco repete o cabeçalho de colunas pra leitura ficar autônoma.
- Só o último bloco mostra o resumo (Perímetro / Área).
- Os blocos não-últimos avisam "continua no bloco 2/3", pra você não se perder na hora de ler.
- O título de cada bloco já mostra o modo do cálculo: `Gleba 3 — SGL (1/3)`.

### Os números batem com o memorial descritivo

Se você gerou o memorial pelo botão "Gerar Memorial SGL" e depois gerar a tabela em modo SGL pra mesma parcela, os azimutes e distâncias vão bater **byte a byte**. Mesma matemática (Vincenty + ECEF), mesmo formato (g°mm' sem segundos, distância com 2 casas).

No modo UTM, os números batem com as labels que o próprio Civil 3D coloca quando você usa "Add Labels → Multiple Segment". Então você escolhe o que faz mais sentido pro seu projeto.

---

## Versão 1.3.0 (abril/2026)

### Lote Urbano agora é tão completo quanto o SIGEF

Esta versão refaz o fluxo de **memorial de lote urbano** pra ter o mesmo
nível de organização do SIGEF. Antes, você cadastrava só um proprietário
em campo de texto livre — agora, cadastra proprietários e confrontantes
com **qualificação completa**, e o memorial sai com as assinaturas todas
certinhas, igual o do georreferenciamento rural.

### O que mudou na janela do Lote Urbano

- **Botões novos no topo:** *Proprietários*, *Confrontantes* e
  *Enviar ao Civil 3D*.
- **Card "Dados do Imóvel" simplificado** — os campos de Proprietário e
  CPF/CNPJ saíram daqui (agora vão no botão "Proprietários", com cadastro
  completo).
- **Grid de segmentos com colunas novas:** CNS, Matrícula e Confrontante
  (este último ganha um seletor de "Confrontante:" no topo da tabela —
  igual ao SIGEF — pra você escolher se quer mostrar só o nome do imóvel,
  só o nome do proprietário, nome+CPF, etc., aplicando a todos os
  segmentos de uma vez).

### Cadastro de proprietários e confrontantes igual SIGEF

Quando clica em **Proprietários** (ou **Confrontantes**), abre uma janela
onde você cadastra a pessoa com tudo:

- Pessoa Física: nome, CPF, RG, nacionalidade, profissão, endereço,
  estado civil, regime de bens, filiação (pai e mãe).
- Cônjuge (aparece automaticamente quando o estado civil é Casado(a) ou
  União Estável): mesmos campos.
- Espólio (marca a opção "Proprietário falecido"): cadastra o
  representante (Inventariante, Curador, Tutor, Procurador) com todos os
  dados, e o cônjuge do representante quando ele é casado.
- Pessoa Jurídica: razão social, CNPJ, representante legal completo.

### Memorial com assinaturas qualificadas

Na janela de opções do memorial, marque **"Incluir cônjuges nas
assinaturas"** e o memorial sai com:

- Cada proprietário com sua linha de assinatura + linha extra do cônjuge
  quando casado.
- Espólio: linha do "Espólio de FULANO" + linha do representante
  (Inventariante etc.) + linha do cônjuge do representante.
- Cabeçalho do memorial mostra os proprietários completos (com CPF,
  CNPJ, ou indicação de espólio).

### Detecção automática dos vizinhos

Quando você clica em **Ler Vértices**, o plugin agora:

- Detecta automaticamente as **parcelas vizinhas** e lê o que houver
  preenchido no PropertySet urbano delas (nome, matrícula, CNS, comarca).
- Detecta também **alinhamentos (ruas)** próximos e cadastra como
  confrontante já marcado como "não assina".
- Tudo isso vira registros na lista *Confrontantes* — basta abrir e
  completar os dados que ainda faltam (proprietário, cônjuge, espólio).

### Botão "Enviar ao Civil 3D"

Grava no PropertySet urbano de cada parcela:

- **Parcela atual:** dados do imóvel + proprietário responsável.
- **Cada parcela vizinha:** dados do confrontante (imóvel + proprietário
  com cônjuge etc.).

Útil quando você cadastra tudo na janela e quer ter os dados também nos
UDPs do Civil 3D pra inspeção rápida.

### Outras melhorias

- O botão **"Aplicar PropertySets"** do painel SIGEF agora chama
  "Aplicar PSets Rurais" (deixa claro que é só pros rurais), e tem um
  botão novo **"Aplicar PSets Urbanos"** no painel Lote Urbano.
- Quando você roda *Aplicar PSets Urbanos*, o campo "Nome do Imóvel" do
  PSet urbano é preenchido automaticamente com o nome da parcela do
  Civil 3D — não precisa mais editar parcela por parcela.
- DWGs antigos (com dados salvos pelo Lote Urbano de versões anteriores)
  abrem normalmente — uma migração silenciosa garante que nada se perde.

### Correções

- Painéis de cônjuge na janela de cadastro agora aparecem na hora certa
  ao trocar Casado(a)/Solteiro(a) (antes ficava invertido).
- Texto do confrontante quando o vizinho é uma rua sem proprietário não
  sai mais com tracinho órfão (`"Av Aruana - "` → `"Av Aruana"`).
- Texto digitado à mão na coluna *Confrontante* do grid agora é
  efetivamente usado no memorial (antes era ignorado em alguns casos).
