Baixe o app para aproveitar ainda mais
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
Compartilhar