Buscar

DynamoPrimer-Print 16-01-2021

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 575 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 575 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 575 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Table of Contents
1. Sobre 0
2. Introdução 1
1. O que é a programação visual? 1.1
2. O que é o Dynamo? 1.2
3. O Dynamo em ação 1.3
3. Olá, Dynamo! 2
1. Instalar e iniciar o Dynamo 2.1
2. A interface do usuário 2.2
3. O espaço de trabalho 2.3
4. Guia de Introdução 2.4
4. A anatomia de um programa visual 3
1. Nós 3.1
2. Fios 3.2
3. Biblioteca 3.3
4. Gerenciar o programa 3.4
5. Os blocos de construção de programas 4
1. Dados 4.1
2. Matemática 4.2
3. Lógica 4.3
4. Sequências 4.4
5. Cor 4.5
6. Geometria do projeto computacional 5
1. Visão geral da geometria 5.1
2. Vetores 5.2
3. Pontos 5.3
4. Curvas 5.4
5. Superfícies 5.5
6. Sólidos 5.6
7. Malhas 5.7
8. Importando geometria 5.8
7. Projetar com listas 6
1. O que é uma lista? 6.1
2. Trabalhar com listas 6.2
3. Listas de listas 6.3
4. Listas n-dimensionais 6.4
8. Blocos de código e DesignScript 7
1. O que é um bloco de código 7.1
2. Sintaxe do DesignScript 7.2
3. Abreviação 7.3
4. Funções 7.4
9. Dynamo for Revit 8
1. A conexão do Revit 8.1
2. Seleção 8.2
3. Editando 8.3
4. Criando 8.4
5. Personalização 8.5
6. Documentação 8.6
10. Dicionários no Dynamo 9
1. O que é um dicionário 9.1
2. Usos de nós 9.2
3. Usos de blocos de código 9.3
4. Casos de uso 9.4
11. Nós personalizados 10
1. Introdução ao nó personalizado 10.1
2. Criar um nó personalizado 10.2
3. Publicar na biblioteca 10.3
4. Nós do Python 10.4
5. Python e Revit 10.5
6. Modelos Python no Dynamo 2.0 10.6
12. Pacotes 11
1. Introdução aos pacotes 11.1
2. Estudo de caso do pacote – Kit de ferramentas de malha 11.2
3. Desenvolver um pacote 11.3
4. Publicar um pacote 11.4
5. Importação sem toque 11.5
13. Geometria com o DesignScript 12
1. Conceitos básicos da geometria DesignScript 12.1
2. Primitivas geométricas 12.2
3. Matemática de vetores 12.3
4. Curvas: interpoladas e pontos de controle 12.4
5. Transformações de conversão, rotação e outras 12.5
6. Superfícies: interpoladas, pontos de controle, elevação, revolução 12.6
7. Parametrização geométrica 12.7
8. Interseção e aparar 12.8
9. Booleanos geométricos 12.9
10. Geradores de pontos do Python 12.10
14. Práticas recomendadas 13
1. Estratégias de gráfico 13.1
2. Estratégias de script 13.2
3. Referência dos scripts 13.3
15. Apêndice 14
1. Recursos 14.1
2. Índice de nós 14.2
3. Pacotes úteis 14.3
4. Arquivos de exemplo 14.4
Sobre
O Dynamo Primer
Para o Dynamo v2.0
Faça o download do Dynamo v1.3 Primer aqui
O Dynamo é uma plataforma de programação visual de código-fonte aberto para os projetistas.
Bem-vindo
Você acabou de abrir o Dynamo Primer, um guia abrangente para a programação visual no Autodesk Dynamo Studio. Este
manual é um projeto contínuo para compartilhar os fundamentos da programação. Os tópicos incluem trabalhar com
geometria computacional, as melhores práticas para projetos baseados em regras, aplicativos de programação interdisciplinar
e muito mais com a plataforma Dynamo.
O poder do Dynamo pode ser encontrado em uma ampla variedade de atividades relacionadas ao projeto. O Dynamo permite
uma lista ampliada de maneiras prontamente acessíveis para você começar:
Explore a programação visual pela primeira vez
Conecte fluxos de trabalho em vários softwares
Envolva uma comunidade ativa de usuários, colaboradores e desenvolvedores
Desenvolva uma plataforma de código aberto para aprimoramento contínuo
No meio dessa atividade e da empolgante oportunidade de trabalhar com o Dynamo, precisamos de um documento do
mesmo calibre, o Dynamo Primer.
Este manual inclui capítulos desenvolvidos com o Mode Lab. Esses capítulos concentram-se nos elementos essenciais que
você precisará para começar a trabalhar desenvolvendo seus próprios programas visuais com o Dynamo e informações
importantes sobre como tirar o máximo proveito do Dynamo. Veja o que você pode aprender com o manual:
Contexto – O que é exatamente a “Programação visual” e quais são os conceitos que preciso entender para me
aprofundar no Dynamo?
Guia de Introdução – Como posso obter o Dynamo e criar meu primeiro programa?
O que há em um programa – Quais são as partes funcionais do Dynamo e como posso usá-las?
Blocos de construção – O que são os “Dados” e quais são alguns tipos fundamentais que eu posso começar a usar
em meus programas?
Geometria do projeto – Como posso trabalhar com elementos geométricos no Dynamo?
Listas, Listas, Listas – Como posso gerenciar e coordenar minhas estruturas de dados?
Código em nós – Como posso começar a estender o Dynamo com meu próprio código?
BIM computacional – Como posso usar o Dynamo com um modelo do Revit?
Nós personalizados – Como posso criar meus próprios nós?
Pacotes – Como posso compartilhar minhas ferramentas com a comunidade?
Este é um momento empolgante para aprender, trabalhar e desenvolver no Dynamo. Vamos começar!
Código aberto
O projeto Dynamo Primer é de código aberto. Estamos empenhados em fornecer conteúdo de qualidade e agradecemos se
http://primer.dynamobim.org/en/Appendix/DynamoPrimer-Print1_3.pdf
enviar seus comentários sobre o projeto. Se você desejar relatar algum tipo de problema, poste-o em nossa página de
problemas do GitHub: https://github.com/DynamoDS/DynamoPrimer/issues
Se você desejar contribuir com uma nova seção, edições ou qualquer outra coisa para este projeto, confira o repositório
GitHub para começar: https://github.com/DynamoDS/DynamoPrimer.
O projeto Dynamo Primer
O Dynamo Primer é um projeto de código aberto, iniciado por Matt Jezyk e a equipe de desenvolvimento do Dynamo na
Autodesk.
A Mode Lab foi contratada para escrever a primeira edição do manual. Agradecemos a todos os seus esforços no
estabelecimento deste recurso valioso.
A John Pierson of Parallax Team foi contratada para atualizar o manual de modo a refletir as revisões do Dynamo 2.0.
Agradecimentos
Um agradecimento especial a Ian Keough por iniciar e orientar o projeto do Dynamo.
Obrigado a Matt Jezyk, Ian Keough, Zach Kron, Racel Williams e Colin McCrone pela colaboração entusiástica e pela
oportunidade de participar de uma grande variedade de projetos do Dynamo.
Software e recursos
Dynamo – A versão atual estável* do Dynamo é a versão 2.1.0
http://dynamobim.com/download/ ou http://dynamobuilds.com
*Observação: A partir do Revit 2020, o Dynamo é fornecido com as versões do Revit, portanto não é necessário fazer a
instalação manual. Mais informações estão disponíveis neste post do blog.
DynamoBIM – A melhor fonte para obter informações adicionais, conteúdo de aprendizagem e fóruns é o site do
DynamoBIM.
http://dynamobim.org
Dynamo GitHub – Dynamo é um projeto de desenvolvimento de código aberto no GitHub. Para contribuir, confira o
DynamoDS.
https://github.com/DynamoDS/Dynamo
Contato – Informe-nos sobre quaisquer problemas com este documento.
Dynamo@autodesk.com
Licença
Copyright 2019 Autodesk
Licenciado com base na licença Apache, versão 2.0 ("Licença"); não é possível utilizar esse arquivo, exceto em
conformidade com a licença. Você pode obter uma cópia da licença em:
https://github.com/DynamoDS/DynamoPrimer/issues
https://github.com/DynamoDS/DynamoPrimer
http://modelab.is
http://www.parallaxteam.com/
http://dynamobim.com/download/
http://dynamobuilds.com
https://dynamobim.org/dynamo-core-2-1-release/
http://dynamobim.org
https://github.com/DynamoDS/Dynamo
http://www.apache.org/licenses/LICENSE-2.0
A menos que exigido pela lei aplicável ou estabelecido em acordo escrito, o software distribuído sob a Licença é distribuído
NO ESTADO EM QUE SE ENCONTRA, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, expressas ou
implícitas. Consulte a licença para o idioma específico que controla as permissões e limitações sob a licença.
http://www.apache.org/licenses/LICENSE-2.0
Introdução
INTRODUÇÃO
Desde as suas origens como um complemento para o BIM (Building Information Modeling – Modelagem de informações de
construção) no Revit, o Dynamo se tornou muitas coisas. Acima de tudo, tornou-se uma plataforma que permite aos
designers explorar a programação visual, resolver problemas e criar suas próprias ferramentas. Vamoscomeçar nossa jornada
com o Dynamo contextualizando um pouco: o que é o Dynamo e qual é a abordagem correta para usá-lo?
O que é a programação visual?
O que é a programação visual?
A criação de projetos frequentemente envolve estabelecer relações visuais, sistémicas ou geométricas entre as partes de um
projeto. Frequentemente, essas relações são desenvolvidas por fluxos de trabalho que nos levam do conceito ao resultado
final por meio de regras. Talvez sem saber, estamos trabalhando algoritmicamente - definindo um conjunto passo a passo de
ações que seguem uma lógica básica de entrada, processamento e saída. A programação nos permite continuar a trabalhar
desta maneira, mas formalizando nossos algoritmos.
Algoritmos em causa
Ao oferecer algumas oportunidades poderosas, o termo Algoritmo pode levar a alguns equívocos sobre o assunto. Os
algoritmos podem gerar coisas inesperadas ou maravilhosas, mas eles não são mágicos. Na verdade, são bem simples.
Vamos usar um exemplo prático como um origami em formato de pássaro. Começamos com um pedaço de papel quadrado
(entrada), seguimos uma série de etapas de dobra (ações de processamento) e temos um resultado de um origami em formato
de pássaro (saída).
Então onde está o algoritmo? Este é o conjunto abstrato de etapas, que podemos representar de duas maneiras: textualmente
ou graficamente.
Instruções textuais:
1. Comece com um pedaço de papel quadrado, com o lado colorido voltado para cima. Dobre ao meio e abra. Em
seguida, dobre ao meio da forma contrária.
2. Vire o papel para o lado branco. Dobre bem o papel ao meio, abra e depois dobre novamente na outra direção.
3. Utilizando as dobras criadas, traga os três cantos superiores do modelo para baixo até o canto inferior. Nivele o
modelo.
4. Dobre as abas triangulares superiores para o centro e desdobre.
5. Dobre bem a parte superior do modelo para baixo e desdobre.
6. Abra a aba mais alta do modelo, trazendo-a para cima e pressionando as laterais do modelo para dentro ao mesmo
tempo. Nivele, vincando bem.
7. Vire o modelo e repita os passos 4 a 6 no outro lado.
8. Dobre as abas superiores para o centro.
9. Repita o procedimento do outro lado.
10. Dobre as duas "pernas" do modelo para cima, vincando bem e, em seguida, desdobre.
11. Faça uma dobra reversa interior nas "pernas" ao longo dos vincos que acabou de fazer.
12. Faça uma dobra reversa interior em um lado para fazer a cabeça e, em seguida, dobre as asas para baixo.
13. Agora você tem um pássaro.
Instruções gráficas:
Definição de programação
O uso de qualquer um desses conjuntos de instruções deve resultar em um pássaro e, se você seguiu o processo, aplicou um
algoritmo. A única diferença é a maneira como lemos a formalização desse conjunto de instruções e isso nos leva à
Programação. A programação, frequentemente abreviada de Programação de computadores, é o ato de formalizar o
processamento de uma série de ações em um programa executável. Se transformarmos as instruções acima para criar um
pássaro em um formato que nosso computador possa ler e executar, estamos programando.
A chave e o primeiro obstáculo que encontraremos na programação é que precisamos depender de alguma forma de
abstração para nos comunicarmos efetivamente com o computador. Isso assume a forma de qualquer número de linguagens
de programação, como JavaScript, Python ou C. Se pudermos escrever um conjunto repetitivo de instruções, como para o
origami em formato de pássaro, precisamos apenas traduzi-lo para o computador. Estamos no caminho de fazer com que o
computador seja capaz de fazer um pássaro ou até uma infinidade de pássaros diferentes, com pequenas variações. Este é o
poder de programação: o computador executará repetidamente qualquer tarefa ou conjunto de tarefas que atribuímos a ele,
sem demora e sem erro humano.
Definição de programação visual
Faça o download do arquivo de exemplo que acompanha este exercício (clique com o botão direito do mouse e "Salvar
link como..."): Programação visual - Circle Through Point.dyn. Uma lista completa de arquivos de exemplo pode ser
encontrada no Apêndice.
Se você foi encarregado de escrever instruções para dobrar um origami em formato de pássaro, como você faria isso? Você
criaria as instruções com gráficos, texto ou alguma combinação dos dois?
Se sua resposta continha gráficos, então a Programação visual é definitivamente a opção ideal para você. O processo é
basicamente o mesmo para programação e programação visual. Elas utilizam a mesma estrutura de formalização; no entanto,
definimos as instruções e as relações do programa por meio de uma interface gráfica (ou "visual") do usuário. Em vez de
digitar texto vinculado pela sintaxe, nós conectamos os nós pré-empacotados. Aqui está uma comparação do mesmo
algoritmo, "desenhar um círculo através de um ponto", programado com nós versus código:
Programa visual:
Programa textual:
myPoint = Point.ByCoordinates(0.0,0.0,0.0);
x = 5.6;
y = 11.5;
attractorPoint = Point.ByCoordinates(x,y,0.0);
dist = myPoint.DistanceTo(attractorPoint);
myCircle = Circle.ByCenterPointRadius(myPoint,dist);
Os resultados do nosso algoritmo:
A característica visual da programação diminui a barreira de iniciar as atividades e frequentemente é bem compreendida
pelos designers. O Dynamo se encaixa no paradigma de programação visual, mas como veremos mais tarde, ainda podemos
usar a programação textual no aplicativo.
O que é o Dynamo?
O que é o Dynamo?
O Dynamo é, quase literalmente, o que você faz dele. Trabalhar com o Dynamo pode incluir o uso do aplicativo, seja em
conexão com outro software da Autodesk ou não, envolver um processo de programação visual ou participar de uma ampla
comunidade de usuários e colaboradores.
O aplicativo
O Dynamo, o aplicativo, é um software que pode ser transferido por download e executado no modo “Sandbox”
independente ou como um plug-in para outros softwares como o Revit ou o Maya. É descrito como:
Uma ferramenta de programação visual que tem o objetivo de ser acessível para pessoas que não são programadores e
para os programadores. Ele oferece aos usuários a capacidade de verificar visualmente o comportamento do script, e os
scripts que utilizam diversas linguagens de programação de textual.
1. Veja o Dynamo em ação com o Revit
2. Faça o download do instalador
O processo
Depois de instalar o aplicativo, o Dynamo nos permitirá trabalhar em um processo de programação visual, no qual
conectamos os elementos para definir as relações e as sequências de ações que compõem os algoritmos personalizados.
Podemos usar nossos algoritmos para uma ampla gama de aplicativos, desde o processamento de dados até a geração de
geometria, tudo em tempo real e sem escrever nenhum código.
Adicione elementos, conecte-se e começaremos a criar programas visuais.
A Comunidade
O Dynamo não seria o que é sem um forte grupo de usuários ávidos e colaboradores ativos. Participe da comunidade
seguindo o blog, adicionando seu trabalho à galeria ou discutindo o Dynamo no fórum.
A plataforma
O Dynamo é idealizado como uma ferramenta de programação visual para os designers, permitindo-nos criar ferramentas
que usam bibliotecas externas ou qualquer produto da Autodesk que tenha uma API. Com o Dynamo Studio, podemos
desenvolver programas em um aplicativo estilo “Sandbox”, mas o ecossistema do Dynamo continua a crescer.
O código-fonte do projeto é de código aberto, o que nos permite estender a funcionalidade conforme desejarmos. Confira o
projeto no GitHub e procure o trabalho em andamento dos usuários personalizando o Dynamo.
Pesquise e comece a estender o Dynamo de acordo com suas necessidades
O Dynamo em ação
O DYNAMO EM AÇÃO
Desde o uso da programação visual para fluxos de trabalho do projeto até o desenvolvimento de ferramentas personalizadas,
o Dynamo é um aspecto integrante de uma ampla variedade de aplicativos interessantes.
Siga o quadro O Dynamo em ação no Pinterest.
http://www.pinterest.com/modelabnyc/dynamo-in-action/
Olá, Dynamo!
OLÁ, DYNAMO.
Essencialmente,o Dynamo é uma plataforma para programação visual: uma ferramenta de projeto flexível e extensível.
Como ele pode operar como um aplicativo independente ou como um complemento de outro software de projeto, podemos
usá-lo para desenvolver uma ampla gama de fluxos de trabalho criativos. Vamos instalar o Dynamo e começar revisando os
principais recursos da interface.
Instalar e iniciar o Dynamo
Instalar e iniciar o Dynamo
O Dynamo é um projeto de desenvolvimento de código aberto ativo com instaladores para download, tanto para versões
oficiais quanto para pré-lançamento, ou seja, para versões de “compilação diária”. Faça o download da versão oficial para
começar ou contribua para o desenvolvimento do Dynamo por meio das compilações diárias ou do projeto GitHub.
Fazer o download
Para fazer o download da versão oficial lançada do Dynamo, visite o site do Dynamo. Inicie o download imediatamente
clicando na página inicial ou navegue para a página de download dedicada.
1. Assista a um vídeo sobre o Projeto computacional com o Dynamo para arquitetura
2. Ou navegue até a página de download
Aqui, você pode fazer o download das versões de desenvolvimento “avançadas” ou acessar o projeto Dynamo Github.
http://dynamobim.com/
https://github.com/DynamoDS/Dynamo
1. Fazer o download do instalador da versão oficial
2. Fazer o download dos instaladores das compilações diárias
3. Conferir os pacotes personalizados de uma comunidade de desenvolvedores
4. Participar do desenvolvimento do Dynamo no GitHub
Instalação
Navegue até o diretório do instalador transferido por download e execute o arquivo executável. Durante o processo de
instalação, a configuração permite personalizar os componentes que serão instalados.
1. Selecionar os componentes que deseja instalar
Aqui, precisamos decidir se queremos incluir os componentes que conectam o Dynamo a outros aplicativos instalados, como
o Revit. Para obter mais informações sobre a plataforma do Dynamo, consulte o Capítulo 1.2.
Iniciar
Para iniciar o Dynamo, navegue até \Arquivos de Programas\Dynamo\Dynamo Revit\x.y e, em seguida, selecione
DynamoSandbox.exe. Isso abrirá a versão independente e apresentará a página inicial do Dynamo. Nesta página, veremos os
menus e a barra de ferramentas padrão, bem como uma coleção de atalhos que nos permite acessar a funcionalidade do
arquivo ou acessar recursos adicionais.
1. Arquivos – Inicie um novo arquivo ou abra um existente
2. Recentes – Navegue pelos arquivos recentes
3. Backup – Acesse seus backups
4. Perguntar – Obtenha acesso direto ao Fórum do usuário ou ao site do Dynamo
5. Referência – Saiba mais com recursos de aprendizagem adicionais
6. Código – Participe do projeto de desenvolvimento de código aberto
7. Amostras – Confira os exemplos que vêm com a instalação
Abra o primeiro arquivo de amostra para abrir seu primeiro espaço de trabalho e confirmar que o Dynamo está funcionando
corretamente. Clique em Amostras > Conceitos básicos > Basics_Basic01.dyn.
1. Confirme se a barra de execução diz “Automático” ou clique em Executar
2. Siga as instruções e conecte o nó Number ao nó +
3. Confirme se este nó Watch mostra um resultado
Se este arquivo for carregado com êxito, você deverá ser capaz de executar o primeiro programa visual com o Dynamo.
A interface do usuário
A interface do usuário do Dynamo
A interface do usuário (IU) para o Dynamo é organizada em cinco regiões principais, sendo a maior delas a área de trabalho
onde criamos nossos programas visuais.
1. Menus
2. Barra de ferramentas
3. Biblioteca
4. Área de trabalho
5. Barra de execução
Vamos nos aprofundar mais na interface de usuário e explorar a funcionalidade de cada região.
Menus
Os menus suspensos são um ótimo local para encontrar algumas das funções básicas do aplicativo Dynamo. Como a maioria
dos softwares Windows, as ações relacionadas ao gerenciamento de arquivos e operações para seleção e edição de conteúdo
são encontradas nos dois primeiros menus. Os menus restantes são mais específicos do Dynamo.
1. Arquivo
2. Editar
3. Vista
4. Pacotes
5. Configurações
6. Ajuda
7. Notificações
Barra de ferramentas
A barra de ferramentas do Dynamo contém uma série de botões para acesso rápido ao trabalho com arquivos, bem como os
comandos Desfazer [Ctrl + Z] e Refazer [Ctrl + Y]. Na parte mais à direita há outro botão que exportará um instantâneo do
espaço de trabalho, o que é extremamente útil para a documentação e o compartilhamento.
1. Novo - Cria um novo arquivo .dyn
2. Abrir - Abre um arquivo .dyn (espaço de trabalho) ou .dyf (nó personalizado) existente
3. Salvar/Salvar como - Salva seu arquivo .dyn ou .dyf ativo
4. Desfazer - Desfaz a última ação
5. Refazer - Refaz a próxima ação
6. Exportar espaço de trabalho como imagem - Exporta o espaço de trabalho visível como um arquivo PNG
Biblioteca
A biblioteca contém todos os nós carregados, incluindo os nós padrão que vêm com a instalação, bem como quaisquer nós ou
pacotes personalizados carregados adicionalmente. Os nós na biblioteca são organizados hierarquicamente dentro de
bibliotecas, categorias e, quando apropriado, subcategorias com base nos nós: Criar dados, executar uma Ação ou
Consultar dados.
Procurando
Por padrão, a Biblioteca irá conter oito categorias de nós. Core e Geometry são ótimos menus para começar a explorar, pois
contêm a maior quantidade de nós. Navegar por essas categorias é a maneira mais rápida de entender a hierarquia do que
podemos adicionar ao nosso espaço de trabalho e a melhor maneira de descobrir novos nós que você não usou antes.
Vamos nos concentrar agora na coleção padrão de nós, mas observe que estenderemos esta Biblioteca com nós
personalizados, bibliotecas adicionais e o Gerenciador de pacotes posteriormente.
1. Dicionário
2. Exibição
3. Geometria
4. ImportExport
5. Entrada
6. List
7. Coincide
8. Revit
9. Script
10. Sequência
11. Complementos
Navegue na biblioteca clicando nos menus. Clique em Geometry > Curves > Circle. Observe a nova parte do menu que é
revelada e especificamente as legendas Create e Query.
1. Biblioteca
2. Categoria
3. Subcategoria: Create/Actions/Query
4. Nó
5. Descrição e propriedades do nó: isso aparece ao passar o cursor sobre o ícone do nó.
No mesmo menu Circle, passe o mouse sobre ByCenterPointRadius. A janela exibe informações mais detalhadas sobre o
nó, além de seu nome e ícone. Isso nos oferece uma maneira rápida de entender o que o nó faz, o que ele exigirá para as
entradas e o que ele fornecerá como resultado.
1. Descrição: descrição de texto simples do nó
2. Ícone: versão maior do ícone no menu Biblioteca
3. Entrada(s): nome, tipo de dados e estrutura de dados
4. Saída(s): tipo de dados e estrutura
Pesquisa
Se você sabe com especificidade relativa que nó deseja adicionar ao seu espaço de trabalho, o campo Pesquisar é o seu
melhor amigo. Quando você não estiver editando configurações ou especificando valores no espaço de trabalho, o cursor está
sempre presente neste campo. Se você começar a digitar, a Biblioteca do Dynamo revelará uma correspondência de melhor
resultado (com trilhas de navegação que podem ser encontradas nas categorias de nó) e uma lista de correspondências
alternativas à pesquisa. Quando você pressiona Enter ou clica no item no navegador truncado, o nó realçado é adicionado ao
centro do espaço de trabalho.
1. Campo de pesquisa
2. Melhor resultado/Selecionado
3. Alternar correspondências
Configurações
De configurações geométricas até às do usuário, essas opções podem ser encontradas no menu Configurações. Aqui é
possível escolher entre compartilhar ou não os seus dados de usuário para melhorar o Dynamo, bem como definir a precisão
de ponto decimal do aplicativo e a qualidade de renderização da geometria.
1. Ativar relatórios: opções para compartilhar dados de usuário para aprimorar o Dynamo.
2. Mostrar visualização do trecho: visualiza o estado de execução do gráfico. Os nós programados para execução
serão realçados em seu gráfico.
3. Opções de formato de número: alteraas configurações do documento para decimais.
4. Precisão de renderização: aumenta ou diminui a qualidade de renderização do documento.
5. Escala de geometria: seleciona o intervalo de geometria em que você está trabalhando.
6. Isolar geometria selecionada: geometria de fundo isolada com base na seleção do nó.
7. Mostrar/ocultar arestas de geometria: alterna arestas de geometria 3D.
8. Mostrar/ocultar balões de visualização: alterna a visualização de balões de visualização abaixo dos nós.
9. Gerenciar caminhos de nó e pacote: gerencia caminhos de arquivo para que os nós e pacotes apareçam na
biblioteca.
10. Ativação de recursos experimentais: usa os novos recursos beta no Dynamo.
Ajuda
Se você tiver dúvidas, confira o menu Ajuda. Aqui você pode encontrar os arquivos de amostra que vêm com a instalação,
bem como acessar um dos sites de referência do Dynamo por meio de seu navegador de internet. Se necessário, verifique a
versão do Dynamo instalada e se ele está atualizado por meio da opção Sobre.
1. Introdução: uma breve introdução sobre a utilização do Dynamo.
2. Amostras: arquivos de exemplo de referência.
3. Abrir dicionário do Dynamo: recurso com a documentação sobre todos os nós.
4. Relatório de um bug: abre um problema no GitHub.
5. Ir para o site do projeto: visualiza o projeto do Dynamo no GitHub.
6. Ir para a Wiki do projeto: visite a wiki para saber como desenvolver usando a API do Dynamo, com suporte a
bibliotecas e ferramentas.
7. Exibir a página inicial: retorna para a página inicial do Dynamo quando dentro de um documento.
8. Sobre: dados da versão do Dynamo.
O espaço de trabalho
O espaço de trabalho
O Espaço de trabalho do Dynamo é onde desenvolvemos os programas visuais, mas também é onde visualizamos qualquer
geometria resultante. Se estamos trabalhando em um espaço de trabalho inicial ou em um nó personalizado, podemos
navegar com o mouse ou com os botões na parte superior direita. Alternar entre os modos no canto inferior direito alterna a
visualização que navegamos.
Observação: os nós e geometria têm uma ordem de desenho para que você possa ter objetos renderizados um sobre o
outro. Isso pode ser confuso ao adicionar vários nós em sequência, pois eles podem ser renderizados na mesma posição
no espaço de trabalho.
1. Guias
2. Botões Zoom/Pan
3. Modo de visualização
4. Clicando duas vezes no espaço de trabalho
Guias
A guia Espaço de trabalho ativo permite navegar e editar o programa. Quando você abre um novo arquivo, por padrão, está
abrindo um novo espaço de trabalho Inicial. Você também pode abrir um novo espaço de trabalho de Nó personalizado no
menu Arquivo ou pela opção Novo nó por seleção ao clicar com o botão direito do mouse quando Nós estiverem
selecionados (mais informações sobre esta funcionalidade serão fornecidas mais adiante).
Observação: você pode ter somente um espaço de trabalho inicial aberto de cada vez; no entanto, você pode ter vários
espaços de trabalho de nó personalizados abertos em guias adicionais.
Navegação de visualização 3D e navegação por gráfico
No Dynamo, o gráfico e os resultados 3D do gráfico (caso uma geometria esteja sendo criada) são renderizados no espaço de
trabalho. Por padrão, o Gráfico é a visualização ativa, portanto, usar os botões de navegação ou o botão do meio do mouse
para efetuar o pan e zoom nos moverá através do Gráfico. A alternância entre as visualizações ativas pode ser obtida de três
maneiras:
1. Botões de alternância de visualização no espaço de trabalho
2. Clique com o botão direito do mouse no espaço de trabalho e selecione Alternar para... vista
3. Atalho de teclado (Ctrl + B)
O modo de navegação de visualização 3D também nos dá a capacidade de Manipulação direta de pontos, exemplificada em
Introdução.
Zoom para recentralizar
Podemos facilmente arrastar, ampliar e girar livremente em torno de modelos no modo de navegação de visualização 3D. No
entanto, para efetuar o zoom especificamente em um objeto criado por um nó de geometria, é possível utilizar o ícone Zoom
em tudo com um único nó selecionado.
http://primer.dynamobim.org/02_Hello-Dynamo/2-6_the_quick_start_guide.html
1. Selecione o nó correspondente à geometria que irá centralizar a vista.
2. Alterne para a Navegação de visualização 3D.
1. Clique no ícone Zoom em tudo na parte superior direita.
2. A geometria selecionada será centralizada dentro da vista.
Olá, Mouse!
Com base no modo de visualização que está ativo, os botões do mouse irão agir de forma diferente. Em geral, o clique com o
botão esquerdo do mouse seleciona e especifica entradas, o clique com o botão direito do mouse fornece acesso às opções e o
clique do meio do mouse permite navegar no espaço de trabalho. O clique com o botão direito do mouse nos apresentará com
opções baseadas no contexto de onde estamos clicando.
1. Clique com o botão direito do mouse no espaço de trabalho.
2. Clique com o botão direito do mouse em um nó.
3. Clique com o botão direito do mouse em uma observação.
Aqui está uma tabela de interações do mouse por Visualização:
Ação do Mouse Visualização de gráfico Visualização em 3D
Clique com o botão esquerdo Selecionar N/D
Clique com o botão direito do mouse Menu de contexto Opções de zoom
Clique com o botão do meio Pan Pan
Role Zoom ampliar/reduzir Zoom ampliar/reduzir
Clique duplo Criar Code Block N/D
Pesquisa na tela
Usando a "Pesquisa na tela", você agilizará consideravelmente o fluxo de trabalho do Dynamo, fornecendo acesso a
descrições de nós e dicas de ferramentas sem tirar você do seu lugar no gráfico! Basta clicar com o botão direito do mouse
para acessar toda a funcionalidade útil da "Pesquisa de biblioteca" de onde você estiver trabalhando na tela.
1. Clique com o botão direito do mouse em qualquer lugar da tela para abrir o recurso de pesquisa. Enquanto a
barra de pesquisa está vazia, o menu suspenso será exibido como um menu de visualização.
2. Quando você digita na barra de pesquisa, o menu suspenso será continuamente atualizado para mostrar os
resultados de pesquisa mais relevantes.
3. Passe o mouse sobre os resultados da pesquisa para obter suas descrições e dicas de ferramentas
correspondentes.
Limpar layout do nó
Manter sua tela do Dynamo organizada se torna cada vez mais importante à medida que seus arquivos se tornam mais
complexos. Embora tenhamos a ferramenta Alinhar seleção para trabalhar com pequenas quantidades de nós selecionados, o
Dynamo também tem como recurso a ferramenta Limpar layout do nó para ajudar com a limpeza geral do arquivo.
Antes da limpeza do nó
1. Selecione os nós a serem organizados automaticamente ou deixe todos desmarcados para limpar todos os nós
no arquivo.
2. O recurso de Limpar o layout do nó está localizado na guia Editar.
Após a limpeza do nó
1. Os nós serão automaticamente redistribuídos e alinhados, limpando quaisquer nós escalonados ou sobrepostos e
alinhando-os com os nós vizinhos.
Guia de Introdução
INTRODUÇÃO
Agora que nos familiarizamos com o layout da interface e com a navegação no espaço de trabalho, a próxima etapa é
compreender o fluxo de trabalho típico para desenvolver um gráfico no Dynamo. Vamos começar criando um círculo de
tamanho dinâmico e, em seguida, criar uma matriz de círculos com raios variáveis.
Definição de objetivos e relações
Antes de adicionar qualquer coisa ao espaço de trabalho do Dynamo, é fundamental que tenhamos um entendimento sólido
do que estamos tentando obter e quais serão as relações significativas. Lembre-se de que a qualquer momento que estamos
conectando dois nós, estamos criando um vínculo explícito entre eles: podemos alterar o fluxo de dados posteriormente, mas,
depois de conectado, nos comprometemos com essa relação. Neste exercício, queremos criar um círculo (Objetivo) onde a
entrada de raio é definida por uma distância a um ponto próximo (Relação).
Um ponto que define uma relação com base na distância é normalmente denominado "Atrativo". Aqui, a distância para
o nosso Ponto atrativo será usada para especificar o tamanhodo círculo.
Adicionar nós ao espaço de trabalho
Agora que temos nossos Objetivos e Relações desenhados, podemos começar a criar nosso gráfico. Precisamos dos nós que
representarão a sequência de ações que o Dynamo executará. Como sabemos que estamos tentando criar um círculo, vamos
começar localizando um nó que o faz. Usando o campo Pesquisar ou navegando pela biblioteca, vamos descobrir que há
mais de uma forma de criar um círculo.
1. Navegue para Geometry > Curves > Circle > Circle.ByPointRadius
2. Pesquisar > "ByCenterPointRadius..."
Vamos adicionar o nó Circle.ByPointRadius ao espaço de trabalho clicando nele na biblioteca: isso deve adicionar o nó ao
centro do espaço de trabalho.
1. O nó Circle.ByPointandRadius na biblioteca
2. Clicar no nó na biblioteca adiciona-o ao espaço de trabalho
Também precisamos dos nós Point.ByCoordinates, Number Input, e Number Slider.
1. Geometry > Points > Point > Point.ByCoordinates
2. Geometry > Geometry > DistanceTo
3. Input > Basic > Number
4. Input > Basic > Number Slider
Conectando nós com fios
Agora que temos alguns nós, precisamos conectar as Portas dos Nós com Fios. Estas conexões definirão o fluxo de dados.
1. Number para Point.ByCoordinates
2. Number Sliders para Point.ByCoordinates
3. Point.ByCoordinates (2) para DistanceTo
4. Point.ByCoordinates e DistanceTo para Circle.ByCenterPointRadius
Executar o programa
Com o fluxo do programa definido, tudo o que precisamos fazer é informar ao Dynamo para executá-lo. Quando o nosso
programa for executado (automaticamente ou quando clicarmos em Executar no Modo manual), os dados passarão pelos fios
e veremos os resultados na Visualização 3D.
1. (Clique em Executar): se a barra de execução estiver no Modo manual, é necessário clicar em Executar para
executar o gráfico
2. Visualização do nó: passar o mouse sobre a caixa no canto inferior direito de um nó irá fornecer um pop-up dos
resultados
3. Visualização 3D: se algum de nossos nós criar a geometria, veremos na Visualização 3D.
4. A geometria de saída no nó de criação.
Adicionar detalhes
Se o nosso programa estiver funcionando, devemos ver um círculo na Visualização 3D que está passando pelo nosso Ponto
atrativo. Isto é ótimo, mas podemos adicionar mais detalhes ou mais controles. Vamos ajustar a entrada para o Nó do círculo
para que possamos calibrar a influência no raio. Adicione outro Number Slider ao espaço de trabalho e, a seguir, clique
duas vezes em uma área em branco do espaço de trabalho para adicionar um nó de Code Block. Edite o campo no Code
Block, especificando X/Y.
1. Code Block
2. DistanceTo e Number Slider para Code Block
3. Code Block para Circle.ByCenterPointRadius
Adicionar complexidade
Iniciar a complexidade simples e de construção é uma forma eficaz de desenvolver nosso programa de forma incremental.
Uma vez que ele esteja trabalhando para um círculo, vamos aplicar a potência do programa a mais de um círculo. Em vez de
um ponto central, se utilizarmos um eixo de pontos e acomodarmos a alteração na estrutura de dados resultante, nosso
programa agora criará muitos círculos, cada um com um valor de raio exclusivo definido pela distância calibrada para o
Ponto atrativo.
1. Adicione um nó de Number Sequence e substitua as entradas de Point.ByCoordinates: clique com o botão
direito em Point.ByCoordinates e selecione Amarra > Referência cruzada
2. Adicione um nó de Mesclagem após Point.ByCoordinates. Para aplainar uma lista completamente, deixe a
entrada QTD no padrão de -1
3. A visualização 3D será atualizada com um eixo de círculos
Ajuste com manipulação direta
Às vezes, a manipulação numérica não é a abordagem correta. Agora é possível mover e puxar manualmente a geometria de
ponto ao navegar na visualização 3D em segundo plano. Também podemos controlar outra geometria que foi construída por
um ponto. Por exemplo, Sphere.ByCenterPointRadius é capaz de realizar a Manipulação direta também. Podemos
controlar a posição de um ponto a partir de uma série de valores X, Y e Z com Point.ByCoordinates. No entanto, com a
abordagem de Manipulação direta, é possível atualizar os valores dos controles deslizantes movendo manualmente o ponto
no modo Navegação de visualização 3D. Isso oferece uma abordagem mais intuitiva para controlar um conjunto de valores
discretos que identificam a localização de um ponto.
1. Para utilizar a Manipulação direta, selecione o painel do ponto a ser movido: as setas irão aparecer sobre o
ponto selecionado.
2. Alterne para o modo Navegação de visualização 3D.
1. Passe o mouse sobre o ponto e os eixos X, Y e Z aparecerão.
2. Clique e arraste a seta colorida para mover o eixo correspondente, e os valores do Number Slider serão
atualizados ao vivo com o ponto movido manualmente.
1. Observe que, antes da Manipulação direta, somente um controle deslizante foi conectado no componente
Point.ByCoordinates. Quando movemos manualmente o ponto na direção X, o Dynamo gerará
automaticamente um novo Number Slider para a entrada X.
A anatomia de um programa visual
ANATOMIA DE UM PROGRAMA VISUAL
O Dynamo nos permite criar programas visuais em um espaço de trabalho conectando nós com fios para especificar o fluxo
lógico do programa visual resultante. Este capítulo apresentará os elementos de programas visuais, a organização dos nós
disponíveis nas bibliotecas do Dynamo, as partes e os estados dos nós e as melhores práticas para seus espaços de trabalho.
Nós
Nós
No Dynamo, os Nós são os objetos que você conecta para formar um programa visual. Cada Nó executa uma operação: às
vezes pode ser tão simples quanto armazenar um número ou pode ser uma ação mais complexa, como criar ou consultar
geometria.
Anatomia de um nó
A maioria dos nós no Dynamo são compostos de cinco partes. Embora existam exceções, como os nós Input, a anatomia de
cada nó pode ser descrita da seguinte maneira: 
1. Nome – O nome do nó com uma convenção de nomenclatura Category.Name
2. Principal – O corpo principal do nó: clicar com o botão direito do mouse aqui apresenta opções no nível de todo
o nó
3. Portas (entrada e saída) – Os destinatários dos fios que fornecem os dados de entrada para o nó, assim como os
resultados da ação do nó
4. Ícone de amarra – Indica a opção de amarra especificada para as entradas de lista coincidentes (mais
informações adiante)
5. Valor padrão – Clique com o botão direito do mouse em uma porta de entrada: alguns nós têm valores padrão
que podem ser usados ou não.
Portas
As entradas e saídas nos nós são chamadas de portas e agem como receptores para os fios. Os dados entram o nó através das
portas à esquerda e saem do nó após ele ter executado sua operação à direita. As portas esperam receber dados de um
determinado tipo. Por exemplo, conectar um número como 2.75 às portas em um nó Point By Coordinates resultará na
criação com êxito de um ponto; no entanto, se fornecermos “Red” à mesma porta, resultará em um erro.
Dica: Passe o mouse sobre uma porta para ver uma dica de ferramenta contendo o tipo de dados esperado.
1. Legenda da porta
2. Dica de ferramenta
3. Tipo de dados
4. Valor padrão
Estados
O Dynamo fornece uma indicação do estado da execução do programa visual ao renderizar os nós com diferentes esquemas
de cores com base no status de cada nó. Além disso, passar o mouse ou clicar com o botão direito do mouse sobre o nome ou
as portas apresenta informações e opções adicionais.
1. Ativo – Os nós com um plano de fundo do nome cinza escuro estão bem conectados e têm todas as suas
entradas conectadas com êxito
2. Inativo – Os nós cinzas estão inativos e precisam ser conectados com fios para fazer parte do fluxo do programa
no espaço de trabalho ativo
3. Estado de erro – Vermelho indica que o nó está em um estado de erro
4. Congelar – Um nó transparente tem a função Congelar ativada, suspendendo a execução do nó
5. Selecionado – Os nós atualmente selecionados têm um realce azul-claro em sua borda
6. Aviso – Os nós amarelos estão em um estado de aviso, o que significa quepodem ter tipos de dados incorretos
7. Visualização do plano de fundo – Cinza escuro indica que a visualização da geometria está desativada
Se o programa visual tiver avisos ou erros, o Dynamo fornecerá informações adicionais sobre o problema. Qualquer nó
exibido em amarelo também terá uma dica acima do nome. Passe o mouse sobre a dica para expandi-la.
Dica: Com esta informação de dica de ferramenta disponível, examine os nós a montante para ver se o tipo de dados ou
a estrutura de dados requerido está com erro.
1. Dica de ferramenta de aviso – “Nulo” ou nenhum dado não pode ser entendido como um Duplo, ou seja, um
número
2. Use o nó Watch para examinar os dados de entrada
3. A montante do nó Number está indicando “Red”, não um número
Fios
Fios
Os fios se conectam entre os nós para criar relações e estabelecer o fluxo do nosso programa visual. Podemos pensar neles
literalmente como fios elétricos que carregam impulsos de dados de um objeto para o seguinte.
Fluxo do programa
Os fios conectam a porta de saída de um nó à porta de entrada de outro nó. Essa direcionalidade estabelece o Fluxo de dados
no programa visual. Embora possamos organizar nossos nós da maneira que desejarmos na área de trabalho, uma vez que as
portas de saída estão localizadas no lado direito dos nós e as portas de entrada estão no lado esquerdo, geralmente podemos
dizer que o fluxo do programa se move da esquerda para a direita.
Criar fios
Criamos um fio clicando com o botão esquerdo do mouse em uma porta e, em seguida, clicando com o botão esquerdo do
mouse na porta de outro nó para criar uma conexão. Enquanto estamos no processo de criar uma conexão, o fio aparecerá a
tracejado e se tornará numa linha contínua quando for conectado com êxito. Os dados sempre fluirão por este fio da saída
para a entrada; no entanto, podemos criar o fio em qualquer direção em termos da sequência de clicar nas portas conectadas.
Dica: Antes de concluir a conexão com seu segundo clique, permita que o fio se conecte a uma porta e passe o mouse
sobre ela para ver a dica de ferramenta da porta.
1. Clique na porta de saída seq do nó Number Sequence
2. Conforme você move o mouse na direção de outra porta, o fio é exibido tracejado
3. Clique na porta de entrada y do Point.ByCoordinates para concluir a conexão
Editar fios
Frequentemente, queremos ajustar o fluxo do programa em nosso programa visual editando as conexões representadas pelos
fios. Para editar um fio, clique com o botão esquerdo do mouse na porta de entrada do nó que já está conectado. Você agora
tem duas opções:
1. Fio existente
2. Para alterar a conexão para uma porta de entrada, clique com o botão esquerdo do mouse em outra porta de
entrada
3. Para remover o fio, afaste o fio e clique com o botão esquerdo do mouse no espaço de trabalho
*Observação: Há funcionalidades adicionais para mover vários fios de uma só vez. Isso é abordado aqui
http://dynamobim.org/dynamo-1-3-release/
Visualizações de fios
Por padrão, nossos fios serão visualizados com um traço cinza. Quando um nó é selecionado, ele renderizará qualquer fio de
conexão com o mesmo realce azul-claro do nó.
http://dynamobim.org/dynamo-1-3-release/
1. Fio padrão
2. Fio realçado
O Dynamo também nos permite personalizar a aparência dos nossos fios no espaço de trabalho por meio do menu Vista >
Conectores. Aqui, podemos alternar entre fios de curva ou polilinha ou desativá-los todos juntos.
1. Tipo de conector: curvas
2. Tipo de conector: polilinhas
Biblioteca
Biblioteca do Dynamo
A Biblioteca do Dynamo contém os nós que adicionamos ao espaço de trabalho para definir programas visuais para
execução. Na biblioteca, é possível pesquisar ou procurar nós. Os nós contidos aqui: os nós básicos instalados, os nós
personalizados que definimos e os nós do Gerenciador de pacotes adicionados ao Dynamo são organizados hierarquicamente
por categoria. Vamos analisar esta organização e explorar os principais nós que usaremos com frequência.
Biblioteca de bibliotecas
A Biblioteca do Dynamo com a qual fazemos interface no aplicativo é, na verdade, uma coleção de bibliotecas funcionais,
cada uma contendo nós agrupados por categoria. Embora isso pareça ser obtuso em princípio, é uma estrutura flexível para
organizar os nós que vêm com a instalação padrão do Dynamo, e é ainda melhor quando começamos a estender esta
funcionalidade-base com nós personalizados e pacotes adicionais.
O esquema organizacional
A seção Biblioteca da interface do usuário do Dynamo é composta por bibliotecas hierarquicamente organizadas. Quando
vamos detalhar a biblioteca, buscamos sequencialmente uma biblioteca, as categorias da biblioteca e as subcategorias da
categoria para localizar o nó.
1. A biblioteca: a região da interface do Dynamo
2. Uma biblioteca: uma coleção de categorias relacionadas, como Geometry
3. Uma categoria: uma coleção de nós relacionados, como tudo relacionado aos Circles
4. Uma subcategoria: divisão dos nós dentro da categoria, normalmente por Create, Action ou Query
5. Um nó: os objetos que são adicionados ao espaço de trabalho para executar uma ação
Convenções de nomenclatura
A hierarquia de cada biblioteca é refletida no Nome dos nós adicionados ao Espaço de trabalho, que também podemos usar
no Campo de pesquisa ou com Blocos de código (que usam a linguagem textual do Dynamo). Além de usar palavras-chave
para tentar localizar nós, podemos digitar a hierarquia separada por um ponto.
Ao inserir diferentes partes do local do nó na hierarquia de bibliotecas no formato library.category.nodeName, os
resultados são diferentes:
1. library.category.nodeName
2. category.nodeName
3. nodeName ou palavra-chave
Normalmente, o nome do nó no espaço de trabalho será renderizado no formato category.nodeName, com algumas
exceções notáveis, especialmente nas categorias de entrada e vista. Tenha atenção aos nós de nome semelhante e observe a
diferença de categoria:
1. Os nós da maioria das bibliotecas incluirão o formato da categoria
2. Point.ByCoordinates e UV.ByCoordinates têm o mesmo nome, mas vêm de diferentes categorias
3. Exceções notáveis incluem funções incorporadas, Core.Input, Core.View e Operators
Nós utilizados com frequência
Com centenas de nós incluídos na instalação básica do Dynamo, quais são essenciais para o desenvolvimento de nossos
programas visuais? Vamos nos concentrar naqueles que nos permitem definir os parâmetros do programa (Entrada), ver os
resultados de uma ação do nó de (Inspeção) e definir entradas ou funcionalidades por meio de um atalho (Code Block).
Entrada
Os nós de entrada são os principais meios para o usuário do nosso Programa visual, seja você mesmo ou outra pessoa, fazer a
interface com os parâmetros mais importantes. Aqui estão os nós disponíveis na Categoria de entrada da Biblioteca principal:
1. Booleano
2. Number
3. Sequência
4. Número do controle deslizante
5. Controle deslizante de números inteiros
6. Caminho do diretório
7. Caminho do arquivo
Assistir
Os nós de inspeção de variáveis são essenciais para gerenciar os dados que fluem através do seu Programa visual. Embora
seja possível visualizar o resultado de um nó através da visualização de dados do nó, é possível mantê-lo revelado em um nó
de Inspeção ou ver os resultados da geometria através de um nó Watch3D. Ambas são encontradas na categoria da vista na
biblioteca principal.
Dica: às vezes, a visualização 3D pode causar distrações quando o Programa visual contém muitos nós. Considere
desmarcar a opção Exibir visualização de plano de fundo no menu Configurações e usar um nó Watch3D para visualizar
a geometria.
1. Inspeção: observe que, quando você seleciona um item no nó de Inspeção, ele é marcado nas Visualizações do
Watch3D e 3D
2. Watch3D: seleciona a alça inferior direita para redimensionar e navegar com o mouse da mesma forma que
faria na Visualização 3D
Code Block
Os nós Code Block podem ser utilizados para definir um Code Block com linhas separadas por ponto e vírgula. Isso pode ser
tão simples quanto X/Y.Também é possível usar os Code Blocks como um atalho para definir uma entrada de número ou
chamar outra funcionalidade do nó. A sintaxe para fazer isso segue a Convenção de nomenclatura do idioma textual do
Dynamo, DesignScript e está descrita na Seção 7.2. Vamos tentar criar um círculo com este atalho:
1. Clique duas vezes para criar um nó de Code Block
2. Digite Circle.ByCenterPointRadius(x,y);
3. Clicar no espaço de trabalho para limpar a seleção deve adicionar entradas x e y automaticamente
4. Crie um nó Point.ByCoordinates e um Number Slider e, a seguir, conecte-os às entradas do Code Block
5. O resultado da execução do Programa visual deve ser um círculo na Visualização 3D
Gerenciar o programa
Gerenciar o programa
Trabalhar dentro de um processo de programação visual pode ser uma poderosa atividade criativa, mas muito rapidamente o
fluxo do programa e as principais entradas do usuário podem ser ofuscadas pela complexidade e/ou layout do espaço de
trabalho. Vamos rever algumas práticas recomendadas para o gerenciamento do programa.
Alinhamento
Depois de adicionar alguns nós ao espaço de trabalho, convém reorganizar o layout dos nós por uma questão de clareza. Ao
selecionar mais de um nó e clicar com o botão direito do mouse no espaço de trabalho, a janela pop up inclui um menu
Alinhar seleção com opções de justificação e distribuição em X e Y.
1. Selecione mais de um nó
2. Clique com o botão direito do mouse no espaço de trabalho
3. Use as opções de Alinhar seleção
Notas
Com alguma experiência, podemos “ler” o programa visual, revisando os nomes dos nós e seguindo o fluxo do programa.
Para usuários de todos os níveis de experiência, também é uma boa prática incluir descrições e rótulos em linguagem
simples. O Dynamo tem um nó Notes com um campo de texto editável para fazer isso. É possível adicionar notas ao espaço
de trabalho de duas maneiras:
1. Navegue até o menu Editar > Criar nota
2. Use o atalho de teclado Ctrl+W
Após a nota ser adicionada ao espaço de trabalho, será exibido um campo de texto, permitindo editar o texto na nota. Após
serem criadas, é possível editar as notas clicando duas vezes ou clicando com o botão direito do mouse no nó Note.
Agrupamento
Quando nosso programa visual cresce, é útil identificar as etapas maiores que serão executadas. Podemos destacar coleções
maiores de nós com um Grupo para rotulá-los com um retângulo colorido em segundo plano e um título. Existem três
maneiras de criar um grupo com mais de um nó selecionado:
1. Navegue até o menu Editar > Criar grupo
2. Use o atalho de teclado Ctrl+G
3. Clique com o botão direito do mouse no espaço de trabalho e selecione “Criar grupo”
Uma vez criado um grupo, podemos editar suas configurações, como o título e a cor.
Dica: Usar notas e grupos é uma forma eficaz de anotar seu arquivo e aumentar a legibilidade.
Veja a seguir o nosso programa da Seção 2.4 com notas e grupos adicionados:
1. Nota: “Parâmetros da grade”
2. Nota: “Pontos da grade”
3. Nota: “Criar uma grade de pontos”
4. Grupo: “Criar um ponto atrativo”
5. Nota: “Calibrar valores de distância”
6. Nota: “Grade de círculos variável”
Os blocos de construção de programas
OS BLOCOS DE CONSTRUÇÃO DE PROGRAMAS
Quando estivermos prontos para nos aprofundar no desenvolvimento de programas visuais, precisaremos de uma
compreensão mais profunda dos blocos de construção que usaremos. Este capítulo apresentará os conceitos fundamentais em
torno dos dados: o que percorre os fios do nosso programa Dynamo.
Dados
Dados
Os dados são a matéria dos nossos programas. Eles percorrem os fios, fornecendo entradas para os nós onde são processados
em uma nova forma de dados de saída. Vamos revisar a definição de dados, como eles são estruturados e começar a usá-los
no Dynamo.
O que são os dados?
Os dados são um conjunto de valores de variáveis qualitativas ou quantitativas. A forma mais simples de dados são os
números como 0, 3,14 ou 17. Mas os dados também podem ser de diferentes tipos: uma variável que representa a alteração
de números (altura); caracteres (myName); geometria (Circle); ou uma lista de itens de dados
(1,2,3,5,8,13,...). Precisamos de dados para adicionar às portas de entrada dos nós do Dynamo – podemos ter dados
sem ações, mas precisamos de dados para processar as ações que nossos nós representam. Quando adicionamos um nó ao
espaço de trabalho, se ele não tiver nenhuma entrada fornecida, o resultado será uma função, não o resultado da própria ação.
1. Dados simples
2. Dados e ações (nó A) executados com êxito
3. A ação (nó A) sem entradas de dados retorna uma função genérica
Cuidado com os nulos
O tipo “null” representa a ausência de dados. Embora seja um conceito abstrato, provavelmente ele aparecerá ao trabalhar
com a programação visual. Se uma ação não criar um resultado válido, o nó retornará nulo. Testar para verificar se existem
nulos e a sua remoção da estrutura de dados é uma parte crucial para criar programas robustos.
Ícone Nome/sintaxe Entradas Saídas
Object.IsNull obj bool
Estruturas de dados
Quando estamos fazendo a programação visual, podemos gerar muitos dados muito rapidamente e necessitar de um meio
para gerenciar sua hierarquia. Essa é a função das estruturas de dados, os esquemas organizacionais nos quais armazenamos
dados. As especificidades das estruturas de dados e de como usá-las variam conforme a linguagem de programação usada.
No Dynamo, adicionamos hierarquia aos nossos dados através das listas. Vamos explorar isso em profundidade em capítulos
posteriores. Para já, vamos começar de forma simples:
Uma lista representa uma coleção de itens colocados em uma estrutura de dados:
Tenho cinco dedos (itens) na minha mão (lista).
Há dez casas (itens) na minha rua (lista).
1. Um nó Number Sequence (Sequência de número) define uma lista de números usando uma entrada start,
amount e step. Com esses nós, criamos duas listas separadas de dez números, uma que vai de 100 a 109 e outra
que vai de 0 a 9.
2. O nó List.GetItemAtIndex seleciona um item em uma lista em um índice específico. Ao escolher 0, obtemos o
primeiro item da lista (100 neste caso).
3. Aplicando o mesmo processo à segunda lista, obtemos um valor de 0, o primeiro item na lista.
4. Agora, mesclamos as duas listas em uma usando o nó List.Create. Observe que o nó cria uma lista de listas.
Isso altera a estrutura dos dados.
5. Ao usar List.GetItemAtIndex novamente, com o índice definido como 0, obtemos a primeira lista na lista de
listas. Isso é o que significa tratar uma lista como um item, que é um pouco diferente de outras linguagens de
script. Nos capítulos posteriores, aprofundaremos mais a manipulação das listas e a estrutura de dados.
O conceito-chave para entender a hierarquia dos dados no Dynamo: em relação à estrutura de dados, as listas são
consideradas itens. Em outras palavras, o Dynamo funciona com um processo descendente para compreender as estruturas
dos dados. O que isso significa? Vamos analisar isso com um exemplo.
Usar dados para criar uma cadeia de cilindros
Faça o download do arquivo de exemplo que acompanha este exercício (clique com o botão direito do mouse e
selecione “Salvar link como...”): Building Blocks of Programs - Data.dyn. É possível encontrar uma lista completa de
arquivos de exemplo no Apêndice.
Neste primeiro exemplo, montamos um cilindro com camadas que percorre a hierarquia da geometria discutida nesta seção.
1. Point.ByCoordinates – Após adicionar o nó à tela, vemos um ponto na origem da grade de visualização do
Dynamo. Os valores padrão das entradas x,y e z são 0,0, especificando um ponto nesse local.
1. Plane.ByOriginNormal – A próxima etapa na hierarquia da geometria é o plano. Existem diversas maneiras de
construir um plano, e estamos usando uma origem e um normal para a entrada. A origem é o nó de ponto criado
na etapa anterior.
2. Vector.ZAxis – Esse é um vetor não convertido em unidade na direção z. Observe que não há entradas,
somente um vetor de valor [0,0,1]. Usamos isso comoa entrada normal para o nó Plane.ByOriginNormal. Isso
nos oferecerá um plano retangular na visualização do Dynamo.
1. Circle.ByPlaneRadius – Subindo na hierarquia, agora criamos uma curva com base no plano de nossa etapa
anterior. Após se conectar ao nó, obtemos um círculo na origem. O raio padrão no nó é o valor de 1.
1. Curve.Extrude – Agora, vamos fazer essa coisa surgir fornecendo alguma profundidade e entrando na terceira
dimensão. Esse nó cria uma superfície com base na curva por meio de extrusão. A distância padrão no nó é 1 e
devemos ver um cilindro na viewport.
1. Surface.Thicken – Esse nó nos fornece um sólido fechado deslocando a superfície por uma determinada
distância e fechando a forma. O valor padrão da espessura é 1 e vemos um cilindro com camadas na viewport
em linha com esses valores.
1. Number Slider (Controle deslizante de número) – Em vez de usar os valores padrão para todas essas entradas,
vamos adicionar um controle paramétrico ao modelo.
2. Domain Edit (Edição de domínio) – Após adicionar o controle deslizante de número à tela, clique no acento
circunflexo no canto superior esquerdo para exibir as opções de domínio.
3. Min/Max/Step (Mín./Máx./Etapa) – Altere os valores min, max e step para 0,2 e 0,01 respectivamente.
Estamos fazendo isso para controlar o tamanho da geometria geral.
1. Number Sliders (Controles deslizantes de número) – Em todas as entradas padrão, vamos copiar e colar esse
controle deslizante de número (selecione o controle deslizante, pressione Ctrl+C e, em seguida, Ctrl+V)
diversas vezes, até que todas as entradas com padrões tenham um controle deslizante. Alguns dos valores do
controle deslizante terão que ser maiores que zero para que a definição funcione (isto é, você precisa de uma
profundidade de extrusão para que uma superfície se torne mais espessa).
Agora, criamos um cilindro paramétrico com camadas com esses controles deslizantes. Tente flexibilizar alguns desses
parâmetros e veja a atualização da geometria dinamicamente na viewport do Dynamo.
1. Number Sliders (Controles deslizantes de número) – Aprofundando isso um pouco mais, adicionamos muitos
controles deslizantes à tela e precisamos limpar a interface da ferramenta que acabamos de criar. Clique com o
botão direito do mouse em um controle deslizante, selecione “Renomear...” e altere cada controle deslizante
para o nome apropriado para seu parâmetro. É possível fazer referência à imagem acima para ver os nomes.
Nesse ponto, criamos um item incrível de cilindro que aumenta de espessura. Esse é um objeto atualmente, vamos analisar
como criar uma matriz de cilindros que permanece vinculada de forma dinâmica. Para fazer isso, criaremos uma lista de
cilindros, em vez de trabalhar com um único item.
1. Adição (+) – Nosso objetivo é adicionar uma linha de cilindros ao lado do cilindro que criamos. Se desejarmos
adicionar um cilindro adjacente ao atual, precisamos considerar o raio do cilindro e a espessura de sua camada.
Obtemos esse número adicionando os dois valores dos controles deslizantes.
Essa etapa é mais complicada, portanto, vamos explicá-la devagar: o objetivo final é criar uma lista de números que
definem as localizações de cada cilindro em uma linha.
1. Multiplication (Multiplicação) – Primeiro, desejamos multiplicar o valor da etapa anterior por 2. O valor da
etapa anterior representa um raio e desejamos mover o cilindro ao longo de todo o diâmetro.
2. Number Sequence (Sequência de números) – Criamos uma matriz de números com esse nó. A primeira
entrada é o nó multiplication da etapa anterior para o valor step. É possível definir o valor inicial como 0,0
usando um nó number.
3. Integer Slider (Controle deslizante de número inteiro) – Para o valor amount, conectamos um controle
deslizante de número inteiro. Isso definirá quantos cilindros são criados.
4. Output (Saída) – Essa lista mostra a distância de movimentação de cada cilindro na matriz, e é orientada
parametricamente pelos controles deslizantes originais.
1. Esta etapa é simples o suficiente – Conecta a sequência definida na etapa anterior à entrada x do
Point.ByCoordinates original. Isso substituirá o controle deslizante pointX, que pode ser excluído. Agora,
vemos uma matriz de cilindros na viewport (certifique-se de que o controle deslizante do número inteiro seja
maior que 0).
A cadeia de cilindros ainda está dinamicamente vinculada a todos os controles deslizantes. Flexibilize cada controle
deslizante para assistir à atualização da definição.
Matemática
Matemática
Se a forma mais simples de dados forem os números, a forma mais fácil de relacionar esses números será através da
matemática. De operadores simples, como dividir até funções trigonométricas, ou fórmulas mais complexas, a matemática é
uma ótima forma de começar a explorar as relações e os padrões numéricos.
Operadores aritméticos
Os operadores são um conjunto de componentes que usam funções algébricas com dois valores de entrada numéricos, o que
resulta em um valor de saída (adição, subtração, multiplicação, divisão etc.). Eles podem ser encontrados em
Operadores>Ações.
Ícone Nome Sintaxe Entradas Saídas
Adicionar + var[]...[], var[]...[] var[]...[]
Subtrair - var[]...[], var[]...[] var[]...[]
Multiplicar * var[]...[], var[]...[] var[]...[]
Dividir / var[]...[], var[]...[] var[]...[]
Fórmula paramétrica
Faça o download do arquivo de exemplo que acompanha este exercício (clique com o botão direito do mouse e
selecione “Salvar link como...”): Building Blocks of Programs - Math.dyn. É possível encontrar uma lista completa de
arquivos de exemplo no Apêndice.
Partindo dos operadores, a próxima etapa lógica é combinar operadores e variáveis para formar uma relação mais complexa
através de Fórmulas. Vamos criar uma fórmula que pode ser controlada pelos parâmetros de entrada, como os controles
deslizantes.
1. Number Sequence (Sequência de números): defina uma sequência de números com base em três entradas:
start, amount e step. Essa sequência representa o “t” na equação paramétrica, portanto, desejamos usar uma
lista suficientemente grande para definir uma espiral.
A etapa acima criou uma lista de números para definir o domínio paramétrico. A espiral dourada é definida como a equação: 
= e = . O grupo de nós abaixo representa essa equação na forma de
programação visual.
Ao percorrer o grupo de nós, tente prestar atenção ao paralelo entre o programa visual e a equação escrita.
1. Number Slider (Controle deslizante de número): adicione dois controles deslizantes de número à tela. Esses
controles deslizantes representarão as variáveis a e b da equação paramétrica. Eles representam uma constante
que é flexível ou parâmetros que podem ser ajustados para um resultado desejado.
2. * : o nó de multiplicação é representado por um asterisco. Usaremos isso repetidamente para conectar variáveis
de multiplicação
3. Math.RadiansToDegrees: os valores “t” precisam ser convertidos em graus para sua avaliação nas funções
trigonométricas. Lembre-se de que o Dynamo tem como padrão graus para avaliar essas funções.
4. Math.Pow: como uma função de “t” e o número “e” que cria a sequência de Fibonacci.
5. Math.Cos e Math.Sin: essas duas funções trigonométricas diferenciarão a coordenada x e a coordenada y,
respectivamente, de cada ponto paramétrico.
6. Watch: agora vemos que nossa saída é formada por duas listas, essas serão as coordenadas x e y dos pontos
usados para gerar a espiral.
Da fórmula à geometria
Agora, a maioria dos nós da etapa anterior funcionará bem, mas é muito trabalho. Para criar um fluxo de trabalho mais
eficiente, observe os Blocos de código (seção 3.3.2.3) para definir uma sequência de caracteres de expressões do Dynamo
em um nó. Nesta próxima série de etapas, vamos analisar o uso da equação paramétrica para desenhar a espiral de Fibonacci.
1. Point.ByCoordinates: conecte o nó de multiplicação superior à entrada “x” e a parte inferior à entrada “y”.
Agora, vemos uma espiral paramétrica de pontos na tela.1. Polycurve.ByPoints: conecte Point.ByCoordinates da etapa anterior a points. Podemos deixar
connectLastToFirst sem entrada porque não estamos criando uma curva fechada. Isso cria uma espiral que
passa por cada ponto definido na etapa anterior.
Agora concluímos a espiral de Fibonacci. A partir daqui, vamos aprofundar isso em dois exercícios separados, que
chamaremos de nautiloide e girassol. Esses são abstrações de sistemas naturais, mas os dois aplicativos diferentes da espiral
de Fibonacci serão bem representados.
De espiral a nautiloide
1. Como ponto de partida, vamos começar com a mesma etapa do exercício anterior: criar uma matriz de espiral
de pontos com o nó Point.ByCoordinates.
1. Polycurve.ByPoints: mais uma vez, esse é o no do exercício anterior, que usaremos como referência.
2. Circle.ByCenterPointRadius: vamos usar um nó de círculo aqui com as mesmas entradas da etapa anterior. O
valor do raio tem como padrão 1,0, de modo que vemos uma saída imediata de círculos. Torna-se
imediatamente legível como os pontos se afastam da origem.
1. Circle.ByCenterPointRadius: para criar uma matriz mais dinâmica de círculos, nós conectamos a sequência
de número original (a sequência “t”) ao valor do raio.
2. Number Sequence (Sequência de números): essa é a matriz original de “t”. Ao conectar isso ao valor do raio,
os centros do círculo ainda divergem bastante da origem, mas o raio dos círculos está aumentando, criando um
gráfico de círculo Fibonacci moderno. Você ganhará pontos bônus se fizer em 3D.
De padrão nautiloide a filotaxia
Agora que fizemos uma camada circular nautiloide, vamos passar para as grades paramétricas. Vamos usar uma rotação
básica na espiral de Fibonacci para criar uma grade de Fibonacci, e o resultado é modelado de acordo com o crescimento de
sementes de girassol.
http://ms.unimelb.edu.au/~segerman/papers/sunflower_spiral_fibonacci_metric.pdf
1. Novamente, como ponto de partida, vamos começar com a mesma etapa do exercício anterior: criar uma matriz
de espiral de pontos com o nó Point.ByCoordinates.
1. Geometry.Rotate: há diversas opções de Geometry.Rotate; assegure-se de que você selecionou o nó com
geometry,basePlane e degrees como entradas. Conecte Point.ByCoordinates à entrada da geometria.
2. Plane.XY: conecte à entrada basePlane. Vamos rotacionar em torno da origem, que é a mesma localização da
base da espiral.
3. Number Range (Faixa de números): para nossa entrada de graus, desejamos criar várias rotações. Podemos
fazer isso rapidamente com um componente Number Range. Conecte isso à entrada degrees.
4. Number (Número): para definir o intervalo de números, adicione três nós number à tela na ordem vertical. De
cima para baixo, atribua valores de 0,0;360,0 e 120,0, respectivamente. Esses valores estão controlando a
rotação da espiral. Observe os resultados de saída no nó Number Range após conectar os três nós number ao
nó.
Nossa saída está começando a se parecer com um redemoinho. Vamos ajustar alguns dos parâmetros de Number Range e
ver como os resultados mudam:
1. Altere o tamanho da etapa do nó Number Range de 120,0 para 36,0. Observe que isso está criando mais
rotações e, portanto, nos oferece uma grade mais densa.
1. Altere o tamanho da etapa do nó Number Range de 36,0 para 3,6. Isso nos oferece agora uma grade muito
mais densa, e a direcionalidade da espiral é pouca clara. Senhoras e senhores, criamos um girassol.
Lógica
Logic
A Lógica, ou mais especificamente a Lógica condicional, permite especificar uma ação ou conjunto de ações com base em
um teste. Após avaliar o teste, teremos um valor booleano que representa True ou False que podemos usar para controlar
o fluxo do programa.
Booleanos
As variáveis numéricas podem armazenar um intervalo completo de números diferentes. As variáveis booleanas somente
podem armazenar dois valores referidos como True ou False, Yes ou No, 1 ou 0. Raramente usamos operações booleanas
para realizar cálculos devido ao seu intervalo limitado.
Declarações condicionais
A declaração “If” é um conceito chave na programação: “Se isso for verdadeiro, aquilo acontecerá; caso contrário, outra
coisa acontecerá. A ação resultante da declaração é controlada por um valor booleano. Há várias maneiras de definir uma
declaração “If” no Dynamo:
Ícone Nome Sintaxe Entradas Saídas
If If teste, true, false resultado
Fórmula IF(x,y,z) x, y, z resultado
Bloco de código (x?y:z) x, y, z resultado
Vamos examinar um breve exemplo de cada um desses três nós em ação usando a declaração “If” condicional:
Nessa imagem, boolean está definido como true, o que significa que o resultado é uma sequência de caracteres com a
inscrição: “this is the result if true” (esse será o resultado se true). Os três nós que criam a declaração If estão
funcionando de forma idêntica aqui.
Novamente, os nós estão funcionando de forma idêntica. Se boolean for alterado para false, nosso resultado será o
número Pi, conforme definido na declaração If original.
Filtrar uma lista
Faça o download do arquivo de exemplo que acompanha este exercício (clique com o botão direito do mouse e
selecione “Salvar link como...”): Building Blocks of Programs - Logic.dyn. É possível encontrar uma lista completa de
arquivos de exemplo no Apêndice.
Vamos usar a lógica para separar uma lista de números em uma lista de números pares e uma lista de números ímpares.
1. Number Range (Intervalo de números) – adicione um intervalo de números à tela.
2. Numbers (Números) – adicione três nós number à tela. O valor para cada nó number deve ser: 0,0 para start,
10,0 para end e 1,0 para step.
3. Output (Saída) – nossa saída é uma lista de 11 números que varia entre 0 e 10.
4. Modulo (%) – Number Range em x e 2,0 em y. Isso calcula o resto de cada número na lista dividida por 2. A
saída dessa lista fornece uma lista de valores alternados entre 0 e 1.
5. Equality Test (==) (Teste de igualdade) – adicione um teste de igualdade à tela. Conecte a saída modulo à
entrada x e 0,0 à entrada y.
6. Watch (Inspeção) – a saída do teste de igualdade é uma lista de valores que alternam entre true e false. Esses
são os valores usados para separar os itens na lista. 0 (ou true) representa números pares e (1 ou false)
representa números ímpares.
7. List.FilterByBoolMask – esse nó filtrará os valores em duas listas diferentes com base no booleano de entrada.
Conecte o number range original à entrada list e a saída equality test à entrada mask. A saída in representa
valores true enquanto a saída out representa valores false.
8. Watch (Inspeção) – como resultado, agora temos uma lista de números pares e uma lista de números ímpares.
Usamos operadores lógicos para separar as listas em padrões.
Da lógica à geometria
Desenvolvendo a lógica estabelecida no primeiro exercício, vamos aplicar essa configuração a uma operação de modelagem.
Vamos passar do exercício anterior com os mesmos nós. As únicas exceções (além de alterar o formato) são:
1. Os valores de entrada foram alterados.
2. Desconectamos a entrada da lista in em List.FilterByBoolMask. Colocaremos esses nós de lado por enquanto,
mas eles serão úteis depois no exercício.
Vamos começar conectando os nós, como mostrado na imagem acima. Esse grupo de nós representa uma equação
paramétrica para definir uma curva de linha. Algumas observações:
1. O primeiro controle deslizante deve ter um mín. de 1, um máx. de 4 e uma etapa de 0,01.
2. O segundo controle deslizante deve ter um mín. de 0, um máx. de 1 e uma etapa de 0,01.
3. PolyCurve.ByPoints – se o diagrama de nós acima for copiado, o resultado será uma curva senoidal na
viewport de Visualização do Dynamo.
O método para as entradas: use os nós de número nas propriedades mais estáticas e os controles deslizantes de número nas
mais flexíveis. Queremos manter o intervalo de números original que estávamos definindo no início desta etapa. No entanto,
a curva seno criada aqui deve ter alguma flexibilidade. É possível mover esses controles deslizantes para observar a curva
atualizarsua frequência e amplitude.
Vamos pular um pouco a definição e examinar o resultado final para que possamos fazer referência ao ponto em que
estamos chegando. As duas primeiras etapas são feitas separadamente. Agora queremos conectar as duas. Usaremos o
senoide base para controlar a localização dos componentes do compactador e usaremos a lógica true/false para alternar
entre caixas pequenas e caixas maiores.
1. Math.RemapRange – usando a sequência de números criada na etapa 01, vamos criar uma nova série de
números remapeando o intervalo. Os números originais da etapa 01 variam entre 0 e 100. Esses números
variam entre 0 e 1 nas entradas newMin e newMax, respectivamente.
1. Curve.PointAtParameter – conecte Polycurve.ByPoints (da etapa 2) a curve e Math.RemapRange a param.
Essa etapa cria pontos ao longo da curva. Remapeamos os números de 0 a 1 pois a entrada param está
procurando valores nesse intervalo. Um valor de 0 representa o ponto inicial e um valor de 1 representa os
pontos finais. Todos os números entre esses valores avaliam dentro do intervalo [0,1].
1. List.FilterByBoolMask – Conecte Curve.PointAtParameter da etapa anterior à entrada list.
2. Watch (Inspeção) – um nó de inspeção para in e um nó de inspeção para out mostra que temos duas listas que
representam índices pares e ímpares. Esses pontos estão ordenados da mesma maneira na curva, que
demonstramos na próxima etapa.
1. Cuboid.ByLength – recrie as conexões vistas na imagem acima para obter um compactador ao longo da curva
do seno. Um cuboide é apenas uma caixa aqui, e estamos definindo seu tamanho com base no ponto da curva
no centro da caixa. A lógica da divisão par/ímpar agora deve estar clara no modelo.
1. Number Slider (Controle deslizante de número) – voltando ao início da definição, podemos flexibilizar o
controle deslizante de número e observar a atualização do compactador. A linha superior de imagens representa
valores de intervalo do controle deslizante de número superior. Essa é a frequência da onda.
2. Number Slider (Controle deslizante de número) – a linha inferior de imagens representa um intervalo de
valores do controle deslizante inferior. Essa é a amplitude da onda.
Sequências
Sequências
Formalmente, uma String é uma sequência de caracteres é que representa uma constante literal ou algum tipo de variável. De
forma informal, uma sequência de caracteres é jargão de programação para texto. Trabalhamos com números, tanto números
inteiros quanto decimais, para controlar os parâmetros e podemos fazer o mesmo com o texto.
Criar sequências de caracteres
É possível usar as sequências de caracteres para uma ampla gama de aplicativos, incluindo a definição de parâmetros
personalizados, a anotação de conjuntos de documentação e a análise através de conjuntos de dados com base em texto. O nó
String está localizado em Núcleo>Categoria de entrada.
Os nós de amostra acima são sequências de caracteres. É possível representar um número como uma sequência de
caracteres, assim como uma letra ou uma matriz de texto inteira.
Consultar as sequências de caracteres
Faça o download do arquivo de exemplo que acompanha este exercício (clique com o botão direito do mouse e
selecione “Salvar link como...”): Building Blocks of Programs - Strings.dyn. É possível encontrar uma lista completa de
arquivos de exemplo no Apêndice.
É possível analisar rapidamente grandes quantidades de dados ao consultar sequências de caracteres. Falaremos sobre
algumas operações básicas que podem acelerar um fluxo de trabalho e ajudar na interoperabilidade do software.
A imagem abaixo considera uma sequência de caracteres de dados proveniente de uma planilha externa. A sequência de
caracteres representa os vértices de um retângulo no plano XY. Vamos analisar algumas operações de divisão de sequências
de caracteres no exercício em miniatura:
1. O separador “;” divide cada vértice do retângulo. Isso cria uma lista com quatro itens para cada vértice.
1. Ao pressionar “+” no meio do nó, criamos um novo separador.
2. Adicione uma sequência de caracteres “,” à tela e conecte-se à nova entrada do separador.
3. Nosso resultado é agora uma lista de dez itens. O nó primeiro divide com base em separator0 e, em seguida,
com base em separator1.
Embora a lista de itens acima possa ter o mesmo aspecto que os números, eles ainda são considerados sequências de
caracteres individuais no Dynamo. Para criar pontos, seu tipo de dados precisa ser convertido de uma sequência de caracteres
em um número. Isso é feito com o nó String.ToNumber
1. Esse nó é simples. Conecte os resultados de String.Split à entrada. A saída não parece diferente, mas o tipo de
dados é agora um número em vez de uma sequência de caracteres.
1. Com algumas operações adicionais básicas, agora temos um retângulo desenhado na origem com base na
entrada original da sequência de caracteres.
Manipular sequências de caracteres
Como uma sequência de caracteres é um objeto de texto genérico, ela armazena uma ampla gama de aplicações. Vamos
analisar algumas das principais ações em Núcleo>Categoria de sequência de caracteres no Dynamo:
Este é um método que consiste em mesclar duas sequências de caracteres em ordem. Usa cada sequência de caracteres
literais de uma lista e cria uma sequência de caracteres mesclada.
A imagem acima representa a concatenação de três sequências de caracteres:
1. Adicione ou subtraia sequências de caracteres da concatenação clicando nos botões +/- no centro do nó.
2. A saída fornece uma sequência de caracteres concatenada, com espaços e sinais de pontuação incluídos.
O método de união é muito similar a concatenar, exceto que tem uma camada de pontuação adicionada.
Se você já tiver trabalhado no Excel, poderá já ter visto um arquivo CSV. Isso significa valores separados por vírgulas. É
possível usar uma vírgula (ou, neste caso, dois traços) como separador com o nó de união para criar uma estrutura de dados
similar: 
A imagem acima representa a união de duas sequências de caracteres:
1. A entrada do separador permite criar uma sequência de caracteres que divide as sequências de caracteres
unidas.
Trabalhar com sequências de caracteres
Neste exercício, vamos usar métodos de consulta e manipulação de sequências de caracteres para desconstruir a estrofe final
de Parando por Woods em uma noite de neve de Robert Frost. Não é o aplicativo mais prático, mas isso nos ajudará a
compreender as ações de sequências de caracteres conceituais conforme as aplicamos às linhas legíveis do ritmo e da rima.
Vamos começar com uma divisão básica da sequência de caracteres da estrofe. Primeiro, percebemos que a escrita é
formatada com base em vírgulas. Usaremos esse formato para separar cada linha em itens individuais.
1. A sequência de caracteres base é colada em um nó de sequência de caracteres.
2. Outro nó de sequência de caracteres é usado para indicar o separador. Neste caso, usamos uma vírgula.
3. Um nó String.Split é adicionado à tela e conectado às duas sequências de caracteres.
4. A saída mostra que separamos as linhas em elementos individuais.
http://www.poetryfoundation.org/poem/171621
Agora, vamos chegar à parte boa do poema: as duas últimas linhas. A estrofe original era um item de dados. Separamos
esses dados em itens individuais na primeira etapa. Agora, precisamos pesquisar o texto que estamos procurando.
Embora possamos fazer isso selecionando os últimos dois itens da lista, se esse fosse um livro inteiro, não iríamos quer
ler tudo e isolar manualmente os elementos.
1. Em vez de pesquisar manualmente, usamos o nó String.Contains para executar uma pesquisa de um conjunto de
caracteres. Isso é semelhante a usar o comando “Localizar” em um processador de texto. Neste caso, obteremos
um retorno de “true” ou “false” se a subsequência de caracteres for encontrada no item.
2. Na entrada “searchFor”, definimos uma subsequência de caracteres que estamos procurando na estrofe. Vamos
usar um nó de sequência de caracteres com o texto “E milhas”.
3. A saída

Continue navegando