videorevitapipythonbim

O que é uma API — as pecinhas, e as mãos que as montam

O que é uma API, explicado com pecinhas de montar: a caixa de peças, as mãos, o formato dos encaixes. E as três linhas de Python que contam as paredes de um modelo Revit.

Paulo Giavoni

Paulo Giavoni

Engenheiro & Especialista BIM

19 agosto 20264 min de leitura

Três letras que você ouve em todo lugar#

API. A API do Google, a API do WhatsApp, a Revit API. O nome completo é Application Programming Interface, e vamos ser sinceros: sozinho, não diz nada. Precisa de uma imagem, e a imagem certa você tem em casa desde os seis anos.

As pecinhas#

Duas pecinhas: uma desce, apoia na outra, clique
Duas pecinhas: uma desce, apoia na outra, clique
A biblioteca (as peças já prontas), a linguagem (as mãos) e, no meio, a API: o formato dos encaixes
A biblioteca (as peças já prontas), a linguagem (as mãos) e, no meio, a API: o formato dos encaixes
Pegue duas peças de LEGO. Uma desce, apoia na outra, clique. Guarde esse clique na cabeça, porque está tudo aí.

De um lado há uma caixa cheia de peças já construídas por outra pessoa. Em programação, essa caixa se chama biblioteca. Do outro lado está você, com as suas mãos: a linguagem de programação, no nosso caso Python. Dois mundos separados, as peças de outra pessoa e as suas mãos. Onde eles conversam?

Eles conversam no encaixe. Cada pecinha tem os pinos em cima e os tubos embaixo, e esses formatos são iguais para todas as peças da caixa. A API é exatamente isso: não são as peças, não são as mãos, é o formato dos encaixes.

Nome, entrada, saída#

O contrato do encaixe “arredonda”: o que você entrega, 3,7; o que ele devolve, 4
O contrato do encaixe “arredonda”: o que você entrega, 3,7; o que ele devolve, 4
A pecinha é fechada: você usa o formato, nunca o conteúdo
A pecinha é fechada: você usa o formato, nunca o conteúdo
Todo encaixe diz três coisas, sempre as mesmas:
  1. como ele se chama;
  2. o que você precisa entregar a ele;
  3. o que ele devolve.

Pegue o encaixe “arredonda”: nome, arredonda; entrada, um número com vírgula; saída, o número inteiro mais próximo. Esse trio tem um nome preciso: se chama contrato. Se você sabe ler um contrato, sabe usar qualquer biblioteca do mundo.

E repare numa coisa: como a peça arredonda, que contas ela faz lá dentro, você não sabe e não precisa saber. A pecinha é fechada. Você usa o formato, nunca o conteúdo.

O seu dia está cheio de contratos assim. A tomada: dois furos, um formato igual para todos, entre quem oferece a energia e quem a usa. As APIs da web são a mesma ideia, só que a pecinha fica num computador distante.

E o Revit?#

RevitAPI.dll: a caixa com Wall, Door, Level, Room, View, Floor
RevitAPI.dll: a caixa com Wall, Door, Level, Room, View, Floor
Leve tudo isso para dentro do Revit. Para quem programa, o Revit é uma caixa enorme de pecinhas: tudo o que você vê na tela, paredes, portas, níveis, vistas, é uma peça já construída pela Autodesk. A caixa tem uma etiqueta: RevitAPI.dll. E a ponte que leva as suas mãos para dentro da caixa é um programa como o RevitPythonShell ou o pyRevit.

A primeira montagem: contar as paredes#

Três linhas, três encaixes: o modelo tem 42 paredes
Três linhas, três encaixes: o modelo tem 42 paredes
A pergunta mais simples do mundo: quantas paredes existem neste modelo? Três encaixes, um em cima do outro:
  • FilteredElementCollector: abre o fichário do modelo;
  • OfClass: você diz que tipo de peça quer, as paredes;
  • GetElementCount: você não entrega nada, e ele devolve um número.

Quarenta e dois. O modelo tem quarenta e duas paredes. Três linhas, nenhuma mágica: três contratos bem lidos.

E se você errar? Se passar ao collector uma palavra em vez do documento, o Revit responde com uma mensagem de erro. Essa mensagem é sua amiga: não é o código que quebra, é o contrato dizendo o que ele esperava.

O manual de instruções#

De onde vêm esses nomes? Toda caixa de LEGO tem o seu manual, e a caixa do Revit tem o dela: a documentação da Revit API, onde cada encaixe está escrito com nome, entrada e saída.

E a escada é sempre esta: primeiro você aprende a ler o modelo, depois a filtrar e contar, depois a escrever. Sempre nessa ordem, sempre com as mesmas pecinhas. A caixa não muda: muda o que você sabe montar.

Assista ao vídeo#

Nove minutos, do clique das pecinhas ao primeiro código, sem pré-requisitos. O vídeo mostra as peças se encaixando, o contrato lido linha por linha, a caixa do Revit se abrindo e o erro de verdade na tela. O vídeo está em italiano.

O vídeo completo está no YouTube: se você gostou, inscreva-se no canal e ative o sininho para os próximos episódios.

Dúvidas ou comentários?

Perguntas sobre os vídeos e o livro são bem-vindas: me escreva, ou comente embaixo do vídeo no YouTube.

No LinkedIn publico cada vídeo do canal, com algumas linhas a mais.