Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Estradas, ferrovias, terras, serviços públicos, levantamento topográfico, GIS etc.
A infraestrutura civil é tudo isso e muito mais. Esta seção contém diversos gráficos de exemplo práticos e relevantes para ajudar a orientar você a dominar o Dynamo e revelar todo o potencial do Dynamo for Civil 3D. Cada gráfico é fornecido completo com descrições detalhadas da lógica que foi usada para criá-lo, para que você possa não apenas usá-lo, mas entendê-lo.
Além disso, esses exemplos incorporam práticas recomendadas, que já passaram pelo teste do tempo, para a construção de gráficos sólidos. À medida que você trabalha nos exemplos, recomendamos que se familiarize também com a seção Melhores práticas para obter mais ideias sobre como criar gráficos poderosos, flexíveis e sustentáveis.
Um dos muitos casos de uso excelentes do Dynamo é posicionar objetos separados dinamicamente ao longo de um modelo de corredor. Geralmente, os objetos precisam ser posicionados em localizações independentes das montagens inseridas ao longo do corredor, o que é uma tarefa muito entediante para ser realizada manualmente. E, quando a geometria horizontal ou vertical do corredor muda, isso introduz uma quantidade significativa de retrabalho.
Ler dados de um arquivo externo (neste caso, Excel)
Organizar dados em dicionários
Usar sistemas de coordenadas para controlar a posição/escala/rotação
Posicionar referências de bloco
Visualizar a geometria no Dynamo
Este gráfico será executado no Civil 3D 2020 e versões superiores.
Comece fazendo o download dos arquivos de amostra abaixo e, em seguida, abrindo o arquivo DWG e o gráfico do Dynamo.
É melhor que o arquivo do Excel seja salvo no mesmo diretório que o gráfico do Dynamo.
Apresentamos a seguir uma visão geral da lógica no gráfico.
Ler o arquivo do Excel e importar os dados para o Dynamo
Obter as linhas de recurso da linha base do corredor especificada
Gerar os sistemas de coordenadas ao longo da linha de recurso do corredor nas estacas desejadas
Usar os sistemas de coordenadas para posicionar referências de bloco no espaço do modelo
Vamos começar
Neste gráfico de exemplo, vamos usar um arquivo do Excel para armazenar os dados que o Dynamo usará para posicionar as referências de bloco dos postes de luz. A tabela tem a aparência a seguir.
Usar o Dynamo para ler dados de um arquivo externo (como um arquivo do Excel) é uma ótima estratégia, especialmente quando os dados precisam ser compartilhados com outros membros da equipe.
Os dados do Excel são importados para o Dynamo da seguinte maneira.
Agora que temos os dados, precisamos dividi-los por coluna (Corredor, Linha base, PointCode etc.) para que possam ser usados no restante do gráfico. Uma forma comum de fazer isso é usar o nó List.GetItemAtIndex e especificar o número de índice de cada coluna que desejamos. Por exemplo, a coluna Corredor está no índice 0, a coluna Linha base está no índice 1 etc.
Parece bom, certo? Mas há um problema potencial com essa abordagem. E se a ordem das colunas no arquivo do Excel for alterada no futuro? Ou uma nova coluna for adicionada entre duas colunas? Nesses casos, o gráfico não funcionará corretamente e exigirá uma atualização. Podemos tornar o gráfico à prova de futuro colocando os dados em um Dicionário, com os cabeçalhos de coluna do Excel como chaves e o resto dos dados como valores.
Se os dicionários forem algo novo para você, veja a seção Dicionários no Dynamo.
Isso torna o gráfico mais resiliente porque permite flexibilidade ao alterar a ordem das colunas no Excel. Enquanto os cabeçalhos de coluna permanecerem os mesmos, os dados poderão ser recuperados do dicionário usando sua chave (ou seja, o cabeçalho da coluna), que é o que fazemos em seguida.
Agora que temos os dados do Excel importados e prontos para serem usados, vamos começar a usá-los para obter algumas informações do Civil 3D sobre os modelos de corredor.
Selecione o modelo de corredor pelo nome.
Obtenha uma linha base específica dentro do corredor.
Obtenha uma linha do recurso na linha base pelo código de ponto.
O que vamos fazer agora é gerar Sistemas de coordenadas ao longo das linhas de recurso do corredor nos valores de estaca que especificamos no arquivo do Excel. Esses sistemas de coordenadas serão usados para definir a posição, a rotação e a escala das referências de bloco dos postes de luz.
Se os sistemas de coordenadas forem algo novo para você, veja a seção Vetor, plano e sistema de coordenadas.
Observe o uso de um bloco de código para rotacionar os sistemas de coordenadas, dependendo do lado em que eles estejam da linha base. Isso pode ser obtido usando uma sequência de vários nós, mas esse é um bom exemplo de uma situação em que é mais fácil escrever manualmente.
Se os blocos de código forem algo novo para você, veja a seção Blocos de código e DesignScript.
Está quase. Temos todas as informações necessárias para podermos realmente posicionar as referências de bloco. A primeira coisa a fazer é obter as definições de bloco que desejamos usando a coluna BlockName do arquivo do Excel.
A partir daí, a última etapa é criar as referências de bloco.
Quando você executar o gráfico, deverá ver novas referências de bloco mostradas no espaço do modelo ao longo do corredor. E aqui está a parte interessante – se o modo de execução do gráfico estiver definido como Automático e você editar o arquivo do Excel, as referências de bloco serão atualizadas automaticamente.
Você pode ler mais sobre os modos de execução de gráficos na seção Interface do usuário.
Veja um exemplo de como executar o gráfico usando o Reprodutor do Dynamo.
Se o Reprodutor do Dynamo for algo novo para você, veja a seção Reprodutor do Dynamo.
Pode ser útil visualizar a geometria do corredor no Dynamo para fornecer contexto. Este modelo específico tem os sólidos do corredor já extraídos no espaço do modelo, então vamos levá-los para o Dynamo.
Mas há algo mais que precisamos considerar. Os sólidos são um tipo de geometria relativamente “pesada”, o que significa que essa operação diminuirá a velocidade do gráfico. Seria bom se houvesse uma maneira simples de escolher se desejamos visualizar os sólidos ou não. A resposta óbvia é desconectar o nó Corridor.GetSolids, mas isso produzirá avisos para todos os nós a jusante, o que é um pouco confuso. Essa é uma situação em que o nó ScopeIf realmente se destaca.
Observe que o nó Object.Geometry tem uma barra cinza na parte inferior. Isso significa que a visualização do nó está desativada (acessível clicando com o botão direito do mouse no nó), o que permite que GeometryColor.ByGeometryColor evite “brigar” com outra geometria por prioridade de exibição na visualização do plano de fundo.
O nó ScopeIf basicamente permite executar seletivamente uma ramificação inteira de nós. Se a entrada test for falsa, nenhum nó conectado ao nó ScopeIf será executado.
Veja o resultado na visualização do plano de fundo do Dynamo.
Veja a seguir algumas ideias sobre como você pode expandir os recursos desse gráfico.
Adicione uma coluna de rotação ao arquivo do Excel e use-a para controlar a rotação dos sistemas de coordenadas.
Adicione deslocamentos horizontais ou verticais ao arquivo do Excel para que os postes de luz possam se desviar da linha de recurso do corredor, se necessário.
Em vez de usar um arquivo do Excel com valores de estaca, gere os valores de estaca diretamente no Dynamo usando uma estaca inicial e um espaçamento típico.
Ao adicionar tubulações e estruturas a uma rede de tubulação, o Civil 3D usa um modelo para atribuir nomes automaticamente. Normalmente, isso é suficiente durante o posicionamento inicial, mas inevitavelmente os nomes terão que mudar no futuro à medida que o projeto evoluir. Além disso, há muitos padrões de nomenclatura diferentes que podem ser necessários, por exemplo, nomear estruturas sequencialmente em um trecho de tubulação com base na estrutura a jusante mais distante ou seguir um padrão de nomenclatura alinhado com o esquema de dados de um órgão local. Este exemplo demonstrará como o Dynamo pode ser usado para definir qualquer tipo de estratégia de nomeação e aplicá-lo de forma consistente.
Trabalhar com caixas delimitadoras
Filtrar dados usando o nó List.FilterByBoolMask
Classificar os dados usando o nó List.SortByKey
Gerar e modificar sequências de texto
Este gráfico será executado no Civil 3D 2020 e versões superiores.
Comece fazendo o download dos arquivos de amostra abaixo e, em seguida, abrindo o arquivo DWG e o gráfico do Dynamo.
Apresentamos a seguir uma visão geral da lógica no gráfico.
Selecionar as estruturas por camada
Obter as localizações da estrutura
Filtrar as estruturas por deslocamento e, em seguida, classificá-las por estaca
Gerar os novos nomes
Renomear as estruturas
Vamos começar
A primeira coisa que precisamos fazer é selecionar todas as estruturas com as quais planejamos trabalhar. Para fazer isso, basta selecionar todos os objetos em uma determinada camada, o que significa que podemos selecionar estruturas de diferentes redes de tubulação (presumindo que compartilhem a mesma camada).
Esse nó assegura que não recuperemos acidentalmente quaisquer tipos de objetos indesejados que possam compartilhar a mesma camada que as estruturas.
Agora que temos as estruturas, precisamos descobrir sua posição no espaço para que possamos classificá-las de acordo com sua localização. Para fazer isso, aproveitaremos a caixa delimitadora de cada objeto. A Caixa delimitadora de um objeto é a caixa de tamanho mínimo que contém completamente as extensões geométricas do objeto. Ao calcular o centro da caixa delimitadora, obtemos uma boa aproximação do ponto de inserção da estrutura.
Usaremos estes pontos para obter a estaca e o deslocamento das estruturas em relação a um alinhamento selecionado.
Neste ponto é que as coisas começam a ficar um pouco complicadas. Nesta fase, temos uma lista grande de todas as estruturas na camada que especificamos e escolhemos um alinhamento que desejamos classificar. O problema é que pode haver estruturas na lista que não queremos renomear. Por exemplo, elas podem não fazer parte do trecho específico em que estamos interessados.
O alinhamento selecionado
As estruturas que queremos renomear
As estruturas que devem ser ignoradas
Portanto, precisamos filtrar a lista de estruturas para que não consideremos as que são maiores do que um determinado deslocamento do alinhamento. Isso é melhor realizado usando o nó List.FilterByBoolMask. Após filtrar a lista de estruturas, usamos o nó List.SortByKey para classificá-las por seus valores de estaca.
Verificar se o deslocamento da estrutura é menor que o valor de limite
Substituir os valores nulos por false
Filtrar a lista de estruturas e estacas
Classificar as estruturas pelas estacas
O último trabalho que precisamos fazer é criar os novos nomes para as estruturas. O formato que usaremos é <alignment name>-STRC-<number>
. Há alguns nós extras aqui para preencher os números com zeros extras, se desejado (por exemplo, “01”em vez de “1”).
E, por último, mas não menos importante, renomeamos as estruturas.
Veja um exemplo de como executar o gráfico usando o Reprodutor do Dynamo.
Pode ser útil aproveitar a visualização do plano de fundo 3D do Dynamo para visualizar as saídas intermediárias do gráfico em vez de apenas o resultado final. Uma coisa fácil que podemos fazer é mostrar as caixas delimitadoras das estruturas. Além disso, este conjunto de dados específico tem um corredor no documento; portanto, podemos trazer a geometria da linha de recurso do corredor para o Dynamo para fornecer algum contexto para onde as estruturas estão localizadas no espaço. Se o gráfico for usado em um conjunto de dados que não tem corredores, estes nós simplesmente não farão nada.
Agora podemos entender melhor como funciona o processo de filtragem das estruturas por deslocamento.
Veja a seguir algumas ideias sobre como você pode expandir os recursos desse gráfico.
Renomeie as estruturas com base em seu Alinhamento mais próximo em vez de selecionar um alinhamento específico.
Renomeie as tubulações além das estruturas.
Defina as camadas das estruturas com base em seu trecho.
O desenvolvimento de envelopes cinemáticos para validação da altura livre é uma parte importante do projeto de ferrovia. É possível usar o Dynamo para gerar sólidos para o envelope, em vez de criar e gerenciar submontagens complexas de corredor para fazer o trabalho.
Trabalhar com linhas de recurso do corredor
Transformar a geometria entre sistemas de coordenadas
Criar sólidos por elevação
Controlar o comportamento do nó com configurações de amarra
Este gráfico será executado no Civil 3D 2020 e versões superiores.
Comece fazendo o download dos arquivos de amostra abaixo e, em seguida, abrindo o arquivo DWG e o gráfico do Dynamo.
Apresentamos a seguir uma visão geral da lógica no gráfico.
Obter linhas de recurso da linha base do corredor especificada
Gerar sistemas de coordenadas ao longo da linha de recurso do corredor no espaçamento desejado
Transformar a geometria do bloco do perfil para os sistemas de coordenadas
Elevar um sólido entre os perfis
Criar sólidos no Civil 3D
Vamos começar
Nossa primeira etapa é obter os dados do corredor. Selecionaremos o modelo de corredor pelo nome, obteremos uma linha base específica dentro do corredor e, em seguida, obteremos uma linha de recurso dentro da linha base pelo código de ponto.
O que vamos fazer agora é gerar os Sistemas de coordenadas ao longo das linhas de recurso do corredor entre uma determinada estaca inicial e final. Esses sistemas de coordenadas serão usados para alinhar a geometria do bloco do perfil do veículo com o corredor.
Observe os pequenos XXX no canto inferior direito do nó. Isso significa que as configurações de amarra do nó são definidas como Produto transversal, que é necessário para gerar os sistemas de coordenadas nos mesmos valores de estaca para ambas as linhas de recurso.
Agora, precisamos de alguma forma criar uma matriz dos perfis de veículo ao longo das linhas do recurso. O que vamos fazer é transformar a geometria da definição do bloco do perfil do veículo usando o nó Geometry.Transform. Esse é um conceito complicado de visualizar, assim, antes de analisarmos os nós, veja a seguir um gráfico que mostra o que vai acontecer.
Basicamente, estamos usando a geometria do Dynamo de uma única definição de bloco e movendo-a/girando-a, tudo isso enquanto criamos uma matriz ao longo da linha do recurso. Que legal. Veja como é a aparência da sequência de nós.
Isso obtém a definição de bloco do documento.
Esses nós obtêm a geometria do Dynamo dos objetos dentro do bloco.
Esses nós definem essencialmente o sistema de coordenadas com base no qual estamos transformando a geometria.
E, por fim, esse nó faz o trabalho real de transformar a geometria.
Observe a amarra Mais longa nesse nó.
E aqui está o que obtemos no Dynamo.
Temos boas notícias. O trabalho árduo está feito. Tudo o que precisamos fazer agora é gerar sólidos entre os perfis. Isso é facilmente obtido com o nó Solid.ByLoft.
E aqui está o resultado. Lembre-se de que esses são sólidos do Dynamo – ainda precisamos criá-los no Civil 3D.
Nossa última etapa é gerar os sólidos gerados no espaço do modelo. Também daremos a eles uma cor para torná-los muito fáceis de ver.
Veja um exemplo de como executar o gráfico usando o Reprodutor do Dynamo.
Veja a seguir algumas ideias sobre como você pode expandir os recursos desse gráfico.
Adicione a capacidade de usar diferentes intervalos de estacas separadamente para cada trilha.
Divida os sólidos em segmentos menores que podem ser analisados individualmente para detectar interferências.
Verifique se os sólidos de envelope fazem interseção com recursos e colore os que apresentam interferência.
Trabalhar com pontos COGO e grupos de pontos no Civil 3D é um elemento central de muitos processos do campo à conclusão. O Dynamo realmente brilha quando se trata de gerenciamento de dados e demonstraremos um caso de uso potencial neste exemplo.
Trabalhar com listas
Agrupar objetos similares com o nó List.GroupByKey
Mostrar a saída personalizada no Reprodutor do Dynamo
Este gráfico será executado no Civil 3D 2020 e versões superiores.
Comece fazendo o download dos arquivos de amostra abaixo e, em seguida, abrindo o arquivo DWG e o gráfico do Dynamo.
Apresentamos a seguir uma visão geral da lógica no gráfico.
Obter todos os pontos COGO no documento
Agrupar os pontos COGO por descrição
Criar os grupos de pontos
Gerar a saída de um resumo para o Reprodutor do Dynamo
Vamos começar
Nossa primeira etapa é obter todos os grupos de pontos no documento e, em seguida, obter todos os pontos COGO dentro de cada grupo. Isso nos fornecerá uma lista aninhada ou uma “lista de listas” com a qual será mais fácil trabalhar mais tarde se aplainarmos tudo em uma única lista com o nó List.Flatten.
Agora que temos todos os pontos COGO, precisamos separá-los em grupos com base em suas descrições. É exatamente isso que o nó List.GroupByKey faz. Ele essencialmente agrupa todos os itens que compartilham a mesma chave.
O trabalho árduo está feito. A etapa final é criar novos grupos de pontos do Civil 3D com base em pontos COGO agrupados.
Quando você executa o gráfico, não há nada para ver na visualização do plano de fundo do Dynamo porque não estamos trabalhando com nenhuma geometria. Portanto, a única maneira de ver se o gráfico foi executado corretamente é verificar o espaço da ferramenta ou analisar as visualizações de saída do nó. No entanto, se executarmos o gráfico usando o Reprodutor do Dynamo, poderemos fornecer mais feedback sobre os resultados do gráfico, gerando um resumo dos grupos de pontos que foram criados. Tudo o que você precisa fazer é clicar com o botão direito do mouse em um nó e defini-lo como É saída. Neste caso, usamos um nó Inspeção renomeado para visualizar os resultados.
Veja um exemplo de como executar o gráfico usando o Reprodutor do Dynamo.
Veja a seguir algumas ideias sobre como você pode expandir os recursos desse gráfico.
Modifique o agrupamento de pontos para que seja baseado na descrição completa em vez de na descrição original.
Agrupe os pontos em algumas outras categorias predefinidas que você escolher (por exemplo, “Instantâneos no nível do solo”, “Monumentos” etc.)
Cria automaticamente superfícies TIN para pontos em determinados grupos.
O projeto de engenharia de uma construção habitacional típica envolve o trabalho com várias concessionárias subterrâneas, como esgoto sanitário, drenagem de águas pluviais, água potável ou outras. Este exemplo demonstrará como o Dynamo pode ser usado para desenhar as conexões de serviço de uma linha principal de distribuição até um determinada subdivisão de propriedade (por exemplo, um lote). É comum que todos os lotes exijam uma conexão de serviço, o que introduz um trabalho tedioso significativo para colocar todos os serviços. O Dynamo pode acelerar o processo desenhando automaticamente a geometria necessária com precisão, além de fornecer entradas flexíveis que podem ser ajustadas para se adequarem às normas de órgãos locais.
Usar o nó Selecionar objeto para a entrada do usuário
Trabalhar com sistemas de coordenadas
Usar operações geométricas como Geometry.DistanceTo e Geometry.ClosestPointTo
Criar referências de bloco
Controlar as configurações de vinculação de objetos
Este gráfico será executado no Civil 3D 2020 e versões superiores.
Comece fazendo o download dos arquivos de amostra abaixo e, em seguida, abrindo o arquivo DWG e o gráfico do Dynamo.
Apresentamos a seguir uma visão geral da lógica no gráfico.
Obter a geometria da curva para a linha principal de distribuição
Obter a geometria da curva para uma linha do lote selecionada pelo usuário, revertendo se necessário
Gerar os pontos de inserção para os medidores de serviço
Obter os pontos na linha principal de distribuição que estão mais próximos das localizações do medidor de serviço
Criar referências de bloco e linhas no espaço do modelo
Vamos começar
Nossa primeira etapa é obter a geometria da linha de distribuição principal no Dynamo. Em vez de selecionar linhas individuais ou polilinhas, vamos obter todos os objetos em uma determinada camada e uni-los como uma PolyCurve do Dynamo.
Em seguida, precisamos colocar a geometria de uma linha do lote selecionada no Dynamo para que possamos trabalhar com ela. A ferramenta certa para o trabalho é o nó Selecionar objeto, que permite que o usuário do gráfico selecione um objeto específico no Civil 3D.
Também precisamos lidar com um possível problema que surja. A linha do lote tem um ponto inicial e um ponto final, o que significa que ela tem uma direção. Para que o gráfico produza resultados consistentes, precisamos que todas as linhas do lote tenham uma direção consistente. Podemos levar em conta essa condição diretamente na lógica do gráfico, o que torna o gráfico mais resiliente.
Obtenha os pontos inicial e final da linha do lote.
Meça a distância de cada ponto até a linha principal de distribuição e, em seguida, descubra qual distância é maior.
O resultado desejado é que o ponto inicial da linha seja o mais próximo da linha principal de distribuição. Se esse não for o caso, invertemos a direção da linha do lote. Caso contrário, simplesmente retornaremos a linha do lote original.
É hora de descobrir onde os medidores de serviço serão colocados. Normalmente, a colocação é determinada pelos requisitos de órgãos locais; portanto, forneceremos valores de entrada que podem ser alterados para atender a várias condições. Vamos usar um Sistema de coordenadas ao longo da linha do lote como referência para criar os pontos. Isso torna muito fácil a definição de deslocamentos relativos à linha do lote, não importando sua orientação.
Agora precisamos obter os pontos na linha principal de distribuição que estão mais próximos da localizações do medidor de serviço Isso nos permitirá desenhar as conexões de serviço no espaço do modelo para que elas sempre sejam perpendiculares à linha principal de distribuição. O nó Geometry.ClosestPointTo é a solução perfeita.
Essa é a PolyCurve da linha principal de distribuição
Esses são os pontos de inserção do medidor de serviço
A última etapa é efetivamente criar objetos no espaço do modelo. Usaremos os pontos de inserção que geramos anteriormente para criar referências de bloco e, em seguida, usaremos os pontos na linha principal de distribuição para desenhar linhas para as conexões de serviço.
Quando você executar o gráfico, deverá ver novas referências de bloco e linhas de conexão de serviço no espaço do modelo. Tente alterar algumas das entradas e veja como tudo é atualizado automaticamente.
Você pode observar que, após colocar os objetos para uma linha do lote, selecionar uma linha do lote diferente resulta na “movimentação” dos objetos.
Esse é o comportamento padrão do Dynamo e é muito útil em muitos casos. No entanto, você pode achar conveniente colocar várias conexões de serviço sequencialmente e fazer com que o Dynamo crie novos objetos a cada execução em vez de modificar os originais. É possível controlar esse comportamento ao alterar as configurações de vinculação de objetos.
Alterar essa configuração forçará o Dynamo a “esquecer” os objetos que cria a cada execução. Veja a seguir um exemplo de como executar o gráfico com a vinculação de objetos desativada usando o Reprodutor do Dynamo.
Veja a seguir algumas ideias sobre como você pode expandir os recursos desse gráfico.
Coloque várias conexões de serviço simultaneamente em vez de selecionar cada linha do lote.
Ajuste as entradas para colocar limpeza de esgoto em vez de medidores de serviço de água.
Adicione um botão de alternância para permitir a colocação de uma única conexão de serviço em um lado específico da linha do lote em vez de em ambos os lados.
Posicionar referências de bloco de postes de luz ao longo de um corredor em valores de estaca especificados em um arquivo do Excel.
Missão cumprida.
Renomear as estruturas de rede de tubulação na ordem com base no estaqueamento de um alinhamento.
Se você não estiver familiarizado com o trabalho com listas, veja a seção .
Se o Reprodutor do Dynamo for algo novo para você, veja a seção .
Missão cumprida.
Usar um bloco de perfil de veículo para gerar sólidos 3D de estrutura de altura livre ao longo de um corredor.
Se os sistemas de coordenadas forem algo novo para você, veja a seção .
Se a amarra de nó for algo novo para você, veja a seção .
Se o Reprodutor do Dynamo for algo novo para você, veja a seção .
Missão cumprida.
Criar um grupo de pontos para cada descrição de ponto COGO exclusiva.
Se você não estiver familiarizado com o trabalho com listas, veja a seção .
Se o Reprodutor do Dynamo for algo novo para você, veja a seção .
Missão cumprida.
Colocar referências de bloco do medidor de serviço de água em deslocamentos especificados de uma linha do lote e desenhar uma linha para cada conexão de serviço perpendicular à linha principal de distribuição.
Se a geometria da curva do Dynamo for nova para você, veja a seção .
Se os sistemas de coordenadas forem algo novo para você, veja a seção .
Veja a seção para obter mais informações.
Se o Reprodutor do Dynamo for algo novo para você, veja a seção .
Missão cumprida.