Você está na página 1de 34

Utilizando o Dynamo na Superação de Desafios BIM

da Vida Real (AUBR-112)


Palestrante:
Ricardo Freitas – onBIM Consultoria

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

[0] Computabilidade de processos com o Dynamo .................................................................. 3

[1] Interação Revit x Dynamo.................................................................................................. 5

[1][0] Entendendo o que é a API do Revit..................................................................... 5

[1][1] Entendendo como o Dynamo interage com o Revit .............................................. 9

[1][2] Fazendo o "impossível" com o Dynamo............................................................. 15

[2] Utilizando o Dynamo na Superação de Desafios BIM da Vida Real - Cases ...................... 19

[0] Primeiro ............................................................................................................... 19

[1] Segundo .............................................................................................................. 26

[3] Como o Dynamo pode te dar rentabilidade ....................................................................... 34

2
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)

[0] Computabilidade de processos com o Dynamo

Segundo estudiosos, a nossa capacidade de reconhecermos padrões é uma das


principais habilidades especiais que temos como seres humanos. Essa habilidade nos levou a
superar as outras espécies de animais e a sobrevivermos, mesmo sendo muitas vezes mais
fracos e menos ágeis do que alguns deles.
Umas das mais importantes descobertas feitas pelo homem devido à essa sua
capacidade, foram a matemática e a geometria.
Há muito tempo o homem percebeu como alguns padrões que ele percebia na natureza
podiam ser descritos matematicamente. Exemplos clássicos disso são a proporção áurea e a
série de Fibonacci.

Figura 1 - Espiral áurea gerada no Dynamo. Uma das maneiras de se gerar essa espiral é através da
sequência de Fibonacci.

Seguindo princípios culturais, o homem utilizou essa descoberta em muitas áreas do


conhecimento como a arquitetura, a escultura, a música, a pintura.
Se pararmos para pensar a respeito, vamos perceber que sempre estamos em busca
de padrões que descrevam os fenômenos para podermos compreendê-los melhor e também
fazer usos deles na nossa vida prática.
Um exemplo belíssimo disso é o diagrama de Voronoi 1. Um padrão que tem aplicações
na medicina, na física, e até mesmo na ciência da computação.

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.

“ Então, ao invés de desenharmos tudo, por que não dizemos ao


computador o que fazer? ”

“ Já que entendemos que o computador pode desenhar formas


de uma maneira mais rápida e eficiente, podemos também utilizar o
Dynamo na otimização da elaboração de projetos e também na de
processos? ”

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.

[1] Interação Revit x Dynamo

[1][0] Entendendo o que é a API do Revit

Revit API (Application Programing Interface)

Interface de Programação de Aplicação

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.

Portanto é na cozinha (API) onde os pedidos (comandos) são processados e enviados


de volta para nós (clientes) através da interface (garçom)3.

Figura 3 - Clientes (Usuários) Figura 4 - Garçom (Interface)

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)

Figura 5 - Cardápio (Ribbon, menus)

Figura 6 - Fluxo genérico de uso das funcionalidades do Revit.

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.

É necessário conhecimento avançado em diversas áreas para poder usar a API do


Revit por meio de linguagens de programação textuais.

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)

conhecimentos matemáticos e de geometria avançados por vezes também se fazem


necessários.

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?

Figura 9 - Fragmento de código em linguagem de programação textual (Design Script).

Figura 10 - Mesmo fragmento da Figura 9 agora em linguagem visual.

8
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)

Figura 11 - Resultado dos fragmentos de código das Figuras 9 e 10.

“ Então que tipo de processo do Revit eu consigo automatizar com o


Dynamo? ”

Antes de responder a essa pergunta vamos entender de que maneira o Dynamo interage
com o Revit.

[1][1] Entendendo como o Dynamo interage com o Revit

A primeira pergunta que devemos responder é:

“ O processo pode ser descrito através de um passo-a-passo lógico que o Revit


entende? “

Quando dizemos “passo-a-passo” lógico estamos nos referindo a um algoritmo.

E quando dizemos “... que o Revit entende... “, estamos querendo dizer que esse
procedimento tem que:

 Ser escrito numa das linguagens textuais que mencionamos anteriormente ou


através da linguagem visual do Dynamo;

 Precisa atender às regras da API do Revit e também regras lógicas.

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.

É o método do caminho inverso. Primeiro definimos nosso objetivo. Suponhamos que


queiramos criar níveis automaticamente. Então vamos começar colocando os nodes (nós
do Dynamo) de fim para o início. Logo, vamos procurar na biblioteca do Dynamo se há
disponível algum node de criação de níveis.

Na biblioteca (Library) do Dynamo temos um ramo específico para interação do Dynamo


com o Revit que já vem instalado por padrão (é o que chamamos de ‘nodes built-in’)4.

Os sub-ramos mais importantes nesse ramo são:

 Selection: como o próprio nome diz,


é um conjunto de nodes para
‘seleção’ de elementos5 no Revit.

 Elements: contém um conjunto de


nodes para realizarmos diversas
ações com elementos do Revit.

Destacam-se entre essas ações principalmente, e


de maneira geral tarefas como: criação de
elementos; atribuição de valores a parâmetros
desses elementos; pesquisa de valores de
parâmetros possibilitando cálculos e a exportação
desses valores para outros softwares/arquivos se
desejarmos; importação da geometria desses
elementos para o Dynamo (quando os mesmos
forem geométricos), ou vice-versa; fazer cópias,
Figura 12 - Ramo da biblioteca do rotações e translações desses elementos dentro
Dynamo que contém os nodes de do Revit, via código do Dynamo.
interação com o Revit.
Quando falamos de elementos, estamos nos
referindo a toda sorte de famílias disponíveis no Revit. Obviamente que sempre temos
que lembrar se a API nos disponibiliza acesso à categoria desse elemento, bem como
quais ações são possíveis de realizar com ele. Por exemplo, não temos que falar em
translação ou rotação de um material, não é verdade? (Como “tudo é família no Revit”,
não é diferente com os materiais).

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.

Abaixo e à direita na Figura 13 vemos em destaque o sub-ramo Elements. Como


podemos perceber, dentro desse sub-ramo estão vários outros. Alguns fazem referência
diretamente a uma determinada categoria (em destaque Adaptive Components), outros
são para ações genéricas. Também é possível perceber que do lado esquerdo dos nodes
existem três símbolos. Para entendermos melhor a ‘lógica’ do Dynamo faz-se essencial
sabermos o que significam esses símbolos.

Figura 13 - Sub-ramos Selection e Elements do ramo Revit na biblioteca de nodes do Dynamo.

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.

Figura 14 - Significado dos símbolos de finalidade dos nodes.

 Criação:

o De maneira geral no Dynamo: nodes utilizados para criar novas entidades.

o Interagindo com o Revit: podemos entender de maneira geral que esse


tipo de node é usado para criar novas instâncias de famílias.

 Ação:

o De maneira geral no Dynamo: nodes utilizados para realizar ações com


entidades já existentes.

o Interagindo com o Revit: nodes utilizados para realizar ações com


instâncias de famílias já existentes.

 Pesquisa:

o De maneira geral no Dynamo: nodes utilizados para obter informações


(dados) de entidades já existentes.

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)

o Interagindo com o Revit: nodes utilizados para obter informações (dados)


ou valores de parâmetros de instâncias de famílias existentes.

Lembrando do nosso objetivo definido anteriormente, que era a criação de níveis


automaticamente, onde e que tipo de node devemos utilizar para criar nossos níveis? Se
observarmos novamente a Figura 13, vamos perceber que no sub-ramo Revit > Selection
existe um node chamado Levels. Podemos utilizá-lo? E a resposta é não porque esse
node é usado para seleção de níveis e não criação (já que o mesmo se encontra no sub-
ramo Selection). Então obviamente temos que procurar dentro da biblioteca, no ramo
Revit > Elements > Level os nodes que estão assinalados com o símbolo “+” (criação).

Um dos nodes que vamos encontrar é o Level.ByElevationAndName. Geralmente os


nomes dos nodes já nos dão uma boa ideia do que eles executam. No caso desse, ele
cria um nível ou níveis a partir de um valor de elevação e do seu nome (veja Figura 15).

Figura 15 - Portas de entrada e saída do node Level.ByElevationAndName.

Como o Dynamo é uma linguagem de programação e a “matéria-prima” das linguagens


de programação são os dados, nele não podia ser diferente. Uma das regras
fundamentais do Dynamo é passar o tipo de dado que a(s) porta(s) de entrada do(s)
node(s) pede(m). Caso contrário, certamente o node não executará a ação que estamos
querendo realizar, bem como pode retornar um erro7.

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 17 - Help (ajuda) do node Level.ByElevationAndName.

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)

Se você tem algum conhecimento básico de fórmulas do Excel ou já parametrizou alguma


família dentro Revit, perceberá que esses tipos de dados são bastante familiares e
também não são difíceis de entender no Dynamo.

Figura 18 - Utilizando o node Level.ByElevationAndName

[1][2] Fazendo o "impossível" com o Dynamo

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.

Pelas vias mais usuais recorremos a plug-ins ou utilizamos processos dispendiosos, e na


maioria manuais para resolver a situação. Isso, num cenário ainda favorável, acaba
afetando negativamente a nossa produtividade, e num pior cenário, pode prejudicar
nosso workflow (fluxo de trabalho) em BIM em etapas posteriores.

O uso de famílias em categorias erradas e também sem parametrização adequada de


acordo com a necessidade do projeto são alguns dos fatores que causam problemas no
fluxo BIM.

No caso da parametrização não adequada, ela pode ocorrer porque o fluxo de


informação que precisamos para um determinado projeto não é possível se conseguir

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.

Um exemplo do primeiro caso é a criação de um relatório/tabela com os warnings (avisos)


separados por nível. Já com o auxílio do Dynamo isso torna-se uma tarefa
completamente possível de se realizar (veja Figuras de 19 a 22).

Já no caso de uma família geométrica, podemos citar o clássico caso da pavimentação


seguindo a topografia.

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.

Figura 21 - Visualização inteligente dos dados no Power BI.

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)

[2] Utilizando o Dynamo na Superação de Desafios BIM da Vida Real - Cases

[2][0] Convertendo estrutura 3D DWG em Structural Framing no Revit

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.

Pelo nosso conhecimento em Dynamo, já sabíamos que existia um node chamado


StructuralFraming.BeamByCurve. E como o próprio nome já sugere, esse node
transforma curvas em famílias da categoria Beam (viga) dentro do Revit.

Figura 24 – Node StructuralFraming.BeamByCurve.

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.

Suas entradas requerem (veja a Figura 25):


 curve – A curva que define a linha de eixo da viga;
 level – O nível ao qual você deseja que a viga esteja associada;
 structuralFramingType – o tipo da família que está representando a viga;

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)

Figura 25 - Ajuda do node StructuralFraming.BeamByCurve.

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)

Figura 27 - Node Levels (níveis) destacado na


biblioteca do Dynamo.

Figura 26 - Node Levels no


workspace (espaço de trabalho)
do Dynamo.

E por fim, para a entrada structuralFramingType utilizamos um node específico,


encontrado no ramo Revit > Selection, que nos retorna todos os Types (Tipos) de famílias
da categoria Structural Framing (Quadro Estrutural).

Para utilizarmos bem os nodes de seleção de elementos é importante compreendermos a


hierarquia da estruturação dos elementos no Revit, bem como a terminologia usada (veja
Figuras 28 a 31).

21
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)

Figura 28 - Node Structural Framing


Types (Tipos de Quadro Estrutural) na
biblioteca do Dynamo.

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

Figura 31 - Fluxograma da hierarquia dos elementos no Revit.

23
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)

Resolvemos, portanto, a necessidade das duas últimas entradas do node.

Para fornecer então as curvas necessárias para criação das vigas fizemos o seguinte
procedimento:

1. Importação do DWG para o Dynamo Studio.

2. Exportação das linhas do unifilar para o Flux.

3. Importação das linhas do unifilar para Dynamo dentro do Revit e geração


automática das vigas.

Figura 32 - Rotina para importação do DWG para o Dynamo Studio e Exportação para o Flux.

Figura 33 - Linhas sendo exibidas no projeto do 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.

Figura 35 - Vigas geradas no Revit.

25
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)

Figura 36 - Estrutura da coberta finalizada pelo escritório de estrutura.

[2][1] O desafio do ajuste automático das alturas dos Building Pads

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.

Foi uma necessidade de um projeto de construção de um condomínio residencial na


Avenida Miguel Pádula, em Bomfim Paulista.

A questão era conseguir ajustar automaticamente as alturas dos building pads


(plataformas de construção) do projeto afim de equilibrar, ou seja, tornar igual a zero, o
valor de corte / aterro da topografia. Com isso, fazer com que o construtor tivesse o custo
de planificação do terreno reduzido no momento da obra.

O projetista percebeu duas coisas importantes quando da tentativa de fazer o processo


manualmente:

I. Devido à complexidade que é a geometria da topografia de um terreno, fazer esse


ajuste manualmente tornava o processo impreciso.

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)

Nesse caso a onBIM utilizou o Dynamo como solucionador de um problema de


engenharia, não somente de um processo de modelagem de projeto.

Pesquisando bastante acerca de como realizar o processo, vimos que existem


ferramentas matemáticas que possibilitavam a solução do problema10.

Para entendermos melhor a solução computacional, portanto, precisamos entender a


ferramenta matemática utilizada.

Ao pesquisar o problema, percebemos que não precisávamos calcular o volume do sólido


formado pelo building pad com a topografia, visto que o Revit já nos dava essa
informação. O que estávamos a procurar então tem o nome de Cota de Passagem.

A cota de passagem – Cp, é exatamente a cota na qual o volume de corte é igual ao


volume de aterro (veja Figura 37).

Figura 37 - Cota de Passagem

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)

onde S = área da base do sólido. Portanto:

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

Traduzindo então o raciocínio matemático para a linguagem do Revit e do Dynamo,


percebemos então que precisávamos obter os valores dos componentes da fórmula (3)
através dos valores dos parâmetros dos próprios elementos do Revit, para daí então
fazer o cálculo da cota de passagem, e posteriormente atribuir o seu valor aos building
pads.

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)

Figura 38 - Parâmetros do Building Pad utilizados no cálculo da cota de passagem Cp.

Figura 39 - Topografia com os building pads desajustados, na posição inicial.

29
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)

Figura 40 - Parâmetro da Topografia utilizado no cálculo da cota de passagem Cp.

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”.

Figura 41 - Nodes Get e Set no Dynamo.

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.

Para tal, utilizamos o fragmento de código mostrado na Figura 42.

Figura 42 - Fragmento de código utilizado para seleção dos pads e dos volumes topográficos
correspondentes a cada um.

Para a realização dos cálculos utilizamos duas funções ou sub-rotinas11 no Dynamo na


sua linguagem textual que se chama Design Script12.

Utilizamos as duas de forma “aninhada”. A primeira chamamos de PadAdjust que faz o


ajuste das alturas dos pads. E a segunda chamamos de CalculaCp que foi usada para
calcular a cota de passagem (veja Figura 43).

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)

Figura 43 - Funções utilizadas no ajuste dos pads.

Figura 44 - Node utilizado para "chamada" da função de ajuste dos pads.

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)

Figura 45 - Resultado depois da execução da rotina do Dynamo.

Figura 46 - Corte 3D do terreno.

33
Utilizando o Dynamo na Superação de Desafios BIM da Vida Real (AUBR-112)

[3] Como o Dynamo pode te dar rentabilidade?

Podemos lançar várias perguntas a você para respondermos à essa questão:

 Qual o custo da sua hora de trabalho?

 E a do escritório?

 Como é o seu fluxo de trabalho? É automatizado?

 E a assertividade de processos tão dispendiosos como os mostrados nos cases?

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.

Assim, deixamos a pergunta,

“ E no seu dia-a-dia, em quais situações você poderia aplicar o


Dynamo? ”

34

Você também pode gostar