Escolar Documentos
Profissional Documentos
Cultura Documentos
Co-Palestrante:
Jeanne Karlla Freitas – onBIM Consultoria
Descrição da Palestra:
Esta palestra irá apresentar como projetos de arquitetura e de estrutura da vida real têm usado o
Dynamo para solucionar e otimizar o tempo em desafios complexos em Building Information Modeling
(BIM). Esta palestra também irá explicar como o Dynamo, juntamente com o Revit são essenciais na
resolução desses desafios. Os participantes também irão aprender os comandos básicos do Dynamo
para realizar essa interoperabilidade.
Objetivo de aprendizado
Ao final desta palestra você terá condições de:
Entender o que dá para fazer com o Dynamo (Computabilidade de processos com o Dynamo).
Saber como o Dynamo interage com o Revit
Entender como pode aumentar sua produtividade e agregar valor ao seu trabalho usando o
Dynamo.
Sobre o Palestrante
Ricardo Freitas – onBIM Consultoria – Recife/PE
Site: www.onbim.com.br
Matemático e eletrotécnico; especialista em Dynamo, cursou no MIT - Massachusetts Institute
of Technology, Introduction to Computer Science and Programming Using Python e Introduction
to Computational Thinking and Data Science. Fundador da empresa onBIM - Treinamentos e
Consultoria. Através da onBIM ministra hoje ministra o único curso de Dynamo no Brasil e
também foi pioneiro em desenvolver material sobre ele no Brasil. Desenvolvedor de soluções
em programação para o Autodesk® Revit® utilizando Dynamo e Python.
contato@onbim.com.br
Sobre a Co-palestrante
Jeanne Karlla Freitas – onBIM Consultoria – Recife/PE
Site: www.onbim.com.br
Arquiteta, formada pela FSS no Rio de Janeiro especialista em Gestão de Negócios de
Incorporação e Construção Imobiliária pela FGV experiência em projeto e execução. Participou
do projeto de ampliação do Aeroporto Internacional de João Pessoa - Presidente Castro Pinto
com projetos de arquitetura e Instalações complementares. Trabalhou no escritório Sérgio
Gattas Arquitetos no Rio de Janeiro. É sócia da empresa Botelho Arquitetura.
comercial@onbim.com.br
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Tópicos
[2] Utilizando o Dynamo na Superação de Desafios BIM da Vida Real - Cases ...................... 19
2
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Figura 1 - Espiral áurea gerada no Dynamo. Uma das maneiras de se gerar essa espiral é através da
sequência de Fibonacci.
1
https://pt.wikipedia.org/wiki/Diagrama_de_Voronoy
3
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Figura 2 - Padrão de Voronoi gerado no Dynamo e sendo utilizado num estudo em arquitetura no Revit.
Com as ferramentas de projeto que tínhamos disponíveis, fazer uma forma dessas,
mesmo usando as melhores, não era uma tarefa fácil. No entanto, ferramentas de Design
Computacional como o Dynamo nos possibilitam conseguirmos desenvolver mesmo formas
complexas como essa com facilidade através de lógica de programação. E essa lógica é
possível de ser utilizada exatamente porque o padrão de desenvolvimento dela pode ser
descrito matematicamente e geometricamente. Afinal, os computadores ainda não adivinham
as coisas não é verdade? Eles apenas fazem os cálculos com uma velocidade e precisão
absurdamente maiores do que um ser humano.
4
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Com certeza sim. Mas de que maneira isso acontece? E como podemos saber se um
procedimento poder ser feito pelo Dynamo, como a criação automática de níveis?
Primeiro vamos ficar entendendo como o Dynamo interage com o Revit, que é uma das
principais ferramentas de projetos em BIM.
De um modo geral, a API é composta por uma série de funções acessíveis somente
por programação, e que permitem utilizar características do software menos evidentes
ao utilizador tradicional2.
Fazendo uma analogia, imaginemos que o Revit seja um restaurante. Nesse restaurante
nós somos os clientes, o garçom é a interface, o cardápio são os comandos do Revit e a
API é a cozinha do restaurante.
2
https://pt.wikipedia.org/wiki/Interface_de_programação_de_aplicações
3
Veja a Figura 6.
5
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
6
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Essa cozinha (API) é aberta para que os usuários possam montar seus próprios pratos
(comandos ou tarefas).
Figura 7 - Através do uso da API podemos criar, automatizar nossos próprios comandos.
No entanto, a API tem regras bastante rígidas que devem ser cumpridas à risca e
também, como vimos anteriormente, só pode ser acessada através de linguagem de
programação. No caso da API do Revit, as linguagens que podem ser utilizadas são:
Figura 8 - Linguagens de programação que podem ser utilizadas para acessar a API do Revit.
Para além, não basta apenas ter conhecimentos básicos da linguagem a ser usada, é
necessário ser um experiente usuário e também é preciso conhecer bem a API do Revit,
suas teorias e regras. Adicionado a isso, é preciso ter formação na área que se
pretende utilizar a API. Por exemplo, para utilizar a parte de elétrica faz-se necessário
ter um conhecimento sólido na área de engenharia elétrica. Não diferente disso,
7
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Porém, com o uso do Dynamo o acesso à API do Revit torna-se uma tarefa bem mais
simples de ser realizada. Dando ao usuário um imenso poder nas suas mãos. Pois tanto
a teoria quanto o entendimento do Dynamo são mais fáceis se comparados às outras
linguagens textuais, por ele ser uma linguagem de programação visual. Veja os
exemplos das figuras 9 e 10. A tarefa que está sendo pedida ao computador é a mesma
nas duas. Porém, qual você consegue entender mais rápido?
8
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Antes de responder a essa pergunta vamos entender de que maneira o Dynamo interage
com o Revit.
E quando dizemos “... que o Revit entende... “, estamos querendo dizer que esse
procedimento tem que:
9
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Muitas vezes essa pergunta não é tão simples de responder, principalmente se formos
programar direto na API. No Dynamo elaboramos um método para facilitar chegarmos a
essa resposta.
4
Esse ramo só aparece se abrirmos o Dynamo ‘por dentro’ do Revit. Na versão 2017, podemos
encontrá-lo no menu Manage (Gerenciar). E nas versões anteriores, no meu Add-ins (Complementos).
5
No Dynamo o termo Elements (elementos) é usado para designarmos Famílias. Portanto, sempre que
vermos o termo Elements, leia-se Famílias.
10
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Aproveitamos o ensejo do exemplo para lembrar que quando dissemos que a ação que
queremos fazer deve ‘atender às regras da API e também regras lógicas’ é algo desse
tipo.
Esse, portanto, é um bom exemplo de que se quisermos fazer alguma ação dessa
natureza com um material, vamos receber um belo erro de retorno na nossa tela. Logo,
não é possível realizarmos tal ação.
11
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Na Figura 14 podemos ver o significado dos símbolos. Eles designam a que tipo de
finalidade o node ao qual ele está assinalado está destinado6.
Criação:
Ação:
Pesquisa:
6
Um mesmo símbolo pode estar atribuído a diversos nodes, significando que esse
conjunto de nodes são do mesmo tipo. Ou seja, têm em comum a finalidade de criação,
de ação, ou de pesquisa.
12
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Acessando o Help (ajuda) do node é possível sabermos que tipo de dado é requerido
pela(s) porta(s) de entrada dele, bem como o tipo de dado resultante na(s) porta(s) de
saída, seu nome, sua descrição (se disponível) e sua Category que é o caminho para o
encontrarmos dentro da biblioteca do Dynamo (veja Figuras 16 e 17).
7
Em alguns nodes específicos mesmo se não passarmos nenhuma informação para alguma das suas
portas de entrada ele pode funcionar normalmente. Isso acontece porque a porta já tem um valor padrão
de entrada assinalado, tornando facultativa a atribuição de um valor vindo de um outro node a ela.
13
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Figura 16 - Descrição dos tipos de dados requeridos e retornados respectivamente pelas portas de
entrada e de saída do node Level.ByElevationAndName.
14
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Muitas vezes desejamos profundamente que o Revit possua algum comando ou solução
para um problema específico nosso. Na maioria das vezes esse desejo se deve ao fato
de termos muito trabalho para solucionar esse determinado problema.
15
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
diretamente com o Revit, ou então a complexidade da geometria (se for o caso) de uma
determinada família também dificulta ou impossibilita essa adequada parametrização.
Se precisarmos utilizar o elemento Floor (Piso) para fazermos essa ação, teremos aí
algumas horas de trabalho desperdiçadas sempre que for necessário criar ou até mesmo
modificar esse(s) elemento(s) no projeto, visto que o Revit não tem disponível de pronto
um comando ou processo para realizarmos a tarefa de maneira precisa e eficaz.
Esse tipo de comando ou processo é possível ser feito através do Dynamo de maneira
eficaz e precisa, pois, como vimos antes, com ele temos acesso à API do Revit e com
isso podemos criar nossos próprios comando e procedimentos (veja Figura 23).
Figura 19 - Warnings (avisos) gerados pelo Revit. Não temos como filtrá-los por nível para
gerenciamento dos mesmos.
16
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Figura 20 - Relatório de avisos filtrados por nível gerado no Power BI com automatização do Dynamo.
17
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Figura 22 - Rotina no Dynamo para "filtragem" dos warnings por nível e posterior exportação para o
Excel > Power BI.
Figura 23 - (À esquerda). Floor (Piso) seguindo a topografia do terreno no Revit criado automaticamente
por procedimento com o Dynamo. (À direita) Rotina para geração da geometria a ser usada como
referência para criação do Floor.
18
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Um dos primeiros desafios que tivemos na onBIM proposto por um cliente8 foi fazer a
conversão automática de uma estrutura de uma coberta de um terminal de passageiros 9
bastante complexa desenhada em 3D no AutoCAD para famílias nativas do Revit da
categoria Structural Framing (Quadro Estrutural), para que pudessem ser utilizadas no
modelo, tanto a título de modelagem, quanto para análise.
O primeiro passo, portanto, foi “trazer” a estrutura para o ambiente do Dynamo, para que
nele pudesse ser feita a conversão das linhas (unifilar) em Structural Framing.
Utilizando o método de começar pelo objetivo, analisamos então as entradas desse node
para saber que tipo de dados precisamos fornecer a ele.
8
Escritório João Dunin Arquitetos
9
Pelo caráter de confidencialidade do projeto, não fomos autorizados a mencioná-lo.
19
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Para a entrada curve percebemos que tínhamos que fornecer as linhas vindas do
AutoCAD já convertidas dentro do Dynamo.
Para a entrada level agora sim utilizamos o node Levels, encontrado no ramo Revit >
Selection, tendo em vista que o mesmo nos retorna os níveis existentes no projeto aberto
no Revit (veja Figuras 26 e 27).
20
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
21
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Figura 29 - Node Structural Framing Types (Tipos de Quadro Estrutural) no workspace do Dynamo.
22
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Figura 30 - Tipos das famílias da categoria Structural Framing (Quadro Estrutural) carregadas no projeto
ativo (em destaque a hierarquia desses elementos no project browser do Revit).
23
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Para fornecer então as curvas necessárias para criação das vigas fizemos o seguinte
procedimento:
Figura 32 - Rotina para importação do DWG para o Dynamo Studio e Exportação para o Flux.
24
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Figura 34 - Linhas sendo importadas do Flux para o Dynamo dentro do Revit e gerando
automaticamente as vigas.
25
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Esse case foi uma demanda apresentada pelo escritório Sena Arquitetura, que fica
situado na cidade de Ribeirão Preto, no interior de São Paulo.
II. Como não há uma ferramenta built-in no Revit para realizar a tarefa, fazer o
processo manualmente tornava-a intuitiva e morosa, levando à perda de
produtividade do escritório. Visto que dessa forma era preciso bastante tempo
para se chegar ainda sim, a valores aproximados do desejado.
26
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
10
Nesse tipo de processo é comum recorrermos à matemática e à engenharia como ferramentas de
auxílio na solução do problema. Como mencionamos nos tópicos referentes à API do Revit, utilizar
ferramentas desse tipo é um trabalho não só computacional, mas também que exige diversos
conhecimentos.
27
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Então para uma cota de escavação Co encontramos um volume Vo. Agora queremos
calcular um valor de cota de passagem (Cp) para qual o volume de corte compensaria o
volume de aterro.
Vo = S.h (1)
h = Vo/S (2)
Este valor de h está referenciado ao plano de cota Co, então o valor final da cota de
passagem será:
Cp = Co + Vo/S (3)
onde:
Cp = Cota de passagem
Co = Cota inicial
Vo = Volume inicial
S = área da base
Na Figura 38 podemos ver a topografia e os building pads na sua posição inicial, portanto
podemos obter os valores de ‘Co’ e ‘Vo’.
O valor da cota inicial ‘Co’ é possível obter através do parâmetro Height Offset From
Level (Altura de Deslocamento do Nível) de cada building pad (veja Figura 38).
O valor da área da base ‘S’ também é possível se obter através de um dos parâmetros de
cada building pad que é o Area (Área). Veja Figura 38.
Já o valor do volume inicial ‘Vo’ pode ser obtido “puxando-se” o valor do parâmetro de
cada topografia gerada pelo corte do seu respectivo building pad (veja Figuras 39 e 40).
Portanto tínhamos a partir daí todos os componentes necessários para se fazer o cálculo
da cota de passagem referente a cada building pad.
28
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
29
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Já que o Revit nos fornecia os valores iniciais que precisávamos, o primeiro passo seria
trazer esses valores desses parâmetros para o Dynamo. Em seguida faríamos o cálculo
através da fórmula e só aí então devolveríamos os valores para os parâmetros dos
Building Pads.
Como dissemos anteriormente o Dynamo possui uma série de nodes para interação dele
com o Revit. Dentre eles estão dois que servem exatamente para o que precisávamos.
São eles o Element.GetParameterValueByName e o Element.SetParameterByName
(Veja Figura 41).
Vemos então, como os próprios nomes deles sugerem, que o primeiro serve para “pegar”
valores de parâmetros de um determinado elemento. E outro para “atribuir”.
30
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Observamos pelas portas de entrada dos mesmos que ambos necessitam do valor
Element, que como já vimos, representa uma instância de uma família no Revit. Portanto,
precisamos selecionar os elementos necessários para que esse nodes funcionem como
queremos, logo, os building pads e os volumes topográficos correspondentes a cada um.
Figura 42 - Fragmento de código utilizado para seleção dos pads e dos volumes topográficos
correspondentes a cada um.
As funções no Dynamo não têm portas de conexão, tampouco de saída. Sua chamada
deve ser feita através de um outro código em linguagem textual (veja Figura 44).
11
A palavra função aqui faz referência ao conceito de função de linguagens de programação.
http://www.dicasdeprogramacao.com.br/o-que-sao-funcoes-e-procedimentos/
12
No caso do uso de fórmulas matemáticas no Dynamo, a linguagem textual ainda se mostra mais
apropriada. No link que segue é possível acessar a página do Design Script e obter mais informações a
respeito: http://designscript.ning.com/
31
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
Como podemos observar nas Figuras 43 e 44, o Dynamo utiliza um node especial para
aplicação de linguagem textual chamado de Code Block (Bloco de Código). Dentro dele
tanto podemos “chamar” por meio de código a maioria dos nodes existentes na biblioteca
do Dynamo, quanto todas as funcionalidades da linguagem Design Script.
Na Figura 45 é possível observarmos como ficou o resultado dos valores na tabela depois
da rotina ter sido executada. Cada pad recebeu um valor diferente para o parâmetro de
elevação, que no caso corresponde à sua cota de passagem Cp, calculada
automaticamente. Logo os pads também são ajustados de forma automática. Já na
Figura 46 é possível ver o perfil do terreno num corte 3D e termos uma noção melhor de
como seria dispendioso fazer esse ajuste manualmente.
32
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
33
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)
E a do escritório?
A partir de questões como essas podemos comparar o quanto o Dynamo traz celeridade e
precisão a procedimentos como esse. Não se assuste se encontrar valores na casa dos 500 a
1000 % de economia de tempo. Sim, pois procedimentos que podem durar dias para serem
realizados, com o Dynamo conseguimos fazer em algumas horas.
Sabemos que o fator tempo significa dinheiro. Mas também é importante ter assertividade e
qualidade nas informações e processos. Portanto se conseguirmos fazer uma rotina ou
procedimento consistentes no Dynamo, também conseguimos garantir a qualidade da
informação, a assertividade do processo. Dessa forma aumentamos nossa produtividade e
também a rentabilidade do escritório / empresa.
Vale salientar que o Dynamo para o Revit é uma ferramenta gratuita e que está em
desenvolvimento muito rápido. Cada vez mais têm-se novas impressionantes ferramentas que
auxiliam nos processos do dia-a-dia de uma forma bastante eficaz. Também a comunidade de
desenvolvedores é cada vez maior.
34