Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
O Dynamo possui um recurso avançado para permitir editar os parâmetros em um nível paramétrico. Por exemplo, um algoritmo gerador ou os resultados de uma simulação podem ser usados para controlar os parâmetros de uma matriz de elementos. Desta forma, um conjunto de instâncias da mesma família pode ter propriedades personalizadas no projeto do Revit.
Os parâmetros de instância definem a abertura dos painéis na superfície de telhado, variando de um coeficiente de abertura de 0,1 a 0,4.
Os parâmetros com base no tipo são aplicados a cada elemento na superfície porque são do mesmo tipo de família. O material de cada painel, por exemplo, pode ser controlado por um parâmetro com base no tipo.
Se você já tiver configurado uma família do Revit, lembre-se de que é preciso atribuir um tipo de parâmetro (sequência de caracteres, número, cota, etc.). Certifique-se de usar o tipo de dados correto ao atribuir parâmetros do Dynamo.
Também é possível usar o Dynamo em combinação com restrições paramétricas, definidas nas propriedades de uma família do Revit.
Como uma revisão rápida dos parâmetros no Revit, lembramos que existem parâmetros de tipo e parâmetros de instância. Ambos podem ser editados no Dynamo, mas trabalharemos com parâmetros de instância no exercício abaixo.
Depois de descobrir a aplicação abrangente de edição de parâmetros, você poderá editar uma grande quantidade de elementos no Revit com o Dynamo. Essa operação pode exigir muitos cálculos computacionais , o que significa que pode ser lenta. Se estiver editando um grande número de elementos, poderá ser conveniente usar a funcionalidade do nó “congelar” para pausar a execução das operações do Revit enquanto você desenvolve o gráfico. Para obter mais informações sobre o congelamento de nós, consulte a seção “Congelar” no capítulo de sólidos.
A partir da versão 0.8, o Dynamo tem como base a ausência de unidades. Isso permite que o Dynamo continue sendo um ambiente de programação visual abstrato. Os nós do Dynamo que interagem com as cotas do Revit farão referência às unidades do projeto do Revit. Por exemplo, se você estiver definindo um parâmetro de comprimento no Revit no Dynamo, o número no Dynamo para o valor corresponderá às unidades padrão no projeto do Revit. O exercício abaixo funciona em metros.
Para uma conversão rápida das unidades, use o nó “Converter entre unidades”. Essa é uma ferramenta útil para converter as unidades de Comprimento, Área e Volume em tempo real.
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 exercício abaixo funciona em metros.
Esse exercício se concentra na edição de elementos do Revit sem executar a operação geométrica no Dynamo. Não estamos importando a geometria do Dynamo aqui, apenas editando os parâmetros em um projeto do Revit. Este exercício é básico e para os usuários mais avançados do Revit, observe que estes são parâmetros de instância de uma massa, mas a mesma lógica pode ser aplicada a uma matriz de elementos para personalizar em grande escala. Tudo isso é feito com o nó “Element.SetParameterByName”.
Comece com o arquivo de exemplo do Revit para esta seção. Removemos os elementos estruturais e as treliças adaptativas da seção anterior. Neste exercício, vamos nos concentrar em uma montagem paramétrica no Revit e manipulá-la no Dynamo.
Selecionando a construção em massa no Revit, vemos uma matriz de parâmetros de instância no painel Propriedades.
No Dynamo, podemos recuperar os parâmetros selecionando o elemento de destino.
Selecione a massa da construção com o nó “Selecionar o elemento do modelo”.
É possível consultar todos os parâmetros dessa massa com o nó “Element.Parameters”. Isso inclui os parâmetros de tipo e instância.
Faça referência ao nó Element. Parameters para localizar os parâmetros alvo. Também é possível visualizar o painel Propriedades na etapa anterior para escolher quais nomes de parâmetros desejamos editar. Neste caso, estamos procurando os parâmetros que afetam os grandes movimentos geométricos na massa da construção.
Faremos alterações no elemento do Revit usando o nó Element.SetParameterByName
Use o B_loco de código para_ definir uma lista de parâmetros, com aspas em torno de cada item para indicar uma sequência de caracteres. Também podemos usar o nó List.Create com uma série de nós de "sequência de caracteres" conectados a várias entradas, mas o Bloco de código é mais rápido e fácil. Assegure-se de que a sequência de caracteres coincida com o nome exato no Revit, específico em relação ao uso de maiúsculas e minúsculas:
{"BldgWidth","BldgLength","BldgHeight", "AtriumOffset", "InsideOffset","LiftUp"};
Também queremos especificar valores para cada parâmetro. Adicione seis “controles deslizantes de números inteiros” na tela e renomeie-os de acordo com o parâmetro correspondente na lista. Além disso, defina os valores de cada controle deslizante para a imagem acima. Em ordem de cima para baixo: 62,92,25,22,8,12
Defina outro bloco de código com uma lista do mesmo tamanho que os nomes de parâmetro. Neste caso, nomeamos variáveis (sem aspas) que criam entradas para o bloco de código. Conecte os controles deslizantes a cada entrada respectiva:
{bw,bl,bh,ao,io,lu};
Conecte o Bloco de código à entrada de valor “Element.SetParameterByName”*. Com a execução marcada automaticamente, veremos os resultados automaticamente.
*Esta demonstração funciona com parâmetros de instância, mas não com parâmetros de tipo.
Assim como no Revit, muitos desses parâmetros dependem uns dos outros. É claro que há combinações nas quais a geometria pode ser interrompida. Podemos solucionar esse problema com fórmulas definidas nas propriedades de parâmetro ou definir uma lógica semelhante às operações matemáticas no Dynamo (esse será um desafio adicional se você desejar expandir o exercício).
Essa combinação oferece um novo projeto moderno para a massa da construção: 100, 92, 100, 25, 13, 51
Em seguida, vamos ver como podemos editar a fachada usando um processo semelhante.
Copie o gráfico e foque na vidraça da fachada que abrigará o sistema de treliça. Isolamos quatro parâmetros neste caso:
{"DblSkin_SouthOffset","DblSkin_MidOffset","DblSkin_NorthOffset","Facade Bend Location"};
Adicionalmente, criamos controles deslizantes de número e os renomeamos com os parâmetros apropriados. Os três primeiros controles deslizantes de cima para baixo devem ser remapeados para um domínio de [0,10], enquanto o controle deslizante final, “Localização da vergadura da fachada”, deve ser remapeado para um domínio de [0,1]. Esses valores, de cima para baixo, devem começar com estes valores (embora sejam arbitrários): 2,68; 2,64; 2,29; 0,5
Defina um novo bloco de código e conecte os controles deslizantes:
{so,mo,no,fbl};
Se os controles deslizantes forem alterados nesta parte do gráfico, poderemos tornar a vidraça da fachada muito mais substancial: 9,98; 10,0; 9,71; 0,31
Embora o Dynamo seja um ambiente flexível, projetado para criar uma ampla gama de programas, ele foi originalmente criado para uso com o Revit. Um programa visual cria opções robustas para o BIM (Building Information Model – Modelo de informações de construção). O Dynamo oferece um conjunto completo de nós especificamente projetados para o Revit, bem como bibliotecas de terceiros de uma comunidade AEC em evolução. Este capítulo foca nos conceitos básicos do uso do Dynamo no Revit.
O Dynamo para Revit estende a modelagem das informações de construção com o ambiente de dados e de lógica de um editor de algoritmo gráfico. Sua flexibilidade, juntamente com um banco de dados robusto do Revit, oferece uma nova perspectiva para o BIM.
Este capítulo é voltado para os fluxos de trabalho do Dynamo para o BIM. As seções são baseadas principalmente em exercícios, uma vez que saltar direto para um projeto é a melhor maneira de se familiarizar com um editor de algoritmos gráficos para BIM. Mas primeiro, vamos falar sobre o começo do programa.
À medida que o Revit e o Dynamo continuam a evoluir, você poderá notar que a versão do Revit com a qual você está trabalhando não é compatível com a versão do Dynamo para Revit instalada em seu computador. Abaixo estão descritas quais versões do Dynamo para Revit são compatíveis com o Revit.
2013
2014
2015
2016
2017
2018
2019
2020 e versões posteriores
2.1.0 – O Revit 2020 e posterior agora inclui o Dynamo e recebe atualizações como faz o Revit.
N/D
Com uma equipe dedicada de desenvolvedores e uma comunidade entusiasmada, o projeto percorreu um longo caminho desde seu humilde começo.
O Dynamo foi originalmente criado para simplificar os fluxos de trabalho AEC no Revit. Embora o Revit crie um banco de dados robusto para cada projeto, pode ser difícil para um usuário intermediário acessar essas informações fora das restrições da interface. O Revit hospeda uma API (Interface de Programação de Aplicativo) abrangente, permitindo que desenvolvedores de terceiros criem ferramentas personalizadas. Os programadores têm usado essa API há anos, mas o script baseado em texto não está acessível a todos. O Dynamo busca democratizar os dados do Revit através de um editor de algoritmo gráfico acessível.
Usando os principais nós do Dynamo juntamente com os nós personalizados do Revit, um usuário pode expandir substancialmente os fluxos de trabalho paramétricos para interoperabilidade, documentação, análise e geração. Com o Dynamo, os fluxos de trabalho tediosos podem ser automatizados enquanto as explorações de projeto podem ser melhoradas.
Em um editor de família ou um projeto do Revit, navegue para Complementos e clique em Dynamo.*
*O Dynamo será executado somente no arquivo no qual foi aberto.
Quando o Dynamo é aberto no Revit, há uma nova categoria chamada “Revit”. Essa é uma adição abrangente à interface de usuário, oferecendo nós especificamente voltados para os fluxos de trabalho do Revit.*
*Usando a família de nós específica do Revit, o gráfico do Dynamo só funcionará quando for aberto no Dynamo para Revit. Se um gráfico do Dynamo para Revit for aberto no Dynamo Sandbox, por exemplo, os nós do Revit estarão ausentes.
Como o Revit é uma plataforma que fornece um gerenciamento robusto de projetos, as operações paramétricas no Dynamo podem ser complexas e seu cálculo pode ser lento. Se o Dynamo estiver demorando muito para calcular os nós, será recomendável usar a funcionalidade do nó “congelar” para pausar a execução das operações do Revit enquanto desenvolve o gráfico.
Você pode obter mais informações sobre o congelamento de nós na seção Nós e fios.
Desde que o Dynamo foi originalmente criado para o AEC, sua grande e crescente comunidade é um grande recurso para aprender e entrar em contato com especialistas no setor. A comunidade do Dynamo é formada por arquitetos, engenheiros, programadores e designers, apaixonados por compartilhar e criar.
O Dynamo é um projeto de código aberto que está em constante evolução e muitos desenvolvimentos são relacionados ao Revit. Se você não estiver familiarizado com essa área, entre no fórum de discussão e comece a fazer perguntas. Se você for um programador e quiser participar do desenvolvimento do Dynamo, confira o repositório do Github. Além disso, o gerenciador de pacotes do Dynamo é um ótimo recurso para as bibliotecas de terceiros. Muitos desses pacotes são feitos com o AEC em mente. Vamos também analisar os pacotes de terceiros para obter uma panorâmica neste capítulo.
O Dynamo também mantém um blog ativo. Leia os artigos recentes para saber mais sobre os últimos acontecimentos.
/
/
/
Apesar de anteriormente termos examinado a edição de uma massa de construção básica, desejamos aprofundar o vínculo do Dynamo/Revit editando um grande número de elementos de uma só vez. Personalizar em uma grande escala se torna mais complexo, já que as estruturas de dados requerem operações de lista mais avançadas. No entanto, os princípios subjacentes por trás de sua execução são fundamentalmente os mesmos. Vamos estudar algumas oportunidades para análise com base em um conjunto de componentes adaptativos.
Suponha que criamos uma faixa de componentes adaptativos e que desejamos editar os parâmetros com base nas localizações dos pontos. Os pontos, por exemplo, podem determinar um parâmetro de espessura que está relacionado com a área do elemento. Ou, eles poderiam determinar um parâmetro de opacidade relacionado à exposição solar durante o ano. O Dynamo permite a conexão entre análise e parâmetros por meio de algumas etapas simples. Vamos explorar uma versão básica no exercício abaixo.
Consulte os pontos adaptativos de um componente adaptativo selecionado usando o nó AdaptiveComponent.Locations. Isso nos permite trabalhar com uma versão abstrata de um elemento do Revit para análise.
Ao extrair a localização dos pontos dos componentes adaptativos, podemos executar uma faixa de análise para aquele elemento. Um componente adaptativo de quatro pontos permitirá estudar o desvio do plano para um determinado painel, por exemplo.
Use o remapeamento para mapear um conjunto de dados para um intervalo de parâmetros. Essa é uma ferramenta fundamental usada em um modelo paramétrico e vamos demonstrá-la no exercício abaixo.
Usando o Dynamo, é possível usar as localizações dos pontos dos componentes adaptativos para criar um plano de melhor ajuste para cada elemento. Também podemos consultar a posição do sol no arquivo do Revit e estudar a orientação relativa do plano em relação ao sol em comparação com outros componentes adaptativos. Vamos definir isso no exercício abaixo, criando um ambiente algorítmico.
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.
Este exercício permite expandir as técnicas demonstradas na seção anterior. Neste caso, estamos definindo uma superfície paramétrica com base em elementos do Revit, instanciando componentes adaptativos de quatro pontos e, em seguida, editando-os com base na orientação em relação ao sol.
Comece selecionando duas arestas com o nó “Selecionar aresta”. As duas arestas são os vãos longos do átrio.
Combine as duas arestas em uma lista com o nó List.Create.
Crie uma superfície entre as duas arestas com Surface.ByLoft.
Usando o bloco de código, defina um intervalo de 0 a 1 com 10 valores uniformemente espaçados:
0..1..#10;
Conecte o bloco de código às entradas *u *e v de um nó Surface.PointAtParameter e conecte o nó Surface.ByLoft à entrada superfície. Clique com o botão direito do mouse no nó e altere a amarra para Produto transversal. Isso fornecerá uma grade de pontos na superfície.
Essa grade de pontos serve como os pontos de controle para uma superfície definida parametricamente. Queremos extrair as posições “u” e “v” de cada um desses pontos para que possamos conectá-los em uma fórmula paramétrica e manter a mesma estrutura de dados. É possível fazer isso consultando as localizações dos parâmetros dos pontos que acabamos de criar.
Adicione um nó Surface.ParameterAtPoint à tela e conecte as entradas como mostrado acima.
Consulte os valores u desses parâmetros com o nó UV.U.
Consulte os valores v desses parâmetros com o nó UV.V.
Os resultados mostram os valores u e v correspondentes a cada ponto da superfície. Agora, temos um intervalo de 0 a 1 para cada valor, na estrutura de dados apropriada; portanto, estamos prontos para aplicar um algoritmo paramétrico.
Adicione um bloco de código à tela e insira o código:
Math.Sin(u*180)*Math.Sin(v*180)*w;
Essa é uma função paramétrica que cria um montículo senoidal de uma superfície plana.Conecta o UV.U à entrada u e o UV.V à entrada v.
A entrada w representa a amplitude da forma; portanto, anexamos um controle deslizante de número a ela.
Agora, temos uma lista de valores conforme definido pelo algoritmo. Vamos usar essa lista de valores para mover os pontos para cima na direção +Z. Usando Geometry.Translate, conecte o *bloco de código *a zTranslation e Surface.PointAtParameter à entrada geometria. Você deve ver os novos pontos exibidos na visualização do Dynamo.
Finalmente, criamos uma superfície com o nó NurbsSurface.ByPoints, conectando o nó da etapa anterior à entrada de pontos. Dessa forma, obtemos uma superfície paramétrica. Sinta-se à vontade para arrastar o controle deslizante para ver o encolhimento e aumento dos montículos.
Com a superfície paramétrica, queremos definir uma forma de aplicar painéis para criar matrizes em quatro pontos de componentes adaptativos. O Dynamo não tem uma funcionalidade pronta para uso para aplicar painéis à superfície; portanto, podemos consultar a comunidade para obter pacotes úteis do Dynamo.
Vá para Pacotes>Procurar um pacote...
Procure “LunchBox” e instale “LunchBox for Dynamo”. Esse pacote tem um conjunto de ferramentas muito útil para operações de geometria, como esta.
Após o fazer o download, você terá acesso completo ao conjunto LunchBox. Procure “Quad Grid” e selecione “LunchBox Quad Grid By Face”. Conecte a superfície paramétrica à entrada superfície e defina as divisões U e V como 15. Você deve ver uma superfície com painéis quad na visualização do Dynamo.
Se tiver curiosidade sobre a configuração, clique duas vezes no nó Lunch Box e veja como foi feito.
De volta ao Revit, vamos dar uma olhada rápida no componente adaptativo que estamos usando aqui. Não é necessário seguir, mas este é o painel do telhado que vamos instanciar. É um componente adaptativo de quatro pontos que é uma representação bruta de um sistema ETFE. A abertura do vazio central está em um parâmetro chamado “ApertureRatio”.
Estamos prestes a instanciar uma grande quantidade de geometria no Revit; portanto, certifique-se de ativar o solucionador do Dynamo na opção “Manual”.
Adicione um nó Tipos de família à tela e selecione “ROOF-PANEL-4PT”.
Adicione um nó AdaptiveComponent.ByPoints à tela, conecte Pts do painel da saída “LunchBox Quad Grid by Face” à entrada pontos. Conecte o nó Tipos de família à entrada familySymbol.
Pressione Executar. O Revit terá que pensar um pouco enquanto a geometria está sendo criada. Se demorar muito, reduza o número de “15” do bloco de código para um número menor. Isso reduzirá o número de painéis no telhado.
Observação: Se o Dynamo estiver demorando muito para calcular os nós, talvez seja recomendável usar a funcionalidade do nó “congelar” para pausar a execução das operações do Revit enquanto desenvolve o gráfico. Para obter mais informações sobre o congelamento de nós, consulte a seção “Congelar” no capítulo de sólidos.
De volta ao Revit, temos a matriz de painéis no telhado.
Aproximando o zoom, podemos ver mais de perto suas qualidades de superfície.
Continuando com a etapa anterior, vamos avançar mais e determinar a abertura de cada painel com base em sua exposição solar. Aproximando o zoom no Revit e selecionando um painel, vemos que na barra de propriedades há um parâmetro chamado “Proporção de abertura”. A família é configurada de forma que a abertura se estenda, aproximadamente, de 0,05 a 0,45.
Se ativarmos o caminho solar, será possível ver a localização atual do sol no Revit.
É possível referenciar a localização do sol usando o nó SunSettings.Current.
Conecte as configurações do sol a Sunsetting.SunDirection para obter o vetor solar.
Nos Pts do painel usados para criar os componentes adaptativos, use Plane.ByBestFitThroughPoints para aproximar o plano do componente.
Consulte a normal desse plano.
Use o produto escalar para calcular a orientação solar. O produto escalar é uma fórmula que determina como dois vetores paralelos ou antiparalelos podem ser. Então, estamos tomando a normal do plano de cada componente adaptativo e comparando com o vetor solar para simular aproximadamente a orientação solar.
Obtenha o valor absoluto do resultado. Isso assegura que o produto escalar seja preciso se a normal do plano estiver voltada para a direção reversa.
Pressione Executar.
Observando o produto escalar, temos uma ampla variedade de números. Queremos usar a distribuição relativa deles, mas precisamos condensar os números dentro do intervalo apropriado do parâmetro “Proporção de abertura” que planejamos editar.
Math.RemapRange é uma ótima ferramenta para isso. Essa ferramenta analisa uma lista de entradas e remapeia seus limites em dois valores-alvo.
Defina os valores-alvo como 0,15 e 0,45 em um bloco de código.
Pressione Executar.
Conecte os valores remapeados a um nó Element.SetParameterByName.
Conecte a sequência de caracteres “Proporção de abertura” à entrada parameterName.
Conecte os componentes adaptativos à entrada elemento.
Pressione Executar.
De volta ao Revit, com base em uma distância, podemos fazer o efeito da orientação solar na abertura dos painéis ETFE.
Aproximando o zoom, vemos que os painéis ETFE estão mais fechados como a face do sol. Nosso objetivo aqui é reduzir o superaquecimento da exposição solar. Se quiséssemos deixar entrar mais luz com base na exposição solar, apenas precisaríamos alternar o domínio em Math.RemapRange.
O Revit é um ambiente com abundância de dados. Isso nos dá uma gama de capacidades de seleção que se expande muito além de “apontar e clicar”. Podemos consultar o banco de dados do Revit e vincular dinamicamente os elementos do Revit à geometria do Dynamo durante a execução de operações paramétricas.
A biblioteca do Revit na interface do usuário oferece uma categoria “Seleção” que possibilita várias maneiras de selecionar a geometria.
Para selecionar os elementos do Revit corretamente, é importante ter um entendimento completo da hierarquia de elementos do Revit. Deseja selecionar todas as paredes em um projeto? Selecione por categoria. Deseja selecionar todas as cadeiras Eames em seu lobby moderno de meados do século? Selecione por família.
Vamos fazer uma rápida revisão da hierarquia do Revit.
Você se lembra da taxonomia da biologia? Reino, Filo, Classe, Ordem, Família, Gênero, Espécie? Os elementos do Revit são categorizados de forma similar. Em um nível básico, é possível dividir a hierarquia do Revit em Categorias, Famílias, Tipos* e Instâncias. Uma instância é um elemento de modelo individual (com uma ID exclusiva), enquanto uma categoria define um grupo genérico (como “paredes” ou “pisos”). Com o banco de dados do Revit organizado dessa forma, é possível selecionar um elemento e escolher todos os elementos similares com base em um nível especificado na hierarquia.
*Os tipos no Revit são definidos de forma diferente dos tipos na programação. No Revit, um tipo se refere a uma ramificação da hierarquia, em vez de um “tipo de dados”.
As três imagens abaixo mostram as categorias principais para a seleção de elementos do Revit no Dynamo. Essas são ótimas ferramentas para usar em combinação, e vamos explorar algumas delas nos exercícios seguintes.
Apontar e clicar é a forma mais fácil de selecionar diretamente um elemento do Revit. É possível selecionar um elemento do modelo completo ou partes de sua topologia (como uma face ou uma aresta). Isso permanece vinculado dinamicamente ao objeto do Revit. Portanto, quando o arquivo do Revit atualizar sua localização ou parâmetros, o elemento do Dynamo referenciado será atualizado no gráfico.
Os menus suspensos criam uma lista de todos os elementos acessíveis em um projeto do Revit. É possível usar essa opção para referenciar elementos do Revit que não são necessariamente visíveis em uma vista. Essa é uma ótima ferramenta para consultar elementos existentes ou criar novos em um projeto do Revit ou em um editor de família.
![](../.gitbook/assets/selecting _database_navigation_with_dynamo_nodes_02.png)
Também é possível selecionar o elemento do Revit por camadas específicas na hierarquia do Revit. Essa é uma opção eficaz para personalizar grandes matrizes de dados na preparação da documentação ou da instanciação generativa e personalização.
Com as três imagens acima em mente, vamos nos aprofundar em um exercício que seleciona elementos de um projeto básico do Revit na preparação para os aplicativos paramétricos que criaremos nas seções restantes deste capítulo.
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.
Neste arquivo de exemplo do Revit, temos três tipos de elementos de uma construção simples. Usaremos isso como exemplo para selecionar elementos do Revit no contexto da hierarquia do Revit.
Massa de construção
Vigas (Framing estrutural)
Treliças (componentes adaptativos)
Quais conclusões podemos tirar dos elementos atualmente na vista do projeto do Revit? E a que distância da hierarquia precisamos ir para selecionar os elementos apropriados? Isso, é claro, se tornará uma tarefa mais complexa ao trabalhar em um projeto grande. Há muitas opções disponíveis: é possível selecionar elementos por categorias, níveis, famílias, instâncias etc.
Como estamos trabalhando com uma configuração básica, vamos selecionar a massa da construção escolhendo “Massa” no nó suspenso Categorias. Isso pode ser encontrado na guia Seleção do Revit.
A saída da categoria Massa é apenas a própria categoria. Precisamos selecionar os elementos. Para fazer isso, usamos o nó “Todos os elementos da categoria”.
Neste ponto, observe que não vemos nenhuma geometria no Dynamo. Selecionamos um elemento do Revit, mas não convertemos o elemento na geometria do Dynamo. Essa é uma separação importante. Se você selecionasse um grande número de elementos, não seria uma boa ideia visualizá-los no Dynamo, pois isso deixaria o sistema inteiro lento. O Dynamo é uma ferramenta para gerenciar um projeto do Revit sem executar necessariamente operações de geometria, e vamos examinar isso na próxima seção deste capítulo.
Neste caso, estamos trabalhando com geometria simples, por isso queremos trazer a geometria para a visualização do Dynamo. Há um número verde ao lado de “BldgMass” no nó de inspeção acima. Isso representa a ID do elemento e nos informa que estamos lidando com um elemento do Revit, não com a geometria do Dynamo. A próxima etapa é converter esse elemento do Revit em geometria no Dynamo.
Usando o nó Element.Faces, obtemos uma lista de superfícies que representam cada face da massa do Revit. Agora, podemos ver a geometria na viewport do Dynamo e começar a referenciar a face para operações paramétricas.
Veja a seguir um método alternativo. Nesse caso, estamos deixando de lado a seleção através da hierarquia do Revit (“Todos os elementos da categoria”) e optando por selecionar explicitamente a geometria no Revit.
Usando o nó “Selecionar o elemento do modelo”, clique no botão *“selecionar” *(ou “alterar”). Na viewport do Revit, selecione o elemento desejado. Neste caso, estamos selecionando a massa da construção.
Em vez de Element.Faces, é possível selecionar a massa completa como uma geometria sólida usando Element.Geometry. Isso seleciona toda a geometria contida naquela massa.
Usando Geometry.Explode, podemos obter a lista de superfícies novamente. Esses dois nós funcionam da mesma forma que Element.Faces, mas oferecem opções alternativas para examinar a geometria de um elemento do Revit.
Usando algumas operações básicas de lista, podemos consultar uma face de interesse.
Primeiro, gere os elementos selecionados anteriormente para o nó Element.Faces.
Em seguida, use o nó List.Count que revela que estamos trabalhando com 23 superfícies na massa.
Referenciando esse número, alteramos o Valor máximo de um controle deslizante de número inteiro para “22”.
Usando List.GetItemAtIndex, inserimos as listas e o controle deslizante de número inteiro para o índice. Deslizando a seleção, paramos quando chegamos ao índice 9 e isolamos a fachada principal que hospeda as treliças.
A etapa anterior era um pouco complicada. Podemos fazer isso muito mais rápido com o nó “Selecionar face”. Isso nos permite isolar uma face que não é um elemento em si no projeto do Revit. Aplica-se a mesma interação como em “Selecionar o elemento do modelo”, exceto pelo fato de que selecionamos a superfície em vez do elemento completo.
Suponha que desejamos isolar as paredes da fachada principal do edifício. É possível usar o nó “Selecionar faces” para fazer isso. Clique no botão “Selecionar” e, em seguida, selecione as quatro fachadas principais no Revit.
Após selecionar as quatro paredes, clique no botão “Concluir” no Revit.
As faces são importadas para o Dynamo como superfícies.
Agora, vamos analisar as vigas sobre o átrio.
Use o nó “Selecionar o elemento do modelo” para selecionar uma das vigas.
Conecte o elemento de viga ao nó Element.Geometry. Agora, temos a viga na viewport do Dynamo.
É possível aumentar o zoom na geometria com um nó Watch3D (se você não visualizar a viga no nó de Inspeção 3D, clique com o botão direito do mouse e pressione “zoom para ajustar”).
Uma pergunta que pode surgir frequentemente nos fluxos de trabalho do Revit/Dynamo: como posso selecionar um elemento e obter todos os elementos similares? Como o elemento selecionado do Revit contém todas as suas informações hierárquicas, podemos consultar seu tipo de família e selecionar todos os elementos daquele tipo.
Conecte o elemento de viga a um nó Element.ElementType.
O nó de Inspeção revela que a saída é agora um símbolo de família, em vez de um elemento do Revit.
Element.ElementType é uma consulta simples; portanto, podemos fazer isso no bloco de código com a mesma facilidade que com
x.ElementType;
e obter os mesmos resultados.
Para selecionar as vigas restantes, usaremos o nó “Todos os elementos do tipo de família”.
O nó de inspeção mostra que selecionamos cinco elementos do Revit.
Também podemos converter todos esses cinco elementos para a geometria do Dynamo.
E se tivéssemos 500 vigas? A conversão de todos esses elementos na geometria do Dynamo seria muito lenta. Se o Dynamo estiver demorando muito para calcular os nós, será recomendável usar a funcionalidade do nó “congelar” para pausar a execução das operações do Revit enquanto desenvolve o gráfico. Para obter mais informações sobre o congelamento de nós, consulte a seção “Congelar” no capítulo de sólidos.
Em qualquer caso, se precisarmos importar 500 vigas, precisaremos de todas as superfícies para executar a operação paramétrica prevista? Ou podemos extrair informações básicas das vigas e executar tarefas gerativas com a geometria fundamental? Essa é uma pergunta que vamos ter em mente, à medida que avançamos neste capítulo. Por exemplo, em seguida, vamos analisar o sistema de treliça.
Usando o mesmo gráfico de nós, selecione o elemento de treliça ao invés do elemento de viga. Antes de fazer isso, exclua Element.Geometry da etapa anterior.
Em seguida, estamos prontos para extrair algumas informações básicas do tipo de família de treliças.
No nó Inspeção, podemos ver que temos uma lista de componentes adaptativos selecionados no Revit. Queremos extrair as informações básicas; por isso, começamos com os pontos adaptativos.
Conecte o nó “Todos os elementos do tipo de família” ao nó "AdaptiveComponent.Location". Isso nos fornece uma lista de listas, cada uma com três pontos que representam as localizações dos pontos adaptativos.
A conexão de um nó "Polygon.ByPoints" retorna uma policurva. Podemos ver isso na viewport do Dynamo. Com esse método, visualizamos a geometria de um elemento e abstraímos a geometria da matriz restante dos elementos (que pode ser maior em número do que este exemplo).
Dica: Se você clicar no número verde de um elemento do Revit no Dynamo, a viewport do Revit efetuará o zoom para aquele elemento.
A edição de parâmetros da documentação segue as lições aprendidas nas seções anteriores. Nesta seção, vamos examinar os parâmetros de edição que não afetam as propriedades geométricas de um elemento, mas, em vez disso, preparam um arquivo do Revit para a documentação.
No exercício abaixo, vamos usar um desvio básico do nó do plano para criar uma folha do Revit para documentação. Cada painel em nossa estrutura de telhado definida parametricamente tem um valor diferente para o desvio, e queremos chamar o intervalo de valores usando cores e programando os pontos adaptativos para entregar a um consultor de fachadas, engenheiro ou empreiteiro.
O desvio do nó do plano calculará a distância pela qual o conjunto de quatro pontos varia em relação ao plano de melhor ajuste entre eles. Essa é uma maneira rápida e fácil de estudar a construtibilidade.
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.
Inicie com o arquivo do Revit nesta seção (ou continue da seção anterior). Esse arquivo tem uma matriz de painéis ETFE no telhado. Vamos fazer referência a esses painéis para este exercício.
Adicione um nó Tipos de família à tela e escolha “ROOF-PANEL-4PT”.
Conecte esse nó a um nó Todos os elementos do tipo de família para selecionar todos os elementos do Revit para o Dynamo.
Consulte a localização dos pontos adaptativos de cada elemento com o nó AdaptiveComponent.Locations.
Crie um polígono com base nesses quatro pontos com o nó Polygon.ByPoints. Observe que agora temos uma versão abstrata do sistema de painéis no Dynamo sem ter que importar toda a geometria do elemento do Revit.
Calcule o desvio do plano com o nó Polygon.PlaneDeviation.
Só para testar, como no exercício anterior, vamos definir a proporção de abertura de cada painel com base em seu desvio do plano.
Adicione um nó Element.SetParameterByName à tela e conecte os componentes adaptativos à entrada elemento. Conecte um Bloco de código com a inscrição “Proporção de abertura” à entrada parameterName.
Não é possível conectar diretamente os resultados do desvio à entrada de valor porque precisamos remapear os valores para o intervalo de parâmetros.
Usando Math.RemapRange, remapeie os valores de desvio para um domínio entre 0,15 e 0_,_45 inserindo
0.15; 0.45;
no Bloco de código.Conecte esses resultados à entrada de valor de Element.SetParameterByName.
De volta ao Revit, podemos compreender de certa forma a mudança de abertura na superfície.
Aproximando o zoom, torna-se mais claro que os painéis fechados se concentram nos cantos da superfície. Os cantos abertos estão na parte superior. Os cantos representam áreas de desvio maior, enquanto a saliência tem uma curvatura mínima; portanto, isso faz sentido.
Definir a Proporção de abertura não demonstra claramente o desvio dos painéis no telhado. Também estamos alterando a geometria do elemento real. Suponha que só desejamos estudar o desvio do ponto de vista da viabilidade de fabricação. Seria útil colorir os painéis com base no intervalo de desvio para nossa documentação. Podemos fazer isso com a série de etapas abaixo e em um processo muito semelhante às etapas acima.
Remova o Element.SetParameterByName e seus nós de entrada e adicione Element.OverrideColorInView.
Adicione um nó Intervalo de cores à tela e conecte-o à entrada de cor Element.OverrideColorInView. Ainda precisamos conectar os valores de desvio ao intervalo de cores para criar o gradiente.
Se você passar o mouse sobre a entrada valor, será possível ver que os valores da entrada devem estar entre 0 e 1 para mapear uma cor para cada valor. Precisamos remapear os valores de desvio para esse intervalo.
Usando Math.RemapRange, remapeie os valores de desvio do plano para um intervalo entre* 0* e 1 (observação: também é possível usar o nó “MapTo” para definir um domínio de origem).
Conecte os resultados a um nó Intervalo de cores.
Observe que nossa saída é um intervalo de cores, em vez de um intervalo de números.
Se a definição estiver como Manual, pressione Executar. A partir desse ponto, você deve conseguir estabelecer a definição como Automático.
De volta ao Revit, vemos um gradiente muito mais legível que é representativo do desvio plano com base em nosso intervalo de cores. Mas, e se quisermos personalizar as cores? Observe que os valores de desvio mínimo são representados em vermelho, o que parece ser o oposto do que esperávamos. Queremos que o desvio máximo esteja em vermelho, com o desvio mínimo representado por uma cor menos intensa. Vamos voltar ao Dynamo e corrigir isso.
Usando um Bloco de código, adicione dois números em duas linhas diferentes:
0;
e255;
.Crie uma cor vermelha e azul ao conectar os valores apropriados em dois nós Color.ByARGB.
Crie uma lista com base nessas duas cores.
Conecte essa lista à entrada cores do Intervalo de cores e observe a atualização personalizada do intervalo de cores.
De volta ao Revit, agora podemos entender melhor as áreas de desvio máximo nos cantos. Lembre-se: esse nó se destina a substituir uma cor em uma vista; portanto, poderá ser realmente útil se tivermos uma folha específica no conjunto de desenhos com foco em um determinado tipo de análise.
Ao selecionar um painel ETFE no Revit, vemos que há quatro parâmetros de instância: XYZ1, XYZ2, XYZ3 e XYZ4. Eles ficam todos em branco depois de serem criados. Esses são parâmetros baseados em texto e precisam de valores. Usaremos o Dynamo para escrever as localizações dos pontos adaptativos em cada parâmetro. Isso ajudará a interoperabilidade se a geometria precisar ser enviada para um engenheiro consultor de fachadas.
Em uma folha de amostra, temos uma tabela grande e vazia. Os parâmetros XYZ são parâmetros compartilhados no arquivo do Revit, o que nos permite adicioná-los à tabela.
Aproximando o zoom, os parâmetros XYZ ainda devem ser preenchidos. Os dois primeiros parâmetros são preparados pelo Revit.
Para gravar esses valores, faremos uma operação de lista complexa. O gráfico em si é simples, mas os conceitos são criados intensamente com base no mapeamento da lista, conforme discutido no capítulo sobre a lista.
Selecione todos os componentes adaptativos com dois nós.
Extraia a localização de cada ponto com AdaptiveComponent.Locations.
Converta esses pontos em sequências de caracteres. Lembre-se: o parâmetro se baseia em texto; portanto, é preciso inserir o tipo de dados correto.
Crie uma lista das quatro sequências de caracteres que definem os parâmetros a serem alterados:XYZ1, XYZ2, XYZ3, e XYZ4.
Conecte essa lista à entrada parameterName de Element.SetParameterByName.
Conecte Element.SetParameterByName à entrada combinador de List.Combine. Conecte os componentes adaptativos à list1. Conecte a Sequência de caracteres do objeto à list2.
Estamos mapeando a lista aqui, porque estamos gravando quatro valores para cada elemento, que cria uma estrutura de dados complexa. O nó List.Combine define uma operação uma etapa abaixo na hierarquia de dados. É por isso que as entradas de elemento e de valor Element.SetParameterByName são deixadas em branco. List.Combine está conectando as sublistas de suas entradas às entradas vazias de Element.SetParameterByName, com base na ordem em que elas estão conectadas.
Selecionando um painel no Revit, poderemos ver agora que temos valores de sequência de caracteres para cada parâmetro. Realisticamente, criaríamos um formato mais simples para escrever um ponto (X,Y,Z). Isso pode ser feito com operações de sequência de caracteres no Dynamo, mas estamos ignorando isso aqui para permanecer no escopo deste capítulo.
Uma vista da amostra de cronograma com parâmetros preenchidos.
Cada painel ETFE agora tem as coordenadas XYZ gravadas para cada ponto adaptativo, representando os cantos de cada painel para fabricação.
É possível criar uma matriz de elementos do Revit no Dynamo com o controle paramétrico completo. Os nós do Revit no Dynamo oferecem a capacidade de importar elementos de geometrias genéricas para tipos de categoria específicos (como paredes e pisos). Nesta seção, vamos focar na importação de elementos parametricamente flexíveis com componentes adaptativos.
Um componente adaptativo é uma categoria de família flexível que é bem adequada para aplicativos gerativos. Após a instanciação, é possível criar um elemento geométrico complexo que é guiado pela localização fundamental dos pontos adaptativos.
Veja abaixo um exemplo de um componente adaptativo de três pontos no editor de família. Isso gera uma treliça que é definida pela posição de cada ponto adaptativo. No exercício abaixo, usaremos esse componente para gerar uma série de treliças em uma fachada.
O componente adaptativo é um bom exemplo das práticas recomendadas de interoperabilidade. É possível criar uma matriz de componentes adaptativos definindo os pontos adaptativos fundamentais. E, ao transferir esses dados para outros programas, temos a capacidade de reduzir a geometria a dados simples. A importação e a exportação com um programa como o Excel seguem uma lógica similar.
Suponha que um consultor de fachadas deseje saber a localização dos elementos da treliça sem precisar analisar a geometria totalmente articulada. Na preparação para a fabricação, o consultor pode fazer referência à localização de pontos adaptativos para gerar novamente a geometria em um programa como o Inventor.
O fluxo de trabalho que configuraremos no exercício abaixo nos permite acessar todos esses dados ao criar a definição para a criação de elementos do Revit. Nesse processo, é possível mesclar a conceitualização, a documentação e a fabricação em um fluxo de trabalho contínuo. Isso cria um processo mais inteligente e eficiente para a interoperabilidade.
Outro método para importar a geometria paramétrica do Dynamo no Revit é com o DirectShape. Em resumo, o elemento DirectShape e as classes relacionadas oferecem suporte à capacidade de armazenar formas geométricas criadas externamente em um documento do Revit. A geometria pode incluir sólidos ou malhas fechadas. O DirectShape foi projetado principalmente para importar formas de outros formatos de dados, como IFC ou STEP, onde não há informações suficientes disponíveis para criar um elemento “real” do Revit. Como o fluxo de trabalho IFC e STEP, a funcionalidade DirectShape funciona bem com a importação de geometrias criadas pelo Dynamo em projetos do Revit como elementos reais.
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.
Começando com o arquivo de exemplo desta seção (ou continuando com o arquivo do Revit da sessão anterior), vemos a mesma massa do Revit.
Esse é o arquivo conforme aberto.
Esse é o sistema de treliça que criamos com o Dynamo, vinculado de forma inteligente à massa do Revit.
Usamos os nós “Selecionar o elemento do modelo” e “Selecionar face”, agora estamos descendo uma etapa na hierarquia da geometria e usando “Selecionar aresta”. Com o solucionador do Dynamo definido para executar “Automático”, o gráfico será continuamente atualizado com as alterações no arquivo do Revit. A aresta que estamos selecionando está vinculada dinamicamente à topologia do elemento do Revit. Desde que a topologia* não seja alterada, a conexão permanecerá vinculada entre o Revit e o Dynamo.
Selecione a curva superior da fachada de vidraça. Ela se expande por todo o comprimento da construção. Se você estiver tendo problemas para selecionar a aresta, lembre-se de escolher a seleção no Revit ao passar o mouse sobre a aresta e pressionar “Tab” até que a aresta desejada seja realçada.
Usando dois nós “Selecionar aresta”, selecione cada aresta que representa o declive transversal no meio da fachada.
Faça o mesmo para as arestas inferiores da fachada no Revit.
Os nós de Inspeção revelam que agora temos linhas no Dynamo. Isso é convertido automaticamente na geometria do Dynamo, já que as próprias arestas não são elementos do Revit. Essas curvas são as referências que usaremos para instanciar as treliças adaptativas na fachada.
*Para manter uma topologia consistente, estamos nos referindo a um modelo que não tenha mais faces ou arestas adicionadas. Embora os parâmetros possam alterar sua forma, a maneira como ele é construído permanece consistente.
Primeiro, precisamos unir as curvas e mesclá-las em uma lista. Dessa forma, podemos “agrupar” as curvas para realizar operações de geometria.
Crie uma lista para as duas curvas no meio da fachada.
Una as duas curvas numa policurva conectando o componente List.Create a um nó Polycurve.ByJoinedCurves.
Crie uma lista para as duas curvas na parte inferior da fachada.
Una as duas curvas numa policurva conectando o componente List.Create a um nó Polycurve.ByJoinedCurves.
Por fim, una as três curvas principais (uma linha e duas policurvas) em uma lista.
Desejamos aproveitar a curva superior, que é uma linha, e representa a extensão completa da fachada. Vamos criar planos ao longo dessa linha para fazer a interseção com o conjunto de curvas que agrupamos em uma lista.
Com um bloco de código, defina um intervalo usando a sintaxe:
0..1..#numberOfTrusses;
Conecte um *controle deslizante de número inteiro *à entrada do bloco de código. Como talvez você tenha adivinhado, isso representará o número de treliças. Observe que a barra deslizante controla o número de itens no intervalo definido de *0 *a 1.
Conecte o bloco de código à entrada param de um nó “Curve.PlaneAtParameter” e conecte a aresta superior à entrada da curva. Isso gerará dez planos uniformemente distribuídos pela extensão da fachada.
Um plano é uma parte abstrata da geometria, representando um espaço bidimensional infinito. Os planos são excelentes para contorno e interseção, enquanto estamos configurando nesta etapa.
Usando o nó Geometry.Intersect (defina a opção de amarra como produto transversal), conecte Curve.PlaneAtParameter à entrada entidade do nó Geometry.Intersect. Conecte o nó principal List.Create à entrada geometria. Agora, vemos pontos na viewport do Dynamo que representam a interseção de cada curva com os planos definidos.
Observe que a saída é uma lista de listas de listas. Para nossos fins, há muitas listas. Desejamos fazer uma mesclagem parcial aqui. Precisamos descer uma etapa na lista e nivelar o resultado. Para fazer isso, usaremos a operação List.Map, conforme discutido no capítulo sobre lista do manual.
Conecte o nó Geometry.Intersect à entrada da lista de List.Map.
Conecte um nó Aplainar à entrada f(x) de List.Map. Os resultados fornecem três listas, cada uma com uma contagem igual ao número de treliças.
Precisamos alterar esses dados. Se desejarmos instanciar a treliça, precisaremos usar o mesmo número de pontos adaptativos, conforme definido na família. Esse é um componente adaptativo de três pontos, portanto, em vez de três listas com 10 itens cada (numberOfTrusses), desejamos 10 listas de três itens cada. Desta forma, podemos criar 10 componentes adaptativos.
Conecte o List.Map a um nó List.Transpose. Agora, temos a saída de dados desejada.
Para confirmar se os dados estão corretos, adicione um nó Polygon.ByPoints à tela e verifique novamente com a visualização do Dynamo.
Da mesma forma que criamos os polígonos, é possível organizar os componentes adaptativos.
Adicione um nó AdaptiveComponent.ByPoints à tela, conecte o nó List.Transpose à entrada pontos.
Usando um nó Tipos de família, selecione a família “AdaptiveTruss” e conecte-a à entrada FamilyType do nó AdaptiveComponent.ByPoints.
No Revit, agora temos as dez treliças espaçadas uniformemente na fachada.
“Flexibilizar” o gráfico, aumentamos numberOfTrusses para 30 alterando o controle deslizante. Muitas treliças, o que não é muito realista, mas o vínculo paramétrico está funcionando. Depois de verificar, defina numberOfTrusses como 15.
E, para o teste final, selecionando a massa no Revit e editando os parâmetros de instância, será possível alterar a forma da construção e observar a treliça fazer o mesmo. Lembre-se: esse gráfico do Dynamo precisa estar aberto para que essa atualização seja exibida. O vínculo será interrompido assim que for fechado.
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.
Comece abrindo o arquivo de exemplo desta lição: ARCH-DirectShape-BaseFile.rvt.
Na vista 3D, vemos a massa da construção da lição anterior.
Ao longo da aresta do átrio há uma curva de referência, vamos usá-la como uma curva para fazer referência no Dynamo.
Ao longo da aresta oposta do átrio, há outra curva de referência à qual também vamos fazer referência no Dynamo.
Para fazer referência à nossa geometria no Dynamo, usaremos Selecionar o elemento do modelo para cada membro do Revit. Selecione a massa no Revit e importe a geometria para o Dynamo usando Element.Faces. A massa agora deve estar visível na visualização do Dynamo.
Importe uma curva de referência para o Dynamo usando Selecionar o elemento do modelo e CurveElement.Curve.
Importe a outra curva de referência para o Dynamo usando Selecionar o elemento do modelo e CurveElement.Curve.
A estrutura é guiada por três parâmetros principais: Deslocamento diagonal, Curvatura e Raio.
Efetue o zoom em uma visualização próxima dos parâmetros para este gráfico. Podemos flexibilizá-los para obter resultados de geometria diferentes.
Soltando o nó DirectShape.ByGeometry na tela, vemos que ele tem quatro entradas: geometria, categoria, material e nome.
A geometria será o sólido criado com base na parte de criação da geometria do gráfico.
A entrada de categoria é selecionada usando o nó suspenso Categorias. Neste caso, usaremos “Framing estrutural”.
A entrada de material é selecionada por meio da matriz de nós acima. Embora possa ser mais simplesmente definida como “Padrão” neste caso.
Após executar o Dynamo, de volta no Revit, temos a geometria importada no telhado em nosso projeto. Esse é um elemento do framing estrutural em vez de um modelo genérico. O vínculo paramétrico para o Dynamo permanece intacto.
O abaixo detalhará como o Dynamo referencia os dados para a criação de elementos do Revit. Para gerar vários componentes adaptativos, definiremos uma lista de listas em que cada lista tem três pontos que representam cada ponto do componente adaptativo. Isso será levado em consideração à medida que gerenciarmos as estruturas de dados no Dynamo.
Detalharemos no a importação da geometria do Dynamo como uma DirectShape em nosso projeto do Revit. Usando esse método, podemos atribuir a categoria, o material e o nome de uma geometria importada, mantendo um vínculo paramétrico com o gráfico do Dynamo.
Diminuindo o zoom e efetuando o pan à direita no gráfico de exemplo, vemos um grupo grande de nós: são operações geométricas que geram a estrutura do telhado da treliça visível na visualização do Dynamo. Esses nós são criados usando a funcionalidade Nó para código, conforme discutido na do manual.