“Esse wiki serve para aprender sobre o desenvolvimento usando a API do Dynamo, suportando bibliotecas e ferramentas.”
https://github.com/DynamoDS/Dynamo/wiki
Esse blog é a coleção mais atualizada de artigos da equipe do Dynamo, discutindo novos recursos, fluxos de trabalho e tudo o que o Dynamo tem.
As linguagens de programação são criadas para expressar ideias, envolvendo lógica e cálculo. Além desses objetivos, a linguagem textual do Dynamo (anteriormente, DesignScript) foi criada para expressar as ideias do projeto. Em geral, reconhece-se que o projeto de cálculo é exploratório e o Dynamo tenta suportar isso: esperamos que você encontre a linguagem flexível e rápido o suficiente para levar um projeto do conceito até as iterações de projeto e a sua forma final. Este manual está estruturado para fornecer a um usuário sem conhecimento de geometria de programação ou arquitetura arquitetônica uma exposição completa a uma variedade de tópicos nessas duas disciplinas que se cruzam.
http://dynamobim.org/wp-content/links/DesignScriptGuide.pdf
O Dynamo Primer é um projeto de código aberto, iniciado por Matt Jezyk e a equipe de desenvolvimento do Dynamo na Autodesk. A primeira versão do manual foi desenvolvida pela Mode Lab. Para contribuir, verifique o repositório, adicione seu conteúdo e envie uma solicitação.
https://github.com/DynamoDS/DynamoPrimer
Essa página descreve o processo de desenvolvimento de um nó do Dynamo personalizado no C# usando a interface “Zero Touch”. Na maioria dos casos, é possível importar as classes e os métodos estáticos em C# sem modificações. Se sua biblioteca só precisar chamar funções e não construir novos objetos, isso poderá ser facilmente obtido com métodos estáticos. Quando o Dynamo carrega o DLL, ele removerá o espaço de nome das classes e exporá todos os métodos estáticos como nós.
https://github.com/DynamoDS/Dynamo/wiki/Zero-Touch-Plugin-Development
O Python é uma linguagem de programação interativa e orientada a objetos. Ele incorpora módulos, exceções, tipo de dados dinâmicos, tipos de dados dinâmicos de alto nível e classes. O Python combina um poder extraordinário com sintaxe muito clara. Ele tem interfaces para muitas chamadas de sistema e bibliotecas, bem como para vários sistemas de janelas, e é extensível em C ou C++. Também é possível usá-lo como linguagem de extensão para aplicativos que precisam de uma interface programável. Por fim, o Python é portátil: ele é executado em muitas variantes do Unix, no Mac e no Windows 2000 e posterior. O Guia do Iniciante para Python vincula outros tutoriais de introdução e recursos para aprender Python.
https://www.python.org/about/gettingstarted
O AForge.NET é uma estrutura em C# de código aberto projetada para desenvolvedores e pesquisadores nos campos da Pesquisa Visual Computacional e Inteligência Artificial – processamento de imagens, redes neurais, algoritmos genéticos, lógica difusa, aprendizado de máquina, robótica etc.
http://www.aforgenet.com/framework/
MathWorld é um recurso de matemática on-line, desenvolvido por Eric W. Weisstein com ajuda de milhares de colaboradores. Desde que o seu conteúdo apareceu pela primeira vez em 1995, o MathWorld tornou-se num centro de informações matemáticas nas comunidades matemáticas e educacionais. Suas informações são amplamente referenciadas em publicações científicas e livros que abrangem todos os níveis educacionais.
“Essas postagens são principalmente sobre a plataforma Revit, com recomendações sobre como aproveitá-la.”
“Esse bloco de notas tenta corrigir algumas 'deficiências de recursos' na aprendizagem e na aplicação da API do Revit no contexto de um fluxo de trabalho de projeto”
http://wiki.theprovingground.org/revit-api
“O RevitPythonShell adiciona um interpretador IronPython ao Autodesk Revit e Vasari.” Esse projeto é anterior ao Dynamo e é uma ótima referência para o desenvolvimento do Python. Projeto RPS:
https://github.com/architecture-building-systems/revitpythonshell
Blog do desenvolvedor:
http://darenatwork.blogspot.com/
Um catálogo robusto de fluxos de trabalho da API do Revit de um dos principais especialistas em BIM.
A criação de projetos frequentemente envolve o estabelecimento de 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 dessa maneira, mas formalizando nossos algoritmos.
Apesar de oferecer algumas ótimas oportunidades, 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 o resultado de um origami em formato de pássaro (saída).
Então, onde está o algoritmo? Trata-se do conjunto abstrato de etapas, que podemos representar de duas maneiras: textualmente ou graficamente.
Instruções textuais:
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.
Vire o papel para o lado branco. Dobre bem o papel ao meio, abra e depois dobre novamente na outra direção.
Utilizando as dobras criadas, traga os três cantos superiores do modelo para baixo até o canto inferior. Nivele o modelo.
Dobre as abas triangulares superiores para o centro e desdobre.
Dobre bem a parte superior do modelo para baixo e desdobre.
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.
Vire o modelo e repita os passos 4 a 6 no outro lado.
Dobre as abas superiores para o centro.
Repita o procedimento do outro lado.
Dobre as duas "pernas" do modelo para cima, vincando bem e, em seguida, desdobre.
Faça uma dobra reversa interior nas "pernas" ao longo dos vincos que acabou de fazer.
Faça uma dobra reversa interior em um lado para fazer a cabeça e, em seguida, dobre as asas para baixo.
Agora você tem um pássaro.
Instruções gráficas:
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 o uso abreviado 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. Esse é o poder da 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 clicando no link abaixo.
É possível encontrar uma lista completa de arquivos de exemplo 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 for gráficos, a Programação visual será 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:
Os resultados de 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.
Nesta seção, você pode encontrar recursos adicionais para melhorar ainda mais as suas habilidades no Dynamo. Também adicionamos um índice de nós importantes, um conjunto de pacotes úteis e um repositório dos arquivos de exemplo neste manual. Sinta-se à vontade para adicionar informações a esta seção... Lembre-se: o Dynamo Primer tem código aberto.
Veja a seguir uma lista de alguns dos pacotes mais populares da comunidade do Dynamo. Desenvolvedores, adicionem itens à lista! Lembre-se: o é de código aberto.
O archi-lab é uma coleção de mais de 50 pacotes personalizados que ampliam muito a capacidade do Dynamo de interagir com o Revit. Os nós contidos no pacote do archi-lab variam de operações básicas de lista a nós avançados de estrutura de visualização de análise para o Revit. O archi-lab está disponível no gerenciador de pacotes |
O BimorphNodes é uma coleção versátil de poderosos nós de utilitários. Os destaques do pacote incluem a detecção de interferências e intersecção de geometria ultraeficientes, nós de conversão de curva ImportInstance (CAD) e coletores de elementos vinculados que resolvem as limitações no Revit API. Para saber mais sobre a faixa completa de nós disponíveis, visite o dicionário BimorphNodes. O BimorphNodes está disponível no gerenciador de pacotes. |
O Bumblebee é um plug-in de interoperabilidade do Excel e Dynamo que aprimora consideravelmente a capacidade do Dynamo de ler e gravar arquivos do Excel. |
O Clockwork é uma coleção de nós personalizados para o ambiente de programação visual do Dynamo. Contém muitos nós relacionados ao Revit, mas também diversos nós para outras finalidades, como gerenciamento de lista, operações matemáticas, operações de sequência de caracteres, conversões de unidade, operações geométricas (principalmente caixas delimitadoras, malhas, planos, pontos, superfícies, UVs e vetores) e pan. |
O DataShapes é um pacote que visa estender a funcionalidade do usuário de scripts do Dynamo. Seu foco principal é adicionar mais funcionalidades ao reprodutor do Dynamo. Para obter mais informações, visite https://data-shapes.net/. Deseja criar incríveis fluxos de trabalho do reprodutor do Dynamo? Use esse pacote. |
O DynamoSAP é uma interface paramétrica para SAP2000, criada com base no Dynamo. O projeto permite que projetistas e engenheiros criem e analisem de forma generativa os sistemas estruturais no SAP, usando o Dynamo para controlar o modelo SAP. O projeto prescreve alguns fluxos de trabalho comuns que são descritos nos arquivos de amostra incluídos e fornece uma ampla gama de oportunidades para a automação de tarefas típicas no SAP. |
Essa biblioteca estende a funcionalidade do Dynamo/Revit, permitindo que os usuários desdobrem a geometria de superfície e da superfície de polígono. A biblioteca permite que os usuários convertam primeiro as superfícies em uma topologia plana de triangulação e, em seguida, desdobre-as usando as ferramentas de protogeometria do Dynamo. Esse pacote também inclui alguns nós experimentais, bem como alguns arquivos de amostra básicos. |
Importe a arte vetorial do Illustrator ou da Web usando o .svg. Isso permite importar desenhos criados manualmente para o Dynamo para operações paramétricas. |
O Energy Analysis for Dynamo permite a modelagem de energia paramétrica e os fluxos de trabalho de análise de energia de toda a construção no Dynamo 0.8. O Energy Analysis for Dynamo permite que o usuário configure o modelo de energia do Autodesk Revit, envie para o Green Building Studio para a análise de energia DOE2 e explore os resultados gerados na análise. O pacote está sendo desenvolvido pelo estúdio CORE do Thornton Tomasetti. |
O Firefly é uma coleção de nós que permite que o Dynamo se comunique com dispositivos de entrada/saída, como o microcontrolador Arduino. Como o fluxo de dados acontece “ao vivo”, o Firefly abre muitas oportunidades de prototipagem interativa entre os mundos digital e físico através de webcams, telefones celulares, controladores de jogos, sensores e muito mais. |
O Genius Loci é uma compilação de nós do Dynamo. Ele consiste em nós úteis que beneficiam os usuários do Revit. Instale o pacote para explorar alguns dos recursos, como interagir facilmente com arquivos vinculados e documentos do Revit. |
O Mantis Shrimp é um projeto de interoperabilidade que permite importar facilmente a geometria Grasshopper e/ou Rhino para o Dynamo. |
O Kit de ferramentas de malha oferece muitas ferramentas úteis para trabalhar com geometria de malha. A funcionalidade deste pacote inclui a capacidade de importar malhas de formatos de arquivo externo, gerar malhas a partir de objetos de geometria do Dynamo preexistentes e criar manualmente malhas através de vértices e informações de conectividade. Além disso, esse kit de ferramentas inclui ferramentas para modificar e reparar a geometria da malha. |
🧐 MONOCLE |
O Monocle é uma Extensão de vista para o Dynamo 2.0.x. O Monocle contém um conjunto de ferramentas úteis para identificação de pacotes, limpeza de gráficos e muito mais. O objetivo do Monocle é adicionar funcionalidade à interface do usuário do Dynamo de forma contínua, o que deixa você pensando: “isso está integrado ao Dynamo?”. O Monocle está disponível no gerenciador de pacotes. |
O Optimo fornece aos usuários do Dynamo a capacidade de otimizar problemas de projeto autodefinidos usando vários algoritmos evolucionários. Os usuários podem definir o objetivo do problema ou o conjunto de objetivos, bem como funções de adequação específicas. |
A biblioteca de nós do Rhynamo fornece aos usuários a capacidade de ler e gravar arquivos Rhino 3DM no Dynamo. O Rhynamo converte a geometria Rhino para a geometria do Dynamo utilizável usando a biblioteca OpenNURBS do McNeel, permitindo novos fluxos de trabalho que podem trocar a geometria e os dados de forma fluida entre o Rhino e o Revit. Esse pacote também contém alguns nós experimentais que permitem o acesso “ao vivo” para a linha de comando do Rhino. |
O Rhythm é um conjunto de nós úteis que ajudam o projeto do Revit a manter um bom ritmo com o Dynamo. Basicamente, ele faz algumas coisas muito boas. O Rhythm é de código aberto e principalmente criado em C#, e adiciona nós do Revit, nós principais e uma extensão de vista ao Dynamo. O Rhythm está disponível no gerenciador de pacotes. |
O foco principal do Spring Nodes é melhorar a interação do Dynamo com o Revit. O objetivo mais amplo é explorar todos os meios que possam ajudar a acelerar fluxos de trabalho focados em BIM. Muitos dos nós usam IronPython ou DesignScript e podem ser um bom ponto de partida para aprender a sintaxe específica e pontos mais detalhados de ambos. O Spring Nodes está disponível no gerenciador de pacotes. |
ARCHI-LAB
BIMORPH NODES
BUMBLEBEE FOR DYNAMO
CLOCKWORK FOR DYNAMO
DATA|SHAPES
DYNAMO SAP
DYNAMO UNFOLD
DYNASTRATOR
ENERGY ANALYSIS FOR DYNAMO
FIREFLY FOR DYNAMO
GENIUS LOCI
MANTIS SHRIMP
KIT DE FERRAMENTAS DE MALHA
OPTIMO
RHYNAMO
RHYTHM
Spring Nodes