Cria novos nós no Autodesk Dynamo para Civil 3D a fim de permitir a criação de pontos, a adição de pontos a um grupo de pontos e a criação de uma superfície a partir de um grupo de pontos.
Script de amostra do Dynamo: CoGoPoints.dyn
Projeto de amostra: CoGoPoints.dwg
Os nós criados após a importação de CoGoPoints.dll são mostrados na ilustração a seguir.
Pontos COGO são criados no desenho e adicionados a um grupo de pontos; é criada uma superfície a partir desse grupo de pontos.
![]() |
![]() |
O Dynamo fornece duas maneiras de executar mecanismos de traçamento. Uma delas é usar o método existente (Estrutura comum) ao criar novos nós. A outra é escrever um código de traçamento usando um modelo.
Para executar um mecanismo de traçamento para novos nós, é necessário que as classes sejam derivadas do Autodesk.AutoCAD.DynamoNodes.ObjectBase ou do Autodesk.AutoCAD.DynamoNodes.Object. Um nó traçado deve ter uma saída da classe de nó criada para tornar o traçamento válido.
A função Estrutura comum é criada no Autodesk.AutoCAD.DynamoNodes.ObjectBase e no Autodesk.AutoCAD.DynamoNodes.Object.
Autodesk.AutoCAD.DynamoNodes.ObjectBase | Autodesk.AutoCAD.DynamoNodes.Object |
---|---|
![]() |
![]() |
É possível criar classes para herdar o Autodesk.AutoCAD.DynamoNodes.ObjectBase ou o Autodesk.AutoCAD.DynamoNodes.Object. Você pode usar os métodos acima quando criar novos nós de acordo com a relação de herança. Por exemplo, observe o seguinte nó: PointGroup.CreateFromPoints.
O nó cria um grupo de pontos no Civil 3D a partir de uma lista de pontos.
Autodesk.Civil.DatabaseServices.PointGroup define um grupo de pontos no Civil 3D com base em Autodesk.AutoCAD.DatabaseServices.Object. É necessário criar uma nova classe chamada Grupo de pontos derivada do Autodesk.AutoCAD.DynamoNodes.Objectbase para encapsular o tipo de grupo de pontos do Civil 3D. É possível adicionar o atributo DynamoServices.RegisterForTrace à classe Grupo de pontos para que o mecanismo de traçamento possa ser executado. Isso não é obrigatório, pois o Dynamo oferece suporte a esse mecanismo por padrão, mas é uma boa convenção de codificação.
Agora, o nó Criar a partir de pontos pode ser definido em Grupo de pontos. Devido à relação inerente, é possível chamar a função Estrutura comum no Autodesk.AutoCAD.DynamoNodes.ObjectBase.
O método NóT é o tipo do nó e é necessário para herdar Autodesk.AutoCAD.DynamoNodes.ObjectBase.
TNode = CogoPoints.PointGroupO objeto ObjetoT é o tipo de objeto do AutoCAD necessário para herdar Autodesk.AutoCAD.DatabaseServices.DBObject.
TObject = Autodesk.Civil.DatabaseServices.PointGroupA função Criador de objetos cria objetos. Neste exemplo, ela é definida como a criação de um novo grupo de pontos.
A função Atualizador de objetos atualiza objetos. Neste exemplo, ela é definida como a atualização de um grupo de pontos existente.
A função Estrutura comum tenta encontrar objetos existentes a partir do manipulador traçado. Quando encontrados, os objetos são atualizados com o Atualizador de objetos com isExisting==true. Se ocorrer falha na atualização, o Criador de objetos solicitará a criação de um novo objeto e, em seguida, o Atualizador de objetos chamará isExisting==false.
A função Estrutura comum tenta atualizar os objetos existentes no banco de dados com o mesmo valor do manipulador traçado. Se ocorrer falha, será criado um novo objeto. Se o objeto não aceitar atualizações, você poderá retornar isExisting==false. Isso significa que você criará um novo objeto e excluirá o objeto antigo. Nesse caso, a função Estrutura comum ainda tentará manter o mesmo valor de manipulador.
Os códigos de amostra completos são exibidos em PointGroup.cs e o método Estrutura comum do Autodesk.AutoCAD.DynamoNodes.Object equivale ao descrito acima.
É possível escrever códigos de traçamento com o modelo a seguir. No entanto, a classe dos novos nós ainda precisa herdar Autodesk.AutoCAD.DynamoNodes.Object ou Autodesk.AutoCAD.DynamoNodes.Entity.
Você pode preencher tanto o código de criação quanto o código de atualização para executar o código de traçamento mostrado no modelo acima.
A função Contexto de documento garante que o bloqueio de documento seja obtido para o acesso de leitura/gravação do banco de dados e quando é realizada uma transação de abertura de objetos de banco de dados. Qualquer nó que deseje ler ou gravar objetos de banco de dados deverá usar o método acima.