arrow-left

All pages
gitbookPowered by GitBook
1 of 21

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Dynamo for Civil 3D

Embora o Dynamo tenha sido originalmente criado com o Revit em mente, sua versatilidade como ferramenta de programação visual se estende além do Revit. O Dynamo também está integrado no Civil 3D, permitindo que os usuários criem rotinas de automação poderosas para projetos de infraestrutura civil. É uma ferramenta extremamente útil para processar qualquer tarefa, desde as comuns até os fluxos de trabalho de projeto mais complexos, ajudando, em última análise, a economizar tempo, otimizar os projetos e tomar melhores decisões de projeto. O Dynamo oferece um conjunto completo de nós especificamente projetados para o Civil 3D, bem como bibliotecas de terceiros de uma comunidade consolidada.

Este capítulo do manual se concentrará no Dynamo for Civil 3D, começando com os conceitos básicos e chegando até tópicos mais avançados.

Guia de Introdução

Agora que você sabe um pouco mais sobre o quadro geral, vamos entrar e criar o primeiro gráfico do Dynamo no Civil 3D.

circle-info

Este é um exemplo simples que deve demonstrar a funcionalidade básica do Dynamo. É recomendável seguir as etapas em um novo documento vazio do Civil 3D.

hashtag
Abrir o Dynamo

A primeira coisa a fazer é abrir um documento vazio no Civil 3D. Depois disso, navegue até a guia Gerenciar na faixa de opções do Civil 3D e procure o painel Programação visual.

Clique no botão Dynamo, que iniciará o Dynamo em uma janela separada.

circle-info

Qual é a diferença entre o Dynamo e o Reprodutor do Dynamo?

O Dynamo é a ferramenta usada para criar e executar gráficos. O Reprodutor do Dynamo é uma forma fácil de executar gráficos sem precisar abri-los no Dynamo.

Vá para a seção quando estiver tudo pronto para experimentá-lo.

hashtag
Iniciar um novo gráfico

Quando o Dynamo estiver aberto, você verá a tela inicial. Clique em Novo para abrir um espaço de trabalho em branco.

circle-info

E os exemplos?

O Dynamo for Civil 3D vem com alguns gráficos pré-criados que podem ajudar a estimular mais ideias sobre como você pode usar o Dynamo. Recomendamos que você dê uma olhada neles em algum momento, bem como nos aqui no manual.

hashtag
Adicionar nós

Agora você deve estar olhando para um espaço de trabalho vazio. Vamos ver o Dynamo em ação. Este é nosso objetivo:

🎯 Criar um gráfico do Dynamo que inserirá texto no espaço do modelo.

Muito simples, certo? Mas antes de começarmos, precisamos abordar alguns conceitos básicos.

Os blocos de construção principais de um gráfico do Dynamo são chamados de nós. Um nó é como uma máquina pequena – você coloca dados nele, ele realiza algum trabalho nesses dados e gera um resultado. O Dynamo for Civil 3D tem uma biblioteca de nós que você pode conectar com fios para formar um gráfico que faz coisas maiores e melhores do que qualquer nó isolado pode fazer.

circle-info

Espere, e se eu nunca tiver usado o Dynamo?

Alguns desses pontos podem ser novos para você, mas isso não é um problema. Estas seções ajudarão.

OK, vamos criar nosso gráfico. Veja a seguir uma lista de todos os nós que precisaremos.

Você pode encontrar esses nós digitando seus nomes na barra de pesquisa na biblioteca ou clicando com o botão direito do mouse em qualquer lugar na tela e pesquisando.

circle-info

Como posso saber quais nós usar e onde encontrá-los?

Os nós da biblioteca são agrupados em categorias lógicas com base no que fazem. Dê uma olhada na seção para ver um tour mais aprofundado.

Veja a seguir como deve ser a aparência do gráfico final.

Vamos resumir o que fizemos aqui:

  1. Escolhemos em qual documento trabalhar. Neste caso (e em muitos casos), queremos trabalhar no documento ativo no Civil 3D.

  2. Definimos o bloco de destino onde o objeto de texto deve ser criado (neste caso, espaço do modelo).

  3. Usamos um nó String para especificar em qual camada o texto deve ser colocado.

Vamos ver os resultados do nosso novíssimo gráfico.

hashtag
Veja o resultado

De volta ao Civil 3D, assegure-se de que a guia Modelo esteja selecionada. Você deve ver o novo objeto de texto que o Dynamo criou.

circle-info

Se você não conseguir ver o texto, talvez seja necessário executar o comando ZOOM -> EXTENTS para efetuar o zoom no ponto certo.

Legal. Agora, vamos fazer algumas atualizações no texto.

De volta ao gráfico do Dynamo, vá em frente e altere alguns dos valores de entrada, como a sequência de texto, as coordenadas do ponto de inserção etc. Você deve ver o texto automaticamente atualizado no Civil 3D. Observe também que, se você desconectar uma das portas de entrada, o texto será removido. Se você conectar tudo de volta, o texto será criado novamente.

circle-info

Por que o Dynamo não insere um novo objeto de texto cada vez que o gráfico é executado?

Por padrão, o Dynamo “lembrará” os objetos que criar. Se você alterar os valores de entrada do nó, os objetos no Civil 3D serão atualizados em vez de criar objetos novos. Você pode ler mais sobre esse comportamento na seção .

🎉 Missão cumprida.

hashtag
Próximas etapas

Este exemplo apenas oferece uma pequena noção do que você pode fazer com o Dynamo for Civil 3D. Continue lendo para saber mais.

Conexão do Civil 3D

O Dynamo for Civil 3D traz o paradigma da programação visual para engenheiros e projetistas que trabalham em projetos de infraestrutura civil. Você pode pensar no Dynamo como uma espécie de multiferramenta digital para usuários do Civil 3D, seja qual for a tarefa, ele tem a ferramenta certa para o trabalho. Sua interface intuitiva permite criar rotinas poderosas e personalizáveis sem escrever uma única linha de código. Não é necessário ser um programador para usar o Dynamo, mas é preciso pensar na lógica de um programador. Juntamente com os outros capítulos do manual, este capítulo ajudará você a desenvolver suas habilidades lógicas para que você possa lidar com qualquer tarefa com uma mentalidade de projeto computacional.

hashtag
História

Criamos um ponto usando o nó Point.ByCoordinates para definir a posição em que o texto deve ser colocado.

  • Definimos as coordenadas X e Y do ponto de inserção de texto usando dois nós Number Slider.

  • Usamos outro nó String para definir o conteúdo do objeto de texto.

  • E, por fim, criamos o objeto de texto.

  • Reprodutor do Dynamo
    Exemplos de fluxos de trabalho
    Interface do usuário
    Nós e fios
    Nós e conceitos essenciais
    Biblioteca de nós
    Vinculação de objetos
    Tela inicial do Dynamo
    É possível colocar os nós da biblioteca ou clicando com o botão direito do mouse na tela
    O gráfico finalizado
    O gráfico finalizado em ação
    O Dynamo foi introduzido pela primeira vez no Civil 3D 2020 e continuou a evoluir desde então. Inicialmente instalado separadamente por meio de uma atualização de software, agora é fornecido com todas as versões do Civil 3D. Dependendo de qual versão do Civil 3D você esteja usando, você poderá observar que a interface do Dynamo tem aparência ligeiramente diferente dos exemplos mostrados neste capítulo. Isso ocorre porque houve uma revisão significativa da interface no Civil 3D 2023.
    Interface do Dynamo, Civil 3D 2020 – 2022
    Interface do Dynamo, Civil 3D 2023 – presente

    É recomendável dar uma olhada no Blog do Dynamoarrow-up-right para obter as informações mais atualizadas sobre o desenvolvimento do Dynamo. A tabela abaixo resume os principais marcos de vida do Dynamo for Civil 3D.

    Versão do Civil 3D
    Versão do Dynamo
    Observações

    2024.1

    2.18

    2024

    2.17

    Atualização da interface do usuário do Reprodutor do Dynamo

    Biblioteca de nós

    Mencionamos anteriormente que os nós são os principais blocos de construção de um gráfico do Dynamo e eles são organizados em grupos lógicos na biblioteca. No Dynamo for Civil 3D, há duas categorias (ou prateleiras) na biblioteca que contêm nós dedicados para trabalhar com objetos do AutoCAD e do Civil 3D, como alinhamentos, perfis, corredores, referências de bloco etc. O restante da biblioteca contém nós que são mais genéricos por natureza e são consistentes em todas as “versões” do Dynamo (por exemplo, Dynamo para Revit, Dynamo Sandbox etc.).

    circle-info

    Confira a seção Biblioteca para obter mais informações sobre como os nós da biblioteca principal do Dynamo são organizados.

    Biblioteca de nós do Dynamo for Civil 3D
    1. Nós específicos para trabalhar com objetos do AutoCAD e do Civil 3D

    2. Nós para uso geral

    3. Nós de pacotes de terceiros que você pode instalar separadamente

    circle-exclamation

    Se você usar os nós encontrados nas prateleiras do AutoCAD e do Civil 3D, o gráfico do Dynamo funcionará somente no Dynamo for Civil 3D. Se um gráfico do Dynamo for Civil 3D for aberto em outro lugar (no Dynamo para Revit, por exemplo), esses nós serão sinalizados com um aviso e não serão executados.

    circle-info

    Por que há duas prateleiras separadas para o AutoCAD e o Civil 3D?

    Essa organização distingue os nós de objetos nativos do AutoCAD (linhas, polilinhas, referências de bloco etc.) dos nós de objetos do Civil 3D (alinhamentos, corredores, superfícies etc.). E, do ponto de vista técnico, o AutoCAD e o Civil 3D são dois itens separados – o AutoCAD é o aplicativo base e o Civil 3D é construído com base nele.

    hashtag
    Hierarquia de nós

    Para trabalhar com os nós do AutoCAD e do Civil 3D, é importante ter uma compreensão sólida da hierarquia de objetos em cada prateleira. Você se lembra da taxonomia da biologia? Reino, Filo, Classe, Ordem, Família, Gênero, Espécie? Os objetos do AutoCAD e do Civil 3D são categorizados de forma semelhante. Vamos analisar alguns exemplos para explicar.

    hashtag
    Objetos do Civil

    Vamos usar um alinhamento como exemplo.

    Digamos que seu objetivo seja alterar o nome do alinhamento. A partir daqui, o próximo nó que você adicionaria é um nó CivilObject.SetName.

    No início, isso pode não parecer muito intuitivo. O que é um CivilObject e por que a biblioteca não tem um nó Alignment.SetName? A resposta está relacionada à reutilização e à simplicidade. Se você parar para pensar, o processo de alterar o nome de um objeto do Civil 3D será o mesmo quer o objeto seja um alinhamento, corredor, perfil ou outra coisa. Assim, em vez de ter nós repetitivos que essencialmente fazem a mesma coisa (por exemplo, Alignment.SetName, Corridor.SetName, Profile.SetName etc.), faria sentido combinar essa funcionalidade em um único nó. É exatamente isso que CivilObject.SetName faz.

    Outra maneira de pensar sobre isso é com base em relacionamentos. Um alinhamento e um corredor são tipos de Objetos do Civil, assim como uma maçã e uma pera são tipos de frutas. Os nós de Objeto do Civil se aplicam a qualquer tipo de Objeto do Civil, da mesma forma que você pode desejar usar um único descascador para remover as cascas de uma maçã e de uma pera. Sua cozinha ficaria bem bagunçada se você tivesse um descascador separado para cada tipo de fruta. Nesse sentido, a biblioteca de nós do Dynamo é como sua cozinha.

    hashtag
    Objetos

    Agora, vamos aprofundar essa ideia. Digamos que você deseje alterar a camada do alinhamento. Você usaria o nó Object.SetLayer.

    Por que não há um nó chamado CivilObject.SetLayer? Os mesmos princípios de reutilização e simplicidade que discutimos anteriormente aplicam-se aqui. A propriedade layer é algo que é comum a qualquer objeto no AutoCAD que possa ser desenhado ou inserido, como linha, polilinha, texto, referência de bloco etc. Os objetos do Civil 3D, como alinhamentos e corredores, estão na mesma categoria, e, portanto, qualquer nó que se aplica a um Objeto também pode ser usado com qualquer Objeto do Civil.

    Exemplos de fluxos de trabalho

    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 para obter mais ideias sobre como criar gráficos poderosos, flexíveis e sustentáveis.

    2023.2

    2.15

    2023

    2.13

    Atualização da interface do usuário do Dynamo

    2022.1

    2.12

    • Foram adicionadas configurações de armazenamento de dados de vinculação de objetos

    • Novos nós para controlar a vinculação de objetos

    2022

    2.10

    • Incluído na instalação principal do Civil 3D

    • Transição do IronPython para o Python.NET

    2021

    2.5

    2020.2

    2.4

    2020 Update 2

    2.4

    Novos nós adicionados

    2020.1

    2.2

    2020

    2.1

    Versão inicial

    Práticas recomendadas

    Tópicos avançados

    Com o tempo, você pode precisar ir além dos conceitos básicos e se aprofundar no funcionamento interno do Dynamo. As páginas desta seção fornecerão um esquema para conhecer funcionalidades avançadas no Dynamo for Civil 3D, para que você possa levar seus gráficos a um novo patamar.

    Terra

    Estradas

    Ferrovia

    Recursos

    Este manual é apenas o início de sua jornada com o Dynamo for Civil 3D. Há uma grande variedade de conhecimentos disponíveis em uma comunidade consolidada de usuários do Dynamo. Veja alguns desses recursos à medida que aprende.

    hashtag
    Ajuda do Civil 3D

    hashtag
    Fórum do Dynamo

    hashtag
    Autodesk University

    hashtag
    Livros

    Pacotes úteis

    Os pacotes do Dynamo são conjuntos de ferramentas desenvolvidos por terceiros para estender a funcionalidade principal do Dynamo. Eles podem ser acessados por todos e prontos para download com o clique do botão.

    circle-info

    Consulte a seção para obter mais informações sobre como começar a usar pacotes.

    Veja a seguir uma lista de alguns dos pacotes mais populares que podem levar seus gráficos do Dynamo for Civil 3D a um novo patamar.

    hashtag
    Kit de ferramentas do Civil 3D

    O Kit de ferramentas do Civil 3D é um pacote do Dynamo for Civil 3D que fornece aprimoramentos significativos aos recursos do Dynamo por meio de um grande inventário de nós adicionais.

    hashtag
    Feedback

    hashtag
    Aulas relacionadas da Autodesk University

    hashtag
    Camber

    O Camber é um pacote de código aberto do Dynamo for Civil 3D que inclui centenas de nós para trabalhar com legendas, refexs, atalhos de dados, estilos etc.

    hashtag
    Feedback

    hashtag
    Código-fonte

    hashtag
    CivilConnection

    O CivilConnection é um pacote do Dynamo para Revit de código aberto que permite a troca de informações entre o Civil 3D, o Dynamo e o Revit.

    hashtag
    Aulas relacionadas da Autodesk University

    hashtag
    Código-fonte

    hashtag
    Arkance Systems Nodes

    O Arkance Systems Nodes é um pacote do Dynamo for Civil 3D com uma grande variedade de nós úteis para trabalhar com cotas, tabelas, vistas, controle de perfuração etc.

    hashtag
    Feedback

    hashtag
    Documentação

    Pacotes
    Tópico de feedback do Kit de ferramentas do Civil 3Darrow-up-right
    Potencializar o gráfico do Dynamo com o Kit de ferramentas do Civil 3D | Autodesk Universityarrow-up-right
    Tópico de feedback do Camberarrow-up-right
    Modelagem computacional de estruturas lineares com o Civil 3D, o Revit e o Dynamo CivilConnection | Autodesk Universityarrow-up-right
    Detalhamento da ponta 2.0: métodos de modelagem computacional usando o Civil 3D, o Revit e o Dynamo | Autodesk Universityarrow-up-right
    Modelagem paramétrica e automatização da colocação de anéis universais TBM | Autodesk Universityarrow-up-right
    Tópico de feedback da biblioteca de nós da Arkance Systemsarrow-up-right

    Vinculação de objetos

    O Dynamo for Civil 3D contém um mecanismo muito poderoso para “lembrar” os objetos que são criados por cada nó. Esse mecanismo é chamado de Vinculação de objetos e permite que um gráfico do Dynamo produza resultados consistentes sempre que for executado no mesmo documento. Embora isso seja altamente desejável em muitas situações, há outras situações em que você pode desejar ter mais controle sobre o comportamento do Dynamo. Esta seção ajudará a entender como funciona a vinculação de objetos e como você pode tirar proveito dela.

    hashtag
    Exemplo

    Considere este gráfico que cria um círculo no espaço do modelo na camada atual.

    Observe o que acontece quando o raio é alterado.

    É a vinculação de objetos em ação. O comportamento padrão do Dynamo é modificar o raio do círculo, em vez de criar um novo círculo sempre que a entrada do raio é alterada. Isso ocorre porque o nó Object.ByGeometry “lembra” que criou esse círculo específico sempre que o gráfico é executado. Além disso, o Dynamo armazenará essas informações de modo que, na próxima vez que você abrir o documento do Civil 3D e executar o gráfico, ele tenha exatamente o mesmo comportamento.

    hashtag
    Outro exemplo

    Vamos examinar um exemplo no qual você pode desejar alterar o comportamento da vinculação de objetos padrão do Dynamo. Digamos que você deseje criar um gráfico que posicione o texto no meio de um círculo. No entanto, sua intenção com esse gráfico é que ele possa ser executado repetidamente e posicionar novo texto sempre que qualquer círculo for selecionado. Veja a seguir a aparência do gráfico.

    No entanto, isso é o que acontece quando um círculo diferente é selecionado.

    Parece que o texto é excluído e recriado a cada execução do gráfico. Na realidade, a posição do texto está sendo modificada, dependendo de qual círculo está selecionado. Portanto, é o mesmo texto, só que em um lugar diferente. Para criar um novo texto a cada vez, é necessário modificar as configurações de vinculação de objetos do Dynamo para que nenhum dado de vinculação seja mantido (consulte abaixo).

    Depois de fazer essa alteração, temos o comportamento que procuramos.

    hashtag
    Configurações de vinculação

    O Dynamo for Civil 3D permite modificar o comportamento padrão da vinculação de objetos por meio das configurações Armazenamento de dados de vinculação no menu do Dynamo.

    circle-info

    Observe que as opções de Armazenamento de dados de vinculação estão disponíveis no Civil 3D 2022.1 e versões posteriores.

    Todas as opções estão ativadas por padrão. Veja a seguir um resumo do que cada opção faz.

    hashtag
    Opção 1: Nenhum dado de vinculação mantido

    Quando essa opção está ativada, o Dynamo “esquecerá” os objetos que criou na última vez que o gráfico foi executado. Assim, o gráfico pode ser executado em qualquer desenho em qualquer situação e criará novos objetos a cada vez.

    circle-info

    Quando usar

    Use essa opção quando desejar que o Dynamo “esqueça” tudo sobre o que fez em execuções anteriores e crie novos objetos todas as vezes.

    hashtag
    Opção 2: Armazenar no desenho para o Dynamo

    Essa opção significa que os metadados da vinculação de objetos serão serializados no gráfico (arquivo .dyn) quando ele for salvo. Se você fechar/reabrir o gráfico e executá-lo no mesmo desenho, tudo deverá funcionar da mesma forma que você deixou. Se o gráfico for executado em um desenho diferente, os dados de vinculação serão removidos do gráfico e novos objetos serão criados. Isso significa que, se você abrir o desenho original e executar o gráfico novamente, serão criados novos objetos além dos antigos.

    circle-info

    Quando usar

    Use essa opção quando desejar que o Dynamo “lembre-se” dos objetos que criou na última vez que foi executado em um desenho específico.

    circle-exclamation

    Essa opção é mais adequada para situações em que é possível manter uma relação 1:1 entre um desenho específico e um gráfico do Dynamo. As opções 1 e 3 são mais adequadas para gráficos projetados para execução em vários desenhos.

    hashtag
    Opção 3: Armazenar no desenho para o Dynamo

    Essa opção é semelhante à Opção 2, exceto que os dados de vinculação de objetos são serializados no desenho em vez de serem no gráfico (arquivo .dyn). Se você fechar/reabrir o gráfico e executá-lo no mesmo desenho, tudo deverá funcionar da mesma forma que você deixou. Se o gráfico for executado em um desenho diferente, os dados de vinculação ainda serão preservados no desenho original, já que ele é salvo no desenho e não no gráfico.

    circle-info

    Quando usar

    Use essa opção quando desejar usar o mesmo gráfico em vários desenhos e que o Dynamo “lembre” do que fez em cada um deles.

    hashtag
    Opção 4: Armazenar no desenho para o Reprodutor do Dynamo

    A primeira coisa a observar com essa opção é que ela não tem efeito sobre como o gráfico interage com o desenho ao executar o gráfico através da interface principal do Dynamo. Essa opção somente se aplica quando o gráfico é executado usando o Reprodutor do Dynamo.

    circle-info

    Se o Reprodutor do Dynamo for algo novo para você, veja a seção .

    Se o gráfico for executado usando a interface principal do Dynamo e, em seguida, fechar e executar o mesmo gráfico usando o Reprodutor do Dynamo, ele criará novos objetos além dos que criou antes. No entanto, quando o Reprodutor do Dynamo executar o gráfico uma vez, ele serializará os dados da vinculação de objetos no desenho. Portanto, se o gráfico for executado várias vezes através do Reprodutor do Dynamo, ele atualizará os objetos em vez de criar novos. Se o gráfico for executado através do Reprodutor do Dynamo em um desenho diferente, os dados de vinculação ainda serão preservados no desenho original, já que ele será salvo no desenho e não no gráfico.

    circle-info

    Quando usar

    Use essa opção quando desejar executar um gráfico usando o Reprodutor do Dynamo em vários desenhos e que ele “lembre” o que fez em cada um deles.

    Reprodutor do Dynamo
    Um gráfico simples para criar um círculo
    Modificação da entrada de raio no Dynamo
    Um gráfico simples que posiciona texto no centro de um círculo selecionado
    Comportamento padrão do Dynamo ao selecionar um novo círculo
    Configurações de vinculação de objetos
    Comportamento com a vinculação de objetos desativada
    Vinculação de objetos

    Estrutura da altura livre

    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.

    hashtag
    Objetivo

    🎯 Usar um bloco de perfil de veículo para gerar sólidos 3D de estrutura de altura livre ao longo de um corredor.

    hashtag
    Principais conceitos

    • Trabalhar com linhas de recurso do corredor

    • Transformar a geometria entre sistemas de coordenadas

    • Criar sólidos por elevação

    hashtag
    Compatibilidade de versão

    circle-check

    Este gráfico será executado no Civil 3D 2020 e versões superiores.

    hashtag
    Conjunto de dados

    Comece fazendo o download dos arquivos de amostra abaixo e, em seguida, abrindo o arquivo DWG e o gráfico do Dynamo.

    hashtag
    Solução

    Apresentamos a seguir uma visão geral da lógica no gráfico.

    1. Obter linhas de recurso da linha base do corredor especificada

    2. Gerar sistemas de coordenadas ao longo da linha de recurso do corredor no espaçamento desejado

    3. Transformar a geometria do bloco do perfil para os sistemas de coordenadas

    Vamos começar

    hashtag
    Obter os dados do corredor

    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.

    hashtag
    Gerar os sistemas de coordenadas

    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.

    circle-info

    Se os sistemas de coordenadas forem algo novo para você, veja a seção .

    1. 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.

    circle-info

    Se a amarra de nó for algo novo para você, veja a seção .

    hashtag
    Transformar a geometria de bloco

    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.

    1. Isso obtém a definição de bloco do documento.

    2. Esses nós obtêm a geometria do Dynamo dos objetos dentro do bloco.

    3. Esses nós definem essencialmente o sistema de coordenadas com base no qual estamos transformando a geometria.

    E aqui está o que obtemos no Dynamo.

    hashtag
    Gerar sólidos

    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.

    hashtag
    Sólidos de saída para o 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.

    hashtag
    Resultado

    Veja um exemplo de como executar o gráfico usando o Reprodutor do Dynamo.

    circle-info

    Se o Reprodutor do Dynamo for algo novo para você, veja a seção .

    🎉 Missão cumprida.

    hashtag
    Ideias

    Veja a seguir algumas ideias sobre como você pode expandir os recursos desse gráfico.

    circle-info

    Adicione a capacidade de usar diferentes intervalos de estacas separadamente para cada trilha.

    circle-info

    Divida os sólidos em segmentos menores que podem ser analisados individualmente para detectar interferências.

    circle-info

    Verifique se os sólidos de envelope fazem interseção com recursos e colore os que apresentam interferência.

    Renomear estruturas

    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.

    hashtag
    Objetivo

    Controlar o comportamento do nó com configurações de amarra

    Elevar um sólido entre os perfis

  • Criar sólidos no Civil 3D

  • E, por fim, esse nó faz o trabalho real de transformar a geometria.

  • Observe a amarra Mais longa nesse nó.

  • file-download
    185KB
    Rail_ClearanceEnvelope (1).dyn
    arrow-up-right-from-squareOpen
    file-download
    22MB
    Rail_ClearanceEnvelope.dwg
    arrow-up-right-from-squareOpen
    Vetor, plano e sistema de coordenadas
    O que é uma lista?
    Reprodutor do Dynamo
    Seleção do corredor, da linha base e da linha de recurso
    Obtenção dos sistemas de coordenadas ao longo das linhas de recurso do corredor
    Visualização da transformação da geometria entre sistemas de coordenadas.
    Geometria do bloco do perfil do veículo após a transformação
    Sólidos do Dynamo após a transição
    Geração de saída dos sólidos para o Civil 3D
    Execução do gráfico usando o Reprodutor do Dynamo e visualização dos resultados no Civil 3D
    🎯 Renomear as estruturas de rede de tubulação na ordem com base no estaqueamento de um alinhamento.

    hashtag
    Principais conceitos

    • 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

    hashtag
    Compatibilidade de versão

    circle-check

    Este gráfico será executado no Civil 3D 2020 e versões superiores.

    hashtag
    Conjunto de dados

    Comece fazendo o download dos arquivos de amostra abaixo e, em seguida, abrindo o arquivo DWG e o gráfico do Dynamo.

    hashtag
    Solução

    Apresentamos a seguir uma visão geral da lógica no gráfico.

    1. Selecionar as estruturas por camada

    2. Obter as localizações da estrutura

    3. Filtrar as estruturas por deslocamento e, em seguida, classificá-las por estaca

    4. Gerar os novos nomes

    5. Renomear as estruturas

    Vamos começar

    hashtag
    Selecionar as estruturas

    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).

    Seleção das estruturas em uma determinada camada
    1. Esse nó assegura que não recuperemos acidentalmente quaisquer tipos de objetos indesejados que possam compartilhar a mesma camada que as estruturas.

    hashtag
    Obter as localizações da estrutura

    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.

    Uso de caixas delimitadoras para obter o ponto de inserção aproximado de cada estrutura

    Usaremos estes pontos para obter a estaca e o deslocamento das estruturas em relação a um alinhamento selecionado.

    hashtag
    Filtrar e classificar

    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.

    1. O alinhamento selecionado

    2. As estruturas que queremos renomear

    3. 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.

    circle-info

    Se você não estiver familiarizado com o trabalho com listas, veja a seção Trabalhar com listas.

    Filtragem e classificação das estruturas
    1. Verificar se o deslocamento da estrutura é menor que o valor de limite

    2. Substituir os valores nulos por false

    3. Filtrar a lista de estruturas e estacas

    4. Classificar as estruturas pelas estacas

    hashtag
    Gerar os novos nomes

    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”).

    Geração dos novos nomes das estruturas

    hashtag
    Renomear as estruturas

    E, por último, mas não menos importante, renomeamos as estruturas.

    Definir os nomes das estruturas

    hashtag
    Resultado

    Veja um exemplo de como executar o gráfico usando o Reprodutor do Dynamo.

    Execução do gráfico usando o Reprodutor do Dynamo e visualização dos resultados no Civil 3D
    circle-info

    Se o Reprodutor do Dynamo for algo novo para você, veja a seção Reprodutor do Dynamo.

    🎉 Missão cumprida.

    hashtag
    Bônus: Visualização no 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.

    Visualização da geometria das estruturas e das linhas de recurso do corredor

    Agora podemos entender melhor como funciona o processo de filtragem das estruturas por deslocamento.

    Ajuste do valor limite de deslocamento do alinhamento e visualização das estruturas afetadas no Dynamo

    hashtag
    Ideias

    Veja a seguir algumas ideias sobre como você pode expandir os recursos desse gráfico.

    circle-info

    Renomeie as estruturas com base em seu Alinhamento mais próximo em vez de selecionar um alinhamento específico.

    circle-info

    Renomeie as tubulações além das estruturas.

    circle-info

    Defina as camadas das estruturas com base em seu trecho.

    file-download
    139KB
    Utilities_RenameStructures.dyn
    arrow-up-right-from-squareOpen
    file-download
    6MB
    Utilities_RenameStructures.dwg
    arrow-up-right-from-squareOpen

    Posicionamento de serviço

    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.

    hashtag
    Objetivo

    🎯 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.

    hashtag
    Principais conceitos

    • 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

    hashtag
    Compatibilidade de versão

    circle-check

    Este gráfico será executado no **Civil 3D 2020** e versões superiores.

    hashtag
    Conjunto de dados

    Comece fazendo o download dos arquivos de amostra abaixo e, em seguida, abrindo o arquivo DWG e o gráfico do Dynamo.

    hashtag
    Solução

    Apresentamos a seguir uma visão geral da lógica no gráfico.

    1. Obter a geometria da curva para a linha principal de distribuição

    2. Obter a geometria da curva para uma linha do lote selecionada pelo usuário, revertendo se necessário

    3. Gerar os pontos de inserção para os medidores de serviço

    Vamos começar

    hashtag
    Obter a geometria principal de distribuição

    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.

    circle-info

    Se a geometria da curva do Dynamo for nova para você, veja a seção [4-curves.md](../../../5\_essential\_nodes\_and\_concepts/5-2\_geometry-for-computational-design/4-curves.md "mention").

    hashtag
    Obter a geometria da linha do lote

    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.

    1. Obtenha os pontos inicial e final da linha do lote.

    2. Meça a distância de cada ponto até a linha principal de distribuição e, em seguida, descubra qual distância é maior.

    3. 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.

    hashtag
    Gerar pontos de inserção

    É 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.

    circle-info

    Se os sistemas de coordenadas forem algo novo para você, veja a seção [2-vectors.md](../../../5\_essential\_nodes\_and\_concepts/5-2\_geometry-for-computational-design/2-vectors.md "mention").

    hashtag
    Obter os pontos de conexã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.

    1. Essa é a PolyCurve da linha principal de distribuição

    2. Esses são os pontos de inserção do medidor de serviço

    hashtag
    Criar objetos

    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.

    hashtag
    Resultado

    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.

    hashtag
    Bônus: ativar a colocação sequencial

    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.

    circle-info

    Veja a seção [object-binding.md](../../advanced-topics/object-binding.md "menção") para obter mais informações.

    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.

    circle-info

    Se o Reprodutor do Dynamo for algo novo para você, veja a seção [dynamo-player.md](../../dynamo-player.md "mention").

    🎉 Missão cumprida.

    hashtag
    Ideias

    Veja a seguir algumas ideias sobre como você pode expandir os recursos desse gráfico.

    circle-info

    Coloque **várias conexões de serviço** simultaneamente em vez de selecionar cada linha do lote.

    circle-info

    Ajuste as entradas para colocar **limpeza de esgoto** em vez de medidores de serviço de água.

    circle-info

    **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.

    Civil 3DDynamochevron-right

    Criar referências de bloco

  • Controlar as configurações de vinculação de objetos

  • 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

  • file-download
    108KB
    Land_ServicePlacement.dyn
    arrow-up-right-from-squareOpen
    file-download
    842KB
    Land_ServicePlacement.dwg
    arrow-up-right-from-squareOpen
    Obtenção dos objetos do Civil 3D e união de tudo em uma única PolyCurve
    Seleção de uma linha do lote e certificação de que ela tenha a direção correta
    Criação de pontos de inserção para os medidores de serviço
    Obtenção de pontos perpendiculares na linha principal de distribuição
    Ajuste dos parâmetros de entrada no Dynamo e visualização imediata dos resultados no Civil 3D
    Comportamento quando a vinculação de objetos está ativada
    Configurações da vinculação de objetos do Dynamo
    Execução do gráfico usando o Reprodutor do Dynamo e visualização dos resultados no Civil 3D
    Dynamo for Civil 3D: Automated Checks of Open-Format Road Design Made Easy | Autodesk Universitywww.autodesk.comchevron-right
    Getting Started with Dynamo for Civil 3D: A Beginner’s Guide | Autodesk Universitywww.autodesk.comchevron-right
    Dynamo in Civil 3D Introduction—Unlocking the Mystery of Scripting | Autodesk Universitywww.autodesk.comchevron-right
    Underground Utility GIS Features to Civil 3D Pipe Networks with Dynamo | Autodesk Universitywww.autodesk.comchevron-right
    Computational Design for Civil Engineers | Autodesk Universitywww.autodesk.comchevron-right
    Arkance Systems Node Library for Civil 3D DynamoHuizBlogchevron-right
    Logo
    Logo
    Logo
    Logo
    GitHub - Autodesk/civilconnection: CivilConnection enables the exchange of information between Civil 3D, Dynamo and Revit.GitHubchevron-right
    Logo
    Civil 3D and Dynamo—Dynamic Culvert Design and Analysis | Autodesk Universitywww.autodesk.comchevron-right
    Generating, Transforming, and Analyzing Railway Design Data in Civil 3D and Dynamo | Autodesk Universitywww.autodesk.comchevron-right
    Optimize Road Design with Dynamo for Civil 3D and Generative Design | Autodesk Universitywww.autodesk.comchevron-right
    Mundane Civil 3D Tasks to Automate with Dynamo for Civil 3D | Autodesk Universitywww.autodesk.comchevron-right

    Python e Civil 3D

    Embora o Dynamo seja extremamente poderoso como uma ferramenta de programação visual, também é possível ir além dos nós e fios e escrever código em forma textual. Há duas maneiras de fazer isso:

    1. Escrever DesignScript usando um bloco de código

    2. Escrever Python usando um nó Python

    Esta seção se concentrará em como aproveitar o Python no ambiente do Civil 3D para tirar proveito das APIs .NET do AutoCAD e do Civil 3D.

    circle-info

    Dê uma olhada na seção para obter informações mais gerais sobre como usar o Python no Dynamo.

    hashtag
    Documentação das APIs

    O AutoCAD e o Civil 3D têm várias APIs disponíveis que permitem que desenvolvedores como você estendam o produto principal com funcionalidade personalizada. No contexto do Dynamo, são as APIs .NET gerenciadas que são relevantes. Os links a seguir são essenciais para entender a estrutura das APIs e como elas funcionam.

    circle-info

    Ao longo desta seção, pode haver alguns conceitos com os quais você não está familiarizado, como bancos de dados, transações, métodos, propriedades etc. Muitos desses conceitos são fundamentais para trabalhar com as APIs .NET e não são específicos do Dynamo ou do Python. Está além do escopo desta seção do Manual discutir esses itens em detalhes; portanto, recomendamos consultar os links acima com frequência para obter mais informações.

    hashtag
    Modelo de código

    Quando você editar um novo nó Python pela primeira vez, ele será preenchido previamente com o código do modelo para começar. Veja a seguir um detalhamento do modelo com explicações sobre cada bloco.

    1. Importa os módulos sys e clr, que são necessários para que o interpretador Python funcione corretamente. Em particular, o módulo clr permite que os namespaces .NET sejam tratados essencialmente como pacotes Python.

    2. Carrega as montagens padrão (ou seja, DLLs) para trabalhar com as APIs .NET gerenciadas para o AutoCAD e o Civil 3D.

    circle-info

    Deseja personalizar? É possível modificar o modelo Python padrão editando o arquivo PythonTemplate.py localizado em C:\ProgramData\Autodesk\C3D <versão>\Dynamo.

    hashtag
    Exemplo

    Vamos analisar um exemplo para demonstrar alguns dos conceitos essenciais de escrever scripts Python no Dynamo for Civil 3D.

    hashtag
    Objetivo

    🎯 Obter a geometria de limite de todas as áreas de contribuição em um desenho.

    hashtag
    Conjunto de dados

    Veja a seguir arquivos de exemplos que você pode consultar para este exercício.

    hashtag
    Visão geral da solução

    Apresentamos a seguir uma visão geral da lógica no gráfico.

    1. Revisar a documentação da API do Civil 3D

    2. Selecionar todas as áreas de contribuição no documento por nome de camada

    3. “Expandir” os objetos do Dynamo para acessar os membros internos da API do Civil 3D

    Vamos começar

    hashtag
    Revisar a documentação da API

    Antes de começarmos a criar nosso gráfico e escrever código, é uma boa ideia dar uma olhada na documentação da API do Civil 3D e ter uma ideia do que a API disponibiliza para nós. Neste caso, há uma que retornará os pontos de limite da área de contribuição. Observe que essa propriedade retorna um objeto Point3dCollection, que o Dynamo não saberá como tratar. Em outras palavras, não poderemos criar uma PolyCurve com base em um objeto Point3dCollection; portanto, acabaremos precisando converter tudo em pontos do Dynamo. Haverá mais informações sobre isso mais tarde.

    hashtag
    Obter todas as áreas de contribuição

    Agora podemos começar a criar nossa lógica do gráfico. A primeira coisa a fazer é obter uma lista de todas as áreas de contribuição no documento. Há nós disponíveis para isso; portanto, não precisamos incluí-los no script Python. O uso de nós oferece uma melhor visibilidade para outra pessoa que possa ler o gráfico (em vez de encher o script Python de código) e também mantém o script Python focado em uma coisa: retornar os pontos de limite das áreas de contribuição.

    Observe aqui que a saída do nó Todos os objetos na camada é uma lista de CivilObjects. Isso ocorre porque o Dynamo for Civil 3D não tem nós atualmente para trabalhar com áreas de contribuição, o que é a razão pela qual precisamos acessar a API por meio do Python.

    hashtag
    Expandir objetos

    Antes de avançarmos, temos de abordar brevemente um conceito importante. Na seção , discutimos como Objetos e CivilObjects são relacionados. Para adicionar um pouco mais de detalhes a isso, um Objeto do Dynamo é um wrapper em torno de uma Entidade do AutoCAD. De forma similar, um CivilObject do Dynamo é um wrapper em torno de uma Entidade do Civil 3D. É possível “expandir” um objeto acessando suas propriedades InternalDBObject ou InternalObjectId.

    Tipo do Dynamo
    Pacotes
    circle-exclamation

    Como regra geral, é mais seguro obter a ID de objeto usando a propriedade `InternalObjectId` e, em seguida, acessar o objeto empacotado em uma transação. Isso ocorre porque a propriedade `InternalDBObject` retornará um DBObject do AutoCAD que não está em um estado gravável.

    hashtag
    Script Python

    Aqui está o script Python completo que faz o trabalho de acessar os objetos de área de contribuição internos que estão obtendo seus pontos de limite. As linhas realçadas representam as que são modificadas/adicionadas do código do modelo padrão.

    circle-info

    Clique no texto sublinhado no script para obter uma explicação sobre cada linha.

    circle-exclamation

    Como regra geral, é recomendável incluir a maior parte da lógica do script dentro de uma transação. Isso garante o acesso seguro aos objetos que o script está lendo/gravando. Em muitos casos, a omissão de uma transação pode causar um erro fatal.

    hashtag
    Criar PolyCurves

    Nesta fase, o script Python deve gerar uma lista de pontos do Dynamo que você pode ver na visualização do plano de fundo. A última etapa é simplesmente criar PolyCurves com base nos pontos. Observe que isso também pode ser feito diretamente no script Python, mas nós o colocamos intencionalmente fora do script em um nó para que ele fique mais visível. Veja a seguir a aparência final do gráfico.

    hashtag
    Resultado

    E aqui está a geometria final do Dynamo.

    🎉 Missão cumprida.

    hashtag
    IronPython versus CPython

    Apenas uma rápida observação aqui antes de finalizarmos. Dependendo de qual versão do Civil 3D você está usando, o nó Python pode ser configurado de forma diferente. No Civil 3D 2020 e 2021, o Dynamo usava uma ferramenta chamada IronPython para mover dados entre objetos .NET e scripts Python. No entanto, no Civil 3D 2022, o Dynamo fez a transição para usar o interpretador Python nativo padrão (também conhecido como CPython), que usa o Python 3. Os benefícios dessa transição incluem o acesso a bibliotecas modernas e populares, além de novos recursos de plataforma, manutenção essencial e patches de segurança.

    circle-info

    Você pode ler mais sobre essa transição e sobre como atualizar os scripts herdados no . Se você desejar continuar usando o IronPython, basta instalar o pacote DynamoIronPython2.7 usando o Dynamo Package Manager.

    GitHub - mzjensen/Camber: An open-source Dynamo package for Civil 3D.GitHubchevron-right

    Adiciona referências aos namespaces padrão do AutoCAD e do Civil 3D. Isso é equivalente às diretivas using ou Imports em C# ou VB.NET (respectivamente).

  • As portas de entrada do nó são acessíveis usando uma lista predefinida chamada IN. É possível acessar os dados em uma porta específica usando seu número de índice, por exemplo, dataInFirstPort = IN[0].

  • Obtém o documento e o editor ativos.

  • Bloqueia o documento e inicia uma transação do banco de dados.

  • Aqui você deve colocar a maior parte da lógica do script.

  • Retire o comentário dessa linha para confirmar a transação após seu trabalho principal ter sido concluído.

  • Se desejar gerar dados do nó, atribua-os à variável OUT no final do script.

  • Criar pontos do Dynamo com base em pontos do AutoCAD

  • Criar PolyCurves com base em pontos

  • Objeto Autodesk.AutoCAD.DynamoNodes.Object

    Entidade Autodesk.AutoCAD.DatabaseServices.Entity

    CivilObject Autodesk.Civil.DynamoNodes.CivilObject

    Entidade Autodesk.Civil.DatabaseServices.Entity

    Python
    Guia do Desenvolvedor da API .NET do AutoCADarrow-up-right
    Guia de Referência da API .NET do AutoCADarrow-up-right
    Guia do Desenvolvedor de API .NET do Civil 3Darrow-up-right
    Guia de Referência da API .NET do Civil 3Darrow-up-right
    file-download
    15KB
    Python_Catchments.dyn
    arrow-up-right-from-squareOpen
    file-download
    961KB
    Python_Catchments.dwg
    arrow-up-right-from-squareOpen
    propriedade na classe Área de contribuiçãoarrow-up-right
    Biblioteca de nós
    Blog do Dynamoarrow-up-right
    Modelo Python padrão no Civil 3D
    Obtenção de todas as áreas de contribuição no documento por camada
    Gráfico final
    PolyCurves do Dynamo resultantes para os limites da área de contribuição
    # Carregar as bibliotecas Standard e do DesignScript do Python
    import sys
    import clr
    
    # Adicionar montagens para o AutoCAD e o Civil 3D
    clr.AddReference('AcMgd')
    clr.AddReference('AcCoreMgd')
    clr.AddReference('AcDbMgd')
    clr.AddReference('AecBaseMgd')
    clr.AddReference('AecPropDataMgd')
    clr.AddReference('AeccDbMgd')
    
    clr.AddReference('ProtoGeometry')
    
    # Importar referências do AutoCAD
    from Autodesk.AutoCAD.Runtime import *
    from Autodesk.AutoCAD.ApplicationServices import *
    from Autodesk.AutoCAD.EditorInput import *
    from Autodesk.AutoCAD.DatabaseServices import *
    from Autodesk.AutoCAD.Geometry import *
    
    # Importar referências do Civil3D
    from Autodesk.Civil.ApplicationServices import *
    from Autodesk.Civil.DatabaseServices import *
    
    from Autodesk.DesignScript.Geometry import Point as DynPoint
    
    # As entradas para esse nó serão armazenadas como uma lista nas variáveis IN.
    objs = IN[0]
    
    output = [] 
    
    if objs is None:
        sys.exit(“A entrada é nula ou está vazia.”)
    
    if not isinstance(objs, list):
        objs = [objs]
        
    adoc = Application.DocumentManager.MdiActiveDocument
    editor = adoc.Editor
    
    with adoc.LockDocument():
        with adoc.Database as db:
            
            with db.TransactionManager.StartTransaction() as t:
                for obj in objs:              
                    id = obj.InternalObjectId
                    aeccObj = t.GetObject(id, OpenMode.ForRead)                
                    if isinstance(aeccObj, Catchment):
                        catchment = aeccObj
                        acPnts = catchment.BoundaryPolyline3d                    
                        dynPnts = []
                        para acPnt em acPnts:
                            pnt = DynPoint.ByCoordinates(acPnt.X, acPnt.Y, acPnt.Z)
                            dynPnts.append(pnt)
                        output.append(dynPnts)
                
                # Confirmar antes de finalizar a transação
                t.Commit()
                pass
                
    # Atribua a saída à variável OUT.
    OUT = output
    Logo
    Logo
    Logo
    Logo
    Logo

    Utilitários

    Logo
    Logo

    Levantamento topográfico

    Dynamo for Civil 3Dbooks.huiz.netchevron-right
    Logo

    Posicionamento de postes de luz

    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.

    hashtag
    Objetivo

    🎯 Posicionar referências de bloco de postes de luz ao longo de um corredor em valores de estaca especificados em um arquivo do Excel.

    hashtag
    Principais conceitos

    • 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

    hashtag
    Compatibilidade de versão

    circle-check

    Este gráfico será executado no Civil 3D 2020 e versões superiores.

    hashtag
    Conjunto de dados

    Comece fazendo o download dos arquivos de amostra abaixo e, em seguida, abrindo o arquivo DWG e o gráfico do Dynamo.

    circle-info

    É melhor que o arquivo do Excel seja salvo no mesmo diretório que o gráfico do Dynamo.

    hashtag
    Solução

    Apresentamos a seguir uma visão geral da lógica no gráfico.

    1. Ler o arquivo do Excel e importar os dados para o Dynamo

    2. Obter as linhas de recurso da linha base do corredor especificada

    3. Gerar os sistemas de coordenadas ao longo da linha de recurso do corredor nas estacas desejadas

    Vamos começar

    hashtag
    Obter os dados do Excel

    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.

    circle-info

    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.

    circle-info

    Se os dicionários forem algo novo para você, veja a seção .

    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.

    hashtag
    Obter as linhas de recurso do corredor

    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.

    1. Selecione o modelo de corredor pelo nome.

    2. Obtenha uma linha base específica dentro do corredor.

    3. Obtenha uma linha do recurso na linha base pelo código de ponto.

    hashtag
    Gerar os sistemas de coordenadas

    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.

    circle-info

    Se os sistemas de coordenadas forem algo novo para você, veja a seção .

    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.

    circle-info

    Se os blocos de código forem algo novo para você, veja a seção .

    hashtag
    Criar as referências de bloco

    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.

    hashtag
    Resultado

    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.

    circle-info

    Você pode ler mais sobre os modos de execução de gráficos na seção .

    Veja um exemplo de como executar o gráfico usando o Reprodutor do Dynamo.

    circle-info

    Se o Reprodutor do Dynamo for algo novo para você, veja a seção .

    🎉 Missão cumprida.

    hashtag
    Bônus: Visualização no 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.

    1. 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.

    2. 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.

    hashtag
    Ideias

    Veja a seguir algumas ideias sobre como você pode expandir os recursos desse gráfico.

    circle-info

    Adicione uma coluna de rotação ao arquivo do Excel e use-a para controlar a rotação dos sistemas de coordenadas.

    circle-info

    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.

    circle-info

    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.

    Posicionar referências de bloco

  • Visualizar a geometria no Dynamo

  • Usar os sistemas de coordenadas para posicionar referências de bloco no espaço do modelo

    file-download
    232KB
    Roads_CorridorBlockRefs (1).dyn
    arrow-up-right-from-squareOpen
    file-download
    54MB
    Roads_CorridorBlockRefs.dwg
    arrow-up-right-from-squareOpen
    file-download
    12KB
    LightPoles.xlsx
    arrow-up-right-from-squareOpen
    Dicionários no Dynamo
    Vetor, plano e sistema de coordenadas
    Blocos de código e DesignScript
    Interface do usuário
    Reprodutor do Dynamo
    Estrutura da tabela de arquivos do Excel
    Importação de dados do Excel para o Dynamo
    Colocar os dados do Excel em um dicionário
    Recuperação de dados do dicionário
    Obtenção dos sistemas de coordenadas ao longo das linhas de recurso do corredor
    Obtenção das definições de bloco que desejamos do documento
    Criação das referências de bloco no espaço do modelo
    Realização de atualizações no arquivo do Excel e visualização rápida dos resultados no Civil 3D
    Execução do gráfico usando o Reprodutor do Dynamo e visualização dos resultados no Civil 3D
    Visualização da geometria do corredor no Dynamo
    Helphelp.autodesk.comchevron-right

    Reprodutor do Dynamo

    O Reprodutor do Dynamo fornece uma forma simplificada para executar gráficos do Dynamo no Civil 3D. Após a criação dos gráficos, não é necessário nenhum conhecimento do Dynamo para usar o Reprodutor e executar os gráficos. Isso facilita o compartilhamento de gráficos com outras pessoas que podem não estar interessadas em analisar os detalhes de nós e fios.

    circle-info

    Para obter mais informações sobre o Reprodutor do Dynamo no Civil 3D, consulte a documentação fornecida no site .

    Ajuda do Civil 3Darrow-up-right
    Executar o gráfico usando o Reprodutor do Dynamo e ver os resultados no Civil 3D

    Gerenciamento de grupo de pontos

    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.

    hashtag
    Objetivo

    🎯 Criar um grupo de pontos para cada descrição de ponto COGO exclusiva.

    hashtag
    Principais conceitos

    • Trabalhar com listas

    • Agrupar objetos similares com o nó List.GroupByKey

    • Mostrar a saída personalizada no Reprodutor do Dynamo

    hashtag
    Compatibilidade de versão

    circle-check

    Este gráfico será executado no Civil 3D 2020 e versões superiores.

    hashtag
    Conjunto de dados

    Comece fazendo o download dos arquivos de amostra abaixo e, em seguida, abrindo o arquivo DWG e o gráfico do Dynamo.

    hashtag
    Solução

    Apresentamos a seguir uma visão geral da lógica no gráfico.

    1. Obter todos os pontos COGO no documento

    2. Agrupar os pontos COGO por descrição

    3. Criar os grupos de pontos

    Vamos começar

    hashtag
    Obter os pontos COGO

    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.

    circle-info

    Se você não estiver familiarizado com o trabalho com listas, veja a seção .

    hashtag
    Agrupar os pontos por descrição

    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.

    hashtag
    Criar os grupos de pontos

    O trabalho árduo está feito. A etapa final é criar novos grupos de pontos do Civil 3D com base em pontos COGO agrupados.

    hashtag
    Resumo da saída

    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.

    hashtag
    Resultado

    Veja um exemplo de como executar o gráfico usando o Reprodutor do Dynamo.

    circle-info

    Se o Reprodutor do Dynamo for algo novo para você, veja a seção .

    🎉 Missão cumprida.

    hashtag
    Ideias

    Veja a seguir algumas ideias sobre como você pode expandir os recursos desse gráfico.

    circle-info

    Modifique o agrupamento de pontos para que seja baseado na descrição completa em vez de na descrição original.

    circle-info

    Agrupe os pontos em algumas outras categorias predefinidas que você escolher (por exemplo, “Instantâneos no nível do solo”, “Monumentos” etc.)

    circle-info

    Cria automaticamente superfícies TIN para pontos em determinados grupos.

    Gerar a saída de um resumo para o Reprodutor do Dynamo

    file-download
    33KB
    Survey_CreatePointGroups.dyn
    arrow-up-right-from-squareOpen
    file-download
    1MB
    Survey_CreatePointGroups.dwg
    arrow-up-right-from-squareOpen
    Trabalhar com listas
    Reprodutor do Dynamo
    Obter todos os grupos de pontos e pontos COGO
    Agrupar os pontos COGO por descrição
    Criar novos grupos de pontos
    Definir um nó como É saída exibirá seu conteúdo na saída do Reprodutor do Dynamo
    Execução do gráfico usando o Reprodutor do Dynamo e visualização dos resultados no espaço da ferramenta
    Logo
    Logo