Tutorial Prático do Autodesk Dynamo
Tutorial Prático do Autodesk Dynamo
DYNAMO 2016
Hands-On
CONHECENDO O
AUTODESK DYNAMO
Descrição
AUTODESK® Dynamo® 0.9.1
Hands-On
Este tutorial demonstrará como usar o Dynamo visual programming para Autodesk ® Revit ®.
Este material proporcionará aos usuários os recursos e as instruções necessárias para exemplificar o processo de criação automática de geometrias, ajustando os
parâmetros das famílias do Revit ao utilizar dados externos, além do compartilhamento de informações com diferentes plataformas de projeto.
PRIMEIROS PASSOS
O Dynamo é, a princípio, um plugin para o Autodesk Revit. Ele funciona nas plataformas Revit 2015 e posteriores. Este tutorial requer que você tenha uma dessas
versões do Revit instaladas, juntamente com o Dynamo.
A Comunidade
AUTODESK® Dynamo® 0.9.1
Hands-On
A – MENU
Utilize o menu desdobrável para abrir e para criar novos arquivos do
A
Dynamo, para Salvar seus arquivos e para exportar imagens da sua área de
trabalho atual. Utilize as operações de Copiar e Colar, crie novos Nós e
adicione comentários. Use o menu desdobrável View para ativar pré-
visualizações do background, para visualizar o console (log) e para
modificar a aparência da grade.
B
B – TOOLBARS
Use a barra de pesquisa para encontrar “Nós” já carregados.
C – LIBRARY D
Procure por “Nós” selecionados. Clique em um título de “Nó” para adicioná-
lo à área de trabalho.
D – WORKSPACE
A área de trabalho é o principal ambiente para criação de programações visuais
C
do Dynamo. A área de trabalho “Home” é a área de trabalho padrão.
Quando um usuário cria ou edita um Nó customizado, ele aparecerá como uma
nova Tab.
E
E – EXECUTION BAR
O Execution Bar permite que o usuário execute a área de trabalho ativa. A caixa
“Run Automatically” (Execute automaticamente) faz com que a área de trabalho
seja executada caso o usuário mude a área de trabalho ou modifique qualquer
elemento visualizado do Revit dentro do próprio Revit.
CONCEITOS, DEFINIÇÕES
E TERMINOLOGIA
Área de Trabalho
AUTODESK® Dynamo® 0.9.1
Hands-On
1. Tabs – Abas
2. Zoom / Pan Buttons
3. Preview Mode, mostrando os
Nós ou o modelo.
4. Clique Duplo na Área de
trabalho cria um Nó “Code
Block”
A área de trabalho ativa é a área onde você interage com os elementos de sua programação visual. Quando você inicia o Dynamo, você está em uma nova Área de trabalho
“Home”.
Você começa criando sua programação visual aqui, colocando os Nós e conectando os fios.
Você pode salvar sua área de trabalho como um arquivo .dyn (Dynamo Workspace) para uso posterior. Os arquivos Dynamo (.dyn) podem ser abertos pelo File menu ou por
Samples. Ao abrir um arquivo Dynamo, a área de trabalho anterior será limpa e um novo arquivo será aberto com uma nova área de trabalho ativa. Você somente pode abrir
uma única área de trabalho por vez, porém pode possuir blocos de códigos abertos em paralelo (custom nodes, que são arquivos .dyf).
Uma área de trabalho é executada manualmente quando você pressiona o botão “Run” ou executada automaticamente se você deixar ativa a caixa de “Run Automatically”.
Por padrão, o background da área de trabalho mostra toda geometria fora do gráfico.
Nós (nodes)
AUTODESK® Dynamo® 0.9.1
Hands-On
A. “Nós” são objetos que você coloca e conecta junto aos fios para formar um programa visual. Nós A
podem representar elementos do Revit como Model Lines ou Reference Points, e podem representar
operações como funções matemáticas. Vale ressaltar que os Nós possuem inputs e outputs e que suas
cores mudam para indicar estados. A maioria dos Nós são compostos por 5 partes. Existem exceções,
como os Input Nodes, mas a anatomia dos Nós geralmente pode ser descrita da seguinte forma:
1. Nome – O nome do Nó, com [Link] seguindo a convenção de nomeação.
2. Principal – O corpo principal do Nó – ao clicar com o botão direito ele apresenta opções de nível para todo
o Nó.
3. Portas (In and Out) – Os receptors para os fios (wires) que suprem o input de dados (data) para o Nó, assim
como os resultados de ação do Nó.
4. Visualizador – Passe o cursor ou clique no ícone para ver uma prévia descrevendo os resultados das ações
realizadas pelo Nó.
5. Ícone Laço - Indica a opção de laço específica para combinar as listas de inputs.
B
B. Estados de um “Nó”:
1. Inativo – Nós cinzas são inativos e necessitam ser conectados por fios (wires) para se tornarem parte do
Program Flow, no Workspace ativo.
2. Ativo - Nós com o nome em cinza escuro estão bem conectados, e funcionando com sucesso.
3. Selecionado – Respectivamente os Nós selecionados apresentam um highlight azul em seu contorno.
4. Advertência (Warning) - Nós amarelos, apresentam um estado de Erro / Advertência.
5. Default Value - Clique com o botão direito do mouse em uma porta de Input – alguns Nós tem valores
que podem ser usados ou não utilizados.
Fios (wires)
AUTODESK® Dynamo® 0.9.1
Hands-On
Os fios (wires) conectam-se nos Nós (nodes) para criar relações e estabelecer fluxos. Você pode considerá-los
literalmente como fios elétricos que carregam impulsos de informação de um objeto para o outro.
Wires conectam as portas de saída (Output Port) de um Nó com a porta de entrada (Input Port) de outro Nó.
Você cria um fio usando o botão esquerdo do mouse sobre uma porta de saída (Output Port) e arrastando com o botão
do mouse pressionado e, em seguida, conectando-se à porta de entrada (Input Port) de outro Nó. Os fios aparecem
como uma linha pontilhada ao ser arrastado e como linhas sólidas quando conectado com sucesso. Para desconectar
um fio, aperte com o botão esquerdo do mouse no Nó de saída e puxe o fio de distância.
PORTAS (PORTS)
Nós possuem input Ports (Portas de Entrada) do lado esquerdo e Output Ports (Portas de Saída)
no lado direito. A direção de execução e o fluxo do programa geralmente vão da esquerda para a direita.
1. Identificação de Porta - Port Label
2. Dica de Ferramenta - Tool Tip
3. Tipo de Dados - Data Type
As Portas são as áreas retangulares mais claras dos Nodes , e funcionam como receptores para Wires.
A informação flui através das Portas a partir da esquerda para a direita.
As portas de Entrada (Input) estão no lado esquerdo do Node, e as de saída, do lado direito do Node.
Portas são feitas para receber certos tipos de dado: por exemplo, um Nó pode trabalhar em objetos de ponto ou
objetos de linha.
Um exemplo é tentar conectar informações de saída com informações de entrada (XYZ-> XYZ, por exemplo).
Passando um objeto de linha à porta de entrada de um Nó que está esperando um objeto de ponto resultará em
um erro.
Você pode identificar que tipo de informação o Nó está esperando receber ou retornar a partir do rótulo de texto.
Se o nome estiver abreviado, basta passar o mouse sobre a porta e uma dica de ferramenta (Tooltip) aparecerá.
Biblioteca (Library)
AUTODESK® Dynamo® 0.9.1
Hands-On
A Biblioteca contém os Nós utilizados pelo Dynamo. Podemos procurar pelos Nós no
“search”. A biblioteca é principalmente uma biblioteca criada a partir de coleções de
funcionalidades específicas, cada qual com seus grupos de Nós definidos pela
categoria. Apesar disso parecer ser algo confuso em um primeiro momento, é uma
maneira de deixar o framework flexivel para a organização dos Nós que vêm no
conteúdo padrão de instalação do Dynamo – e até mesmo melhor quando
começamos a estender essa base de Nós, através de Nós customizados e o acréscimo
de pacotes adicionais (Packages).
A organização se dá como na imagem ao lado:
A área de trabalho possui um fluxo de trabalho/programa (workflow) que evidencia onde começar a
execução do programa, o que fazer enquanto isso e como saber quando a execução do programa estiver
completa.
Quando você pressiona “Run”, o Dynamo executa a programação visual de acordo com o Fluxo do programa
estabelecido.
Direcionalidade de Execução
Tipicamente, a programação visual do Dynamo é executada da esquerda para a direita, e você pode ler o
programa desta mesma maneira para entender o Fluxo do Programa. Há algumas exceções a isso conforme
você for explorando tópicos mais avançados como Recursão, mas para os propósitos deste curso
introdutório, leremos apenas da esquerda para a direita.
Você pode criar seus próprios Nós reutilizaveis no Dynamo sem necessitar programar. Estes Nós podem ser usados na área de trabalho (Workspace) atual ou em outras áreas de
trabalho em sua máquina. Você pode, também, compartilhar estes Nós com outras pessoas.
Para criar seus Nós, siga o caminho: “File> New> Custom Node” ou selecionando um Nó existente em sua área de trabalho e clicando em “Edit> Create Node From Selection” (Ou
clicando com o botão direito na tela). Dê um nome e uma Categoria ao Nó (Selecionando pelo menu desdobrável ou entrando com um novo nome). Repare que a cor de fundo fica
diferente quando você está editando um Nó criado pelo usuário.
Nós Customizados aparecem na lista de Nós (Node List) como os outros Nós. Você pode dar duplo clique para editar estes Nós a qualquer momento.
Nós customizados são graficamente distintos de outros Nós por parecerem uma Pilha de Nós.
Eles se distinguem por terem uma espécie de sombreado tracejado embaixo. Ao identifica-los por este tracejado, você poderá editar seu conteúdo clicando duas vezes sobre ele.
Você pode compartilhar com seus colegas os Nós que você criar, através do menu Packager Manager tools.
Ao selecionar um Nó customizado e ir no menu desdobrável Package Manager, você poderá publicar seu Nó para que outras pessoas o vejam. Analogamente, você pode procurar o
catálogo online por funcionalidades publicadas por outros usuários.
Nós customizados podem ser aglomerados dentro de si mesmos para criar funcionalidades recursivas, como as sequências Fibonacci ou Fractais.
No caso de se ter criado e salvo um Nó indesejado basta apagar o arquivo .dyf da biblioteca entre uma sessão e outra do Dynamo (os custom nodes ficam em
C:\Users\YOUR_USERNAME\AppData\Roaming\Dynamo\0.9\definitions
AUTODESK® Dynamo® 0.9.1
EXEMPLOS
Os seguintes fluxos de trabalho irão usar arquivos Dynamo que estão localizados na pasta DYN Files, e na Pasta
RVT Files, localizadas dentro da pasta Hands-on Datasets.
Para facilitar a abertura de arquivos RFA, RVT e DYN, você pode querer adicionar esta pasta para seus lugares
‘prediletos’ (Add Current Folder to Places).
Criar um ponto de referência é a operação mais básica que você pode fazer no
Dynamo. É o como se fosse o “Hello!" para a aplicação.
Para chegar lá, você terá que aprender alguns conceitos de alto nível e compreender
alguns dos princípios básicos ao trabalhar no ambiente Revit:
Ao dar o Hello, devemos aprender que no Dynamo precisamos ser muito organizados, pois como iremos trabalhar com muitos Nós, ao invés de
trabalharmos digitando um texto, iremos usar esses pacotes de dados e iremos conectá-los. Como acreditamos que todos irão desenvolver
workflows complexos, a organização desses Nós pelo workspace é muito importante. Nesse primeiro instante iremos aprender a:
- Colocar os Nós em ordem;
- Organizar os wires entre os Nós;
- Organizar os Nós em grupos;
- Acrescentar notas;
- Selecione os Nós e clique no Workspace com o botão direito do mouse, coloque o cursor sobre a ferramenta Align Section, aonde você irá clicar em Top, e irá ver
q todos os Nós irão ser alinhados em relação ao Nó que estava mais acima no workspace, clique em outras opções e entenda como organizar melhor esses Nós no
espaço;
- Após organizados selecione o conjunto de Nós referentes a uma ação especifica e vá até o menu Edit,e clique em create group, ou use Ctrl + G, para criar um
grupo, clique com o botao direito do mouse na caixa colorida que será criada e escolha as cores, e dê um nome para esse conjunto de Nós.
- Agora vá ate o menu, e clique em view, selecione conector e poderá ver que há opção curva ou polylines, escolha polylines e veja como esse aspecto pode
auxiliar na organização do espaço.
Do Início Hands-On
Abra o Revit.
Nós vamos colocar pontos de referência, o que só pode ser feito no menu “Mass, Curtain Panel by
Pattern”, ou “Adaptive Component family environments” (que é diferente do ambiente de projeto
rvt).
Clique em (Canto Superior Esquerdo) New> Family> Conceptual [Link]. Ou, na tela de
documentos recentes, em Famílias, Clique em "Nova Massa conceitual". Atenção às unidades – para
facilitar a visualização dos resultados mude para metros.
Os próximos fluxos de trabalho iremos usar arquivos Dynamo que estão localizados na pasta Dyn
Files, que está inserida na pasta Hands-on Dynamo 0.9.1.
O Dynamo vai trabalhar a partir do arquivo .rfa ou .rvt que estiver ativo no Revit no
momento em que o Dynamo for aberto.
Execute o Dynamo, abra um novo arquivo, do zero. Criaremos Nós no Wokspace, usando a barra
“search”, para procurar na biblioteca os Nós que precisamos usar para concluir esse exercício.
Utilize os valores 0,0,0 para as coordenadas que irão decidir o posicionamento inicial do nosso
ponto.
AUTODESK® Dynamo® 0.9.1
Do Início Hands-On
Agora vamos aprender como re-ligar o fio na área de trabalho para adicionar mais entradas:
Digite “Number" na barra de pesquisa para encontrar o Number Node (Nó de Número) para adicioná-lo à área de trabalho. Isso pode ser feito tanto digitando o nome
do Nó e apertando enter na área de trabalho quanto buscando-o na Biblioteca de Nós.
Encontre o Nó Number Slider (slider de Números) e acrescente-o;
No Nó [Link], seleccione a extremidade do fio de ligação da porta Y. Arraste-o para fora para desligá-lo. Faça o mesmo para a porta Z.
Conecte o novo Number à porta Y e o Nó Number Slider à porta Z.
Do Início Hands-On
Visualize: Mova o Slider para ver o ponto movendo-se na área de trabalho. Conecte a saída do ponto ao Nó de [Link].
No tab de Create do Family Editor do Revit, selecione Draw > Spline through Points, e desenhe uma spline de forma que um dos pontos da curva seja o
ponto criado através do Reference Point criado pelo Dynamo, apenas clicando sobre esse ponto ao criar a linha.
Mova o Number Slider e veja que ambas as áreas de trabalho (Revit e Dynamo) se alteram conforme você move o slider.
Crie um Nó customizado seguindo os passos: Selecione os Nós PointByCoordinates e ReferencePoinByPoint, depois clique com o botão direito na área de
trabalho e selecione a opção “New Node from Selection”. A categoria deve ser “Core”.
• Como utilizar Lacing Node para avaliar os membros de uma lista de diversos modos;
• Criar linhas, grids e grades de Reference Points;
• Colocar instâncias de família com o Dynamo;
Vá com o clique direito sobre o Nó “Sequence” e selecione “Help” para ver que tipos de entradas e saídas a
seqüência numérica espera.
Observe o pequeno ícone no canto inferior direito do Nó XYZ. Isso indica o Lacing para este Nó em
particular. O Lacing permite que você aplique automaticamente o Nó para a sequência criada pelo Nó
“Sequence”.
CROSS PRODUCT
Obs: Na imagem ao lado, o lacing do Nó está configurado para “Longest”. Mantenha assim.
Pode-se filtrar o ponto inicial da sequência. Utilize o Nó [Link] para selecionar o ponto inicial conectando a saída
de Sequence ao input list de [Link] e sua saída à entrada z de [Link]. Regule o primeiro valor
através do input do Nó “number”.
Aperte “Run” novamente. Você deverá ver um único ponto localizado na origem. Isto fará com que o Nó avalie SHORTEST
apenas o primeiro elemento na lista criada pelo Nó de “Sequence”, como mostrado abaixo.
Retorne o fio da saída de Sequence para a entrada z em [Link]. Se você selecionar o botão “Run” novamente, você deverá ver novamente
uma linha vertical de pontos regularmente espaçados.
INSERINDO FAMÍLIAS COM SEQUÊNCIAS, AUTODESK® Dynamo® 0.9.1
Hands-On
RANGES, LINHAS E GRIDS
Você pode experimentar ligando a sequência para as portas de X e Y para obter um plano nos eixos XY.
Ligue todas as 3 portas de entrada do Nó “PointByCoordinates” para a saída do Nó “Sequence” e aperte “Run”.
Volte um pouco no processo e ligue o Nó Number, definido como 0, para a porta Z do Nó “Sequence”.
Teremos apenas uma grade no plano XY.
Agora sairemos um pouco da caixa para fazermos algo mais útil do que apenas a criação de pontos. Vamos
colocar instâncias da família!
Vá para a barra de busca e digite "Family“. Esta funcionalidade filtra os Nós disponíveis e permite o acesso
mais fácil a partir da lista de Nós. A partir de agora, você deverá ver apenas os Nós relacionadas a "Family".
Procure então o Nó “Family Instance by Point and Level” e o Nó “Family Types” e insira-os na área de trabalho.
Para acessar o menu de ajuda de ambos, basta clicar com o botão direito nos mesmos.
Ligue a saída do Nó “Family Type” com a porta de entrada “type" do Nó “Family Instance by Point and Level”.
Agora, selecione o “W Shapes-Column:W10X49” Family type no menu desdobrável do Nó “Family Types” e conecte a porta de saída Point do Nó “PointByCoordinates”
com a entrada Point do Nó “Family Instance by Point and Level”. Insira então o Nó “Levels” e conecte-o ao Nó “Family Instance by Point and Level”. Altere o valor de
level para “Level 1”.
INSERINDO FAMÍLIAS COM SEQUÊNCIAS, AUTODESK® Dynamo® 0.9.1
Hands-On
RANGES, LINHAS E GRIDS
Sua área de trabalho deverá estar parecido com esta:
Este tutorial dá uma breve introdução ao processo de classificação de dados em listas. Listas cadastradas são a espinha dorsal do projeto de
algoritmos, e obter o controle de ambas as ferramentas e conceitos é essencial para alcançar o sucesso em níveis mais complexos.
Clique com o botão direito sobre o Nó PointsByCoordinate e defina o Lancing para Cross Product. Ative o
“Run” e veja os resultados na área de trabalho: usando um Nó Watch.
LISTAS NESTED E AUTODESK® Dynamo® 0.9.1
Hands-On
GESTÃO BÁSICA DE DADOS
Agora vamos extrair uma única linha de informação da lista nested. Na barra de pesquisa, encontre a opção “List Get Item At Index”, ou navegue para o
Nó em Core> Lists> Query. Extraia a primeira linha de dados, passando a Lista de Listas através da porta List do Nó “List Get Item At Index” (como na
Imagem abaixo, só que com os pontos no plano xy) , e escolhendo a primeira linha de índex (Índice) através de um Nó Number com o resultado igual a 5
(Imagem abaixo). Selecione o Nó List Get Item At Index para ver a linha isolada na visualização gráfica ao fundo.
Copie e cole seus Nós “Number” e “Get from List” (selecione e dê copy/paste), e
coloque um Nó “Transpose” entre os Nós Watch e o novo List Get Item At Index.
Ajuste a porta de entrada “Index” para o mesmo valor 5. Agora, ao selecionar o Nó
List Get Item At Index, você mudou a seleção de linhas para colunas e tem um
conjunto diferente de geometria para usar.
Se você utilizar os Nós para a criação de famílias trabalhados no exercício anterior poderá ver como utilizar somente a coluna ou a linha para posicionar
famílias.
Confira mais possibilidades no Gethub, ou até mesmo em trabalhos feitos pela comunidade que usaram dessa gestão de dados.
COLOCAÇÃO AVANÇADA DE FAMÍLIAS: AUTODESK® Dynamo® 0.9.1
Hands-On
COMPONENTES ADAPTATIVOS
COMPONENTES ADAPTATIVOS
Para utilizar os parâmetros da massa, iremos utilizar o CodeBlock e Number Sliders para criar esses mesmos
parâmetros dentro do ambiente do Dynamo, Notemos que o Gable já foi selecionado, mas agora
precisamos colocar seus parâmetros dentro do Dynamo. Abra um code block, e copie os nomes desses
parâmetros que estão representados na barra de propriedades do Revit quando clicamos no elemento,
abra colchetes, e entre cada elemento utilize a virgula colocando eles entre aspas {“Height”,} , esse code
bock criado será nosso código para os parâmetros, depois através de Sliders iremos criar os valores que
através de outro code block serão inseridas no Nó que controlará essas mudanças que é o ElementSet
Parameter By Name. Selecione o Volume pelo Select Model Element e use o Element Set Parameter By
Name, que irá controlar todos os outros Nós.
Edite as alturas das mesma Family Instancedes novamente. Você deverá notar a atualização das instâncias
de famílias.
COMPONENTES ADAPTATIVOS
O Dynamo pode utilizar geometrias extraídas do ambiente Revit e executar uma série de
diferentes operações com estas geometrias. Essas geometrias podem ser manipuladas de
várias maneiras utilizando operações de lista.
- Crie o Nó Poly Curve By Joined Curves, que irá tranforma-las em
Neste exemplo, você vai aprender como: polylines.
- Create list juntando todas as arestas que irão formas as linhas
• Selecionar e utilizar a geometria Revit no Dynamo aonde iremos inserir a familia.
• Colocar componentes adaptativos.
Crie:
- Dois Nós . Select Edge e Um List Create, com dois inputs
- Copie-os em um grupo abaixo. Conecte com os wires.
COMPONENTES ADAPTATIVOS
- Criaremos um Code Block, que irá combinar com um number slider para controlar o
número de treliças inseridas nas polylines.
- Seguiremos com os Nó Curve Plane at Parameter, que irá transformas essas curvas em
parâmetros,
- Siga agora criando um Nó Geometry Intersect, que irá unir os dados, após feito precisamos
inserir um list map, para unir e se juntar a um Nó Flatten, que irá limpar parâmetros
desnecessarios. Agora posicionando um List Transpose.
- Adicione Adaptive Component By Points,
Dynamo tem muitas ferramentas úteis para fazer matemática. Este tutorial tem como objetivo demonstrar como:
Para se ter uma idéia do que este espaço de trabalho faz, aperte o botão Run (Executar). Você deverá ver um arco de pontos XYZ centrado na origem, se
estiver problemas abra o arquivo [Link]
MATEMÁTICA BÁSICA COM AUTODESK® Dynamo® 0.9.1
Hands-On
Troque os Nós Math basicos, por Nós Formula e mude-os colocando os senos e coscenos multiplicados por outros valores, tais valores que serão definidos
pelos number sliders. Ou seja, vamos adicionar um multiplicador para o segundo Nó Formula e conectar um Number Slider (controle deslizante de número)
para isso. Agora, o seu espaço de trabalho deve ser semelhante a este:
Nota: O Nó Formula é baseado na biblioteca open source (fonte aberta) NCalc. Esta biblioteca tem uma quantidade incrível de recursos - que inclui muitos
operadores matemáticos, funções, e você pode até mesmo passar as suas próprias funções para o Nó! Para uma descrição completa de operadores, funções e
mais confira: [Link]
TEXTURA ATRATORA
AUTODESK® Dynamo® 0.9.1
Hands-On
Este exercício irá guiar o usuário através de simples problemas encontrados em projetos assistidos por computador através do Dynamo. O usuário irá
construir uma lógica “Atratora” no qual a distância dos pontos resultará em uma variação geométrica.
Este exemplo cria elementos do Revit que podem ser feitos em Zoom para ajustar Watch 3D
qualquer ambiente, para que possa trabalhar em qualquer
contexto, seja no Revit ou no FormIt.
Até agora, temos só fizemos geometrias abstratas. Podemos despejar esses dados em Model Lines do Revit, anexando o Círculo ou saídas do Nó
Watch 3D para os Nós Reference Curve e New Sketch Plane.
O fluxo de trabalho resulta nesta geometria Revit que ainda está associada com o gráfico:
• Experimente com os controles deslizantes para ter uma idéia de mudanças na atualização do
modelo com e sem geometria Revit
• Se você salvar o arquivo do Dynamo e o arquivo do Revit, o arquivo do Dynamo vai "lembrar" da
geometria que havia criado anteriormente e manipulará seus parâmetros mais tarde, e não criará
novos elementos.
COMPARTILHANDO E REUTILIZANDO ALGORITMOS AUTODESK® Dynamo® 0.9.1
Hands-On
COM O PACKAGE MANAGER