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
  • Exercício: Nós personalizados para mapeamento de UV
  • Parte I: Começar com um gráfico
  • Parte II: Do gráfico ao nó personalizado
Edit on GitHub
Export as PDF
  1. Nós e pacotes personalizados
  2. Nós personalizados

Criar um nó personalizado

PreviousIntrodução ao nó personalizadoNextPublicar na biblioteca

Last updated 2 years ago

O Dynamo oferece vários métodos diferentes para criar nós personalizados. É possível criar nós personalizados do zero, com base em um gráfico existente ou explicitamente em C#. Nesta seção, vamos abordar a criação de um nó personalizado na IU do Dynamo com base em um gráfico existente. Este método é ideal para limpar o espaço de trabalho, bem como para empacotar uma sequência de nós para reutilização em outro lugar.

Exercício: Nós personalizados para mapeamento de UV

Parte I: Começar com um gráfico

Na imagem abaixo, é mapeado um ponto de uma superfície para outra usando as coordenadas UV. Usaremos esse conceito para criar uma superfície de painel que faz referência a curvas no plano XY. Criaremos painéis quadrados aqui, mas usando a mesma lógica, podemos criar uma ampla variedade de painéis com o mapeamento UV. Esta é uma ótima oportunidade para o desenvolvimento de nós personalizados, pois poderemos repetir um processo semelhante mais facilmente neste gráfico ou em outros fluxos de trabalho do Dynamo.

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.

  1. Bloco de código: use essa linha para criar um intervalo de 10 números entre -45 e 45 45..45..#10;

  2. Point.ByCoordinates: conecte a saída do Bloco de código às entradas “x” e “y” e defina a amarra como referência cruzada. Agora, você deve ter uma grade de pontos.

  3. Plane.ByOriginNormal: conecte a saída “Ponto” à entrada “origem” para criar um plano em cada um dos pontos. Será usado o vetor normal padrão de (0,0,1).

  4. Rectangle.ByWidthLength: conecte os planos da etapa anterior à entrada “plano” e use um Bloco de código com um valor de 10 para especificar a largura e o comprimento.

Agora, você deve ver uma grade de retângulos. Vamos mapear esses retângulos para uma superfície-alvo usando as coordenadas UV.

  1. Polygon.Points: conecte a saída de Rectangle.ByWidthLength da etapa anterior à entrada “polígono” para extrair os pontos de canto de cada retângulo. Esses são os pontos que serão mapeados para a superfície-alvo.

  2. Rectangle.ByWidthLength: use um Bloco de código com um valor de 100 para especificar a largura e o comprimento de um retângulo. Esse será o limite da nossa superfície de base.

  3. Surface.ByPatch: conecte o Rectangle.ByWidthLength da etapa anterior à entrada “closedCurve” para criar uma superfície de base.

  4. Surface.UVParameterAtPoint: conecte a saída “Ponto” do nó Polygon.Points e a saída “Superfície” do nó Surface.ByPatch para retornar o parâmetro UV em cada ponto.

Agora que temos uma superfície de base e um conjunto de coordenadas UV, é possível importar uma superfície-alvo e mapear os pontos entre as superfícies.

  1. File Path: selecione o caminho do arquivo da superfície que você deseja importar. O tipo de arquivo deve ser .SAT. Clique no botão “Procurar...” e navegue até o arquivo UVmapping_srf.sat do arquivo .zip obtido por download acima.

  2. Geometry.ImportFromSAT: conecte o caminho do arquivo para importar a superfície. Você deve ver a superfície importada na visualização da geometria.

  3. UV: conecte a saída do parâmetro UV a um nó UV.U e a um nó UV.V.

  4. Surface.PointAtParameter: conecte a superfície importada, bem como as coordenadas u e v. Agora, você deve visualizar uma grade de pontos 3D na superfície-alvo.

A última etapa é usar os pontos 3D para construir as correções de superfícies retangulares.

  1. PolyCurve.ByPoints: conecte os pontos na superfície para construir uma policurva através dos pontos.

  2. Booleano: adicione um valor booleano ao espaço de trabalho, conecte-o à entrada “connectLastToFirst” e alterne para True para fechar as policurvas. Agora, você deve ver os retângulos mapeados para a superfície.

  3. Surface.ByPatch: conecte as policurvas à entrada “closedCurve” para construir as correções de superfícies.

Parte II: Do gráfico ao nó personalizado

Agora, vamos selecionar os nós que desejamos aninhar em um nó personalizado, pensando no que desejamos que sejam as entradas e saídas do nosso nó. Desejamos que nosso nó personalizado seja o mais flexível possível, para que possa mapear qualquer polígono, não apenas retângulos.

Selecione os seguintes nós (começando com Polygon.Points), clique com o botão direito do mouse no espaço de trabalho e selecione “Criar nó personalizado”.

Na caixa de diálogo Propriedades do nó personalizado, atribua um nome, uma descrição e uma categoria ao nó personalizado.

  1. Nome: MapPolygonsToSurface

  2. Descrição: Mapear polígonos de uma superfície base para a superfície alvo

  3. Categoria de complementos: Geometry.Curve

O nó personalizado limpou consideravelmente o espaço de trabalho. Observe que as entradas e saídas foram nomeadas com base nos nós originais. Vamos editar o nó personalizado para tornar os nomes mais descritivos.

Clique duas vezes no nó personalizado para editá-lo. Isso abrirá um espaço de trabalho com um fundo amarelo que representa o interior do nó.

  1. Entradas: altere os nomes das entradas para baseSurface e targetSurface.

  2. Saídas: adicione mais uma saída para os polígonos mapeados.

Salve o nó personalizado e volte para o espaço de trabalho inicial. Observe que o nó MapPolygonsToSurface reflete as alterações que acabamos de fazer.

Também é possível aumentar a robustez do nó personalizado adicionando Comentários personalizados. Os comentários podem ajudar a indicar os tipos de entrada e saída ou explicar a funcionalidade do nó. Os comentários aparecerão quando o usuário passar o cursor sobre uma entrada ou saída de um nó personalizado.

Clique duas vezes no nó personalizado para editá-lo. Isso reabrirá o espaço de trabalho de fundo amarelo.

  1. Comece editando o Bloco de código de entrada. Para iniciar um comentário, digite “//” seguido do texto do comentário. Digite qualquer coisa que possa ajudar a esclarecer o nó. Aqui, descreveremos a targetSurface.

  2. Também definiremos o valor padrão da inputSurface definindo o tipo de entrada igual a um valor. Aqui, definiremos o valor padrão como o conjunto Surface.ByPatch original.

Também é possível aplicar os comentários às saídas.

Edite o texto no bloco de código de saída. Digite “//” seguido do texto do comentário. Aqui, esclareceremos as saídas Polígonos e surfacePatches adicionando uma descrição mais detalhada.

  1. Passe o cursor sobre as entradas dos nós personalizados para ver os comentários.

  2. Com o valor padrão definido em inputSurface, também é possível executar a definição sem uma entrada de superfície.

Vamos começar criando um gráfico que desejamos aninhar em um nó personalizado. Neste exemplo, vamos criar um gráfico que mapeia os polígonos de uma superfície base para uma superfície alvo usando as coordenadas UV. Esse processo de mapeamento UV é algo que usamos com frequência, o que faz dele um bom candidato para um nó personalizado. Para obter mais informações sobre as superfícies e o espaço UV, consulte a página . O gráfico completo é UVmapping_Custom-Node.dyn do arquivo .zip obtido por download acima.

Superfícies
5KB
UV-CustomNode.zip
archive