Dynamo
Primer for v2.0
Português (Brasil)
Português (Brasil)
  • Sobre
  • Introdução
    • O que é o Dynamo e como ele funciona?
    • Guia do Usuário do Primer, Comunidade e plataforma do Dynamo
  • Configuração do Dynamo
  • Interface do usuário
    • Área de trabalho
    • Biblioteca
  • Nós e fios
  • Nós e conceitos essenciais
    • Índice de nós
    • Geometria do projeto computacional
      • Visão geral da geometria
      • Vetor, plano e sistema de coordenadas
      • Pontos
      • Curvas
      • Superfícies
      • Sólidos
      • Malhas
    • Os blocos de construção de programas
      • Dados
      • Matemática
      • Lógica
      • Sequências de caracteres
      • Cor
    • Projetar com listas
      • O que é uma lista?
      • Trabalhar com listas
      • Listas de listas
      • Listas n-dimensionais
    • Dicionários no Dynamo
      • O que é um dicionário
      • Nós de dicionário
      • Dicionários em blocos de código
      • Casos de uso do Revit
  • Nós e pacotes personalizados
    • Nós personalizados
      • Introdução ao nó personalizado
      • Criar um nó personalizado
      • Publicar na biblioteca
    • Pacotes
      • Introdução aos pacotes
      • Estudo de caso do pacote – Kit de ferramentas de malha
      • Desenvolver um pacote
      • Publicar um pacote
      • Importação sem toque
  • Dynamo para Revit
    • A conexão do Revit
    • Selecionar
    • Editar
    • Criar
    • Personalizar
    • Documentação
  • Dynamo for Civil 3D
    • Conexão do Civil 3D
    • Guia de Introdução
    • Biblioteca de nós
    • Exemplos de fluxos de trabalho
      • Estradas
        • Posicionamento de postes de luz
      • Terra
        • Posicionamento de serviço
      • Utilitários
        • Renomear estruturas
      • Ferrovia
        • Estrutura da altura livre
      • Levantamento topográfico
        • Gerenciamento de grupo de pontos
    • Tópicos avançados
      • Vinculação de objetos
      • Python e Civil 3D
    • Dynamo Player
    • Pacotes úteis
    • Recursos
  • Dynamo no Forma Beta
    • Configurar o Dynamo Player no Forma
    • Adicionar e compartilhar gráficos no Dynamo Player
    • Executar gráficos no Dynamo Player
    • O Dynamo calcula diferenças de serviço com o Dynamo Desktop
  • Codificação no Dynamo
    • Blocos de código e DesignScript
      • O que é um bloco de código
      • Sintaxe do DesignScript
      • Abreviação
      • Funções
    • Geometria com o DesignScript
      • Conceitos básicos da geometria DesignScript
      • Primitivas geométricas
      • Matemática de vetores
      • Curvas: interpoladas e pontos de controle
      • Transformações de conversão, de rotação e outras
      • Superfícies: interpoladas, pontos de controle, elevação, revolução
      • Parametrização geométrica
      • Interseção e aparar
      • Booleanos geométricos
      • Geradores de pontos do Python
    • Python
      • Nós do Python
      • Python e Revit
      • Configurar seu próprio modelo Python
    • Alterações de linguagem
  • Práticas recomendadas
    • Estratégias de gráfico
    • Estratégias de script
    • Referência dos scripts
    • Gerenciar o programa
    • Trabalhar de forma eficiente com grandes conjuntos de dados no Dynamo
  • Exemplos de fluxos de trabalho
    • Fluxos de trabalho de introdução
      • Vaso paramétrico
      • Pontos de atração
    • Índice conceitual
  • Manual do Desenvolvedor
    • Compilar o Dynamo da origem
      • Compilar o DynamoRevit da origem
      • Gerenciar e atualizar dependências no Dynamo
    • Desenvolvimento do Dynamo
      • Guia de Introdução
      • Estudo de caso sem toque – Nó de grade
      • Executar scripts Python em nós Sem toque (C#)
      • Aprofundar o conhecimento sobre o nó Sem toque
      • Personalização avançada de nós do Dynamo
      • Usar tipos COM (interoperabilidade) em pacotes do Dynamo
      • Estudo de caso do NodeModel – Interface do usuário personalizada
      • Atualizar os pacotes e as bibliotecas do Dynamo para Dynamo 2.x
      • Atualizar os pacotes e as bibliotecas do Dynamo para Dynamo 3.x
      • Extensões
      • Definir a organização de pacotes personalizados no Dynamo 2.0 e superior
      • Interface de linha de comando do Dynamo
      • Integração do Dynamo
      • Desenvolvimento do Dynamo para Revit
      • Publicar um pacote
      • Compilar um pacote do Visual Studio
      • Extensões como pacotes
    • Solicitações de extração
    • Expectativas de testes
    • Exemplos
  • Apêndice
    • Perguntas frequentes
    • Programação visual e Dynamo
    • Recursos
    • Notas de versão
    • Pacotes úteis
    • Arquivos de exemplo
    • Mapa de integração do hospedeiro
    • Fazer o download do PDF
    • Atalhos de teclado do Dynamo
Powered by GitBook
On this page
  • Trabalhar com listas
  • Consulta
  • Ação
  • Exercício
  • Operações de lista
  • List.Count
  • List.GetItemAtIndex
  • List.Reverse
  • List.ShiftIndices
  • List.FilterByBooleanMask
Edit on GitHub
Export as PDF
  1. Nós e conceitos essenciais
  2. Projetar com listas

Trabalhar com listas

PreviousO que é uma lista?NextListas de listas

Last updated 2 months ago

Trabalhar com listas

Agora que estabelecemos o que é uma lista, vamos falar sobre as operações que podemos realizar nela. Imagine uma lista como um baralho de cartas. O baralho é a lista e cada carta representa um item.

Consulta

Quais consultas podemos fazer na lista? Isso acessa as propriedades existentes.

  • Número de cartas no baralho? 52.

  • Número de naipes? 4.

  • Material? Papel.

  • Comprimento? 3,5 pol. ou 89 mm.

  • Largura? 2,5 pol. ou 64 mm.

Ação

Quais ações podemos executar na lista? Isso altera a lista com base em uma determinada operação.

  • Podemos embaralhar as cartas.

  • Podemos classificar as cartas por valor.

  • Podemos classificar as cartas por naipe.

  • Podemos dividir o baralho.

  • Podemos dividir o baralho, distribuindo cada uma das mãos da rodada.

  • É possível selecionar uma carta específica no baralho.

Todas as operações listadas acima têm nós análogos do Dynamo para trabalhar com listas de dados genéricos. As lições abaixo demonstrarão algumas das operações fundamentais que podemos executar nas listas.

Exercício

Operações de lista

Faça o download do arquivo de exemplo clicando no link abaixo.

É possível encontrar uma lista completa de arquivos de exemplo no Apêndice.

A imagem abaixo é o gráfico de base no qual estamos desenhando linhas entre dois círculos para representar operações básicas de lista. Vamos explorar como gerenciar dados em uma lista e demonstrar os resultados visuais através das ações da lista abaixo.

  1. Comece com um Bloco de código com um valor de 500;

  2. Conecte-se à entrada x de um nó Point.ByCoordinates.

  3. Conecte o nó da etapa anterior à entrada de origem de um nó Plane.ByOriginNormal.

  4. Usando um nó Circle.ByPlaneRadius, conecte o nó da etapa anterior à entrada do plano.

  5. Usando o Bloco de código, designe um valor de 50; para o raio. Esse é o primeiro círculo que criaremos.

  6. Com um nó Geometry.Translate, movimente o círculo 100 unidades para cima na direção Z.

  7. Com um nó de Bloco de código, defina um intervalo de dez números entre 0 e 1 com esta linha de código: 0..1..#10;

  8. Conecte o bloco de código da etapa anterior à entrada parâmetro de dois nós Curve.PointAtParameter. Conecte Circle.ByPlaneRadius à entrada de curva do nó superior e Geometry.Translate à entrada de curva do nó abaixo dele.

  9. Usando Line.ByStartPointEndPoint, conecte os dois nós Curve.PointAtParameter.

List.Count

Faça o download do arquivo de exemplo clicando no link abaixo.

É possível encontrar uma lista completa de arquivos de exemplo no Apêndice.

O nó List.Count é simples: conta o número de valores em uma lista e retorna esse número. Esse nó ganha mais nuances à medida que trabalhamos com listas de listas, mas vamos demonstrar isso nas seções a seguir.

  1. O nó **List.Count ****** retorna o número de linhas no nó Line.ByStartPointEndPoint. Neste caso, o valor é 10, que concorda com o número de pontos criados no nó original do Bloco de código.

List.GetItemAtIndex

Faça o download do arquivo de exemplo clicando no link abaixo.

É possível encontrar uma lista completa de arquivos de exemplo no Apêndice.

List.GetItemAtIndex é uma forma fundamental de consultar um item na lista.

  1. Primeiro, clique com o botão direito do mouse no nó Line.ByStartPointEndPoint para desativar sua visualização.

  2. Usando o nó List.GetItemAtIndex, estamos selecionando o índice “0” ou o primeiro item na lista de linhas.

Altere o valor do controle deslizante entre 0 e 9 para selecionar outro item usando List.GetItemAtIndex.

List.Reverse

Faça o download do arquivo de exemplo clicando no link abaixo.

É possível encontrar uma lista completa de arquivos de exemplo no Apêndice.

List.Reverse inverte a ordem de todos os itens em uma lista.

  1. Para visualizar corretamente a lista invertida de linhas, crie mais linhas alterando o Bloco de código para 0..1..#50;

  2. Duplique o nó Line.ByStartPointEndPoint, insira um nó List.Reverse entre Curve.PointAtParameter e o segundo Line.ByStartPointEndPoint

  3. Use os nós Watch3D para visualizar dois resultados diferentes. O primeiro mostra o resultado sem uma lista invertida. As linhas se conectam verticalmente aos pontos adjacentes. A lista invertida, no entanto, conectará todos os pontos à ordem oposta na outra lista.

List.ShiftIndices

Faça o download do arquivo de exemplo clicando no link abaixo.

É possível encontrar uma lista completa de arquivos de exemplo no Apêndice.

List.ShiftIndices é uma boa ferramenta para criar padrões de torções ou helicoidais, ou qualquer outra manipulação de dados semelhante. Esse nó altera os itens em uma lista por um determinado número de índices.

  1. No mesmo processo que a lista inversa, insira um List.ShiftIndices no Curve.PointAtParameter e Line.ByStartPointEndPoint.

  2. Usando um Bloco de código, foi designado o valor de “1” para mudar a lista em um índice.

  3. Observe que a alteração é sutil, mas todas as linhas no nó inferior Watch3D mudaram um índice ao se conectarem ao outro conjunto de pontos.

Se o Bloco de código for alterado para um valor maior, “30”, por exemplo, perceberemos uma diferença significativa nas linhas diagonais. A mudança está funcionando como a íris da câmera nesse caso, criando uma torção na forma cilíndrica original.

List.FilterByBooleanMask

Faça o download do arquivo de exemplo clicando no link abaixo.

É possível encontrar uma lista completa de arquivos de exemplo no Apêndice.

List.FilterByBooleanMask removerá determinados itens com base em uma lista de booleanos ou valores “true” ou “false”.

Para criar uma lista de valores “true” ou “false”, é necessário um pouco mais de trabalho...

  1. Usando um Bloco de código, defina uma expressão com a sintaxe: 0..List.Count(list);. Conecte o nó Curve.PointAtParameter à entrada lista. Vamos abordar mais essa configuração no capítulo do bloco de código, mas a linha de código nesse caso fornece uma lista que representa cada índice do nó Curve.PointAtParameter.

  2. Usando um nó %** (módulo)**, conecte a saída do bloco de código à entrada x e um valor de 4 à entrada y. Isso vai gerar o resto ao dividir a lista de índices por 4. O módulo é um nó muito útil para a criação do padrão. Todos os valores serão lidos como os possíveis restos de 4: 0, 1, 2, 3.

  3. No nó %** (módulo)**, sabemos que um valor de 0 significa que o índice é divisível por 4 (0, 4, 8 etc...). Usando um nó ==, podemos testar a divisibilidade com um valor de “0”.

  4. O nó Watch revela apenas isso: temos um padrão true/false com a indicação: true,false,false,false....

  5. Usando esse padrão true/false, conecte-se à entrada de máscara dos dois nós List.FilterByBooleanMask.

  6. Conecte o nó Curve.PointAtParameter a cada entrada da lista do List.FilterByBooleanMask.

  7. A saída de Filter.ByBooleanMask é “in” e “out”. “In” representa valores que tinham um valor de máscara “true”, enquanto “out” representa valores que tinham um valor “false”. Conectando as saídas “in” às entradas startPoint e endPoint de um nó Line.ByStartPointEndPoint, criamos uma lista de linhas filtrada.

  8. O nó Watch3D revela que temos menos linhas do que pontos. Selecionamos somente 25% dos nós filtrando somente os valores true.

Foto de

Christian Gidlöf
7KB
List-Operations.dyn
8KB
List-Count.dyn
8KB
List-GetItemAtIndex.dyn
8KB
List-Reverse.dyn
8KB
List-ShiftIndices.dyn
11KB
List-FilterByBooleanMask.dyn
cartas
Contagem
Exercício
Exercício
Exercício
Exercício