Você está aqui: AutoCAD Civil 3D .NET C# ::: Dicas & Truques ::: Alinhamento - Alignment |
Como listar os tipos de entidades de um alinhamento do Civil 3D usando a AlignmentEntityCollection da AutoCAD Civil 3D .NET APIQuantidade de visualizações: 231 vezes |
Nesta dica mostrarei como podemos listar os tipos de entidades de um alinhamento do Civil 3D. Como sabemos, um alinhamento é composto por retas e curvas, ou seja, objetos Line e Arc (Curve). É claro que podemos ter entidades mais complexas, mas estas duas são as que encontramos com mais frequência. Você pode ver as entidades de um alinhamento selecionando-o e indo no botão Geometry Editor e, em seguida, na opção Alignment Grid View. Uma janela Panorama será exibida contendo as entidades do alinhamento, juntamente com seus tipos, parâmetros, restrições, etc. Nessa dica eu mostrarei como retornar os tipos de todas as entidades de um alinhamento de duas formas. Na primeira nós vamos percorrer a coleção AlignmentEntityCollection e retornar cada entidade como um objeto AlignmentEntity. Então, para mostrar o tipo da entidade, nós vamos acessar sua propriedade EntityType. Veja o código AutoCAD Civil 3D .NET C# completo para o exemplo: using System; using Autodesk.AutoCAD.Runtime; using Autodesk.Civil.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.EditorInput; using Autodesk.Civil.DatabaseServices; using System.IO; namespace Estudos { public class Class1 : IExtensionApplication { [CommandMethod("Alinhamento")] public void Alinhamento() { // vamos obter uma referência ao documento atual do Civil 3D CivilDocument doc = CivilApplication.ActiveDocument; // obtemos o editor Editor editor = Application.DocumentManager.MdiActiveDocument.Editor; // vamos pesquisar o alinhamento chamado "EIXO DA RODOVIA" string nome = "EIXO DA RODOVIA"; // vamos iniciar um nova transação using (Transaction ts = Application.DocumentManager.MdiActiveDocument. Database.TransactionManager.StartTransaction()) { try { // efetuamos uma chamada ao método GetAlignmentByName() passando // o documento atual do AutoCAD Civil 3D e o nome do alinhamento // que queremos encontrar Alignment alinhamento = GetAlignmentByName(doc, nome); // ops, o alinhamento não foi encontrado if (alinhamento == null) { editor.WriteMessage("\nO alinhamento não foi encontrado."); } else { // vamos listar os tipos de todas as entidades // deste alinhamento for (int i = 0; i < alinhamento.Entities.Count; i++) { AlignmentEntity entidade = alinhamento.Entities[i]; // e mostramos o tipo da entidade do alinhamento editor.WriteMessage("\nTipo: " + entidade.EntityType + "\n"); Ao executar este código AutoCAD Civil 3D C# .NET nós teremos o seguinte resultado: Tipo: Line Tipo: Line Tipo: Arc Tipo: Line Tipo: Arc Tipo: Line Tipo: Line Tipo: Arc O problema com o código acima, é que as entidades são retornadas fora da ordem. Para corrigir isso nós podemos lançar mão da função GetEntityByOrder(). Veja: // vamos listar os tipos de todas as entidades // deste alinhamento for (int i = 0; i < alinhamento.Entities.Count; i++) { AlignmentEntity entidade = alinhamento.Entities.GetEntityByOrder(i); // e mostramos o tipo da entidade do alinhamento Agora o resultado será: Tipo: Line Tipo: Arc Tipo: Line Tipo: Arc Tipo: Line Tipo: Line Tipo: Arc Tipo: Line |
![]() |
Veja mais Dicas e truques de AutoCAD Civil 3D .NET C# |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |