Você está aqui: AutoCAD Civil 3D .NET C# ::: Dicas & Truques ::: Alinhamento - Alignment |
Como listar os nomes, ids e tipos de perfis de um alinhamento no Civil 3D usando GetProfileIds() e GetObject() da API .NET do Civil 3DQuantidade de visualizações: 346 vezes |
Em algumas situações nós precisamos realizar algumas ações nos perfis de um determinado alinhamento do Civil 3D. Para isso nós podemos usar as funções GetProfileIds() e GetObject() da API C# do Civil 3D. Veja como isso é feito. De posse do alinhamento desejado, efetuamos uma chamada à sua função GetProfileIds() e retornados um ObjectIdCollection contendo os ids de todos os perfis do alinhamento em questão. Em seguida usamos um laço foreach para percorrer cada um desses ids, fazemos chamadas à GetObject() e retornando objetos da classe Profile. O passo final é acessar as propriedades Id, Name e ProfileType do objeto Profile e mostrar o resultado na janela de comando. Veja o código AutoCAD Civil 3D .NET C# completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- 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; 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 { // encontramos o alinhamento. Vamos mostrar os ids e nomes dos // perfis que ele possui ObjectIdCollection ids_perfis = alinhamento.GetProfileIds(); // vamos percorrer todos os ids de profiles retornados foreach (ObjectId id_perfil in ids_perfis) { Profile perfil = id_perfil.GetObject(OpenMode.ForRead) as Profile; // mostramos o id e nome do perfil editor.WriteMessage("\nId: " + perfil.Id + "; Nome: " + perfil.Name + "; Tipo: " + perfil.ProfileType.ToString() + "\n"); } } } catch (System.Exception e) { // vamos tratar o erro editor.WriteMessage("Erro: {0}", e.Message); } } } // função C# que retorna um alinhamento por nome, ou null em // caso de não encontrar o alinhamento desejado public Alignment GetAlignmentByName(CivilDocument doc, string nome) { // vamos declarar um objeto da classe Alignment Alignment alinhamento = null; // agora vamos obter os ids de todos os alinhamentos ObjectIdCollection alinhamentos = doc.GetAlignmentIds(); // vamos percorrer todos os ids de alinhamentos retornados foreach (ObjectId idAlinhamento in alinhamentos) { alinhamento = idAlinhamento.GetObject(OpenMode.ForRead) as Alignment; // encontramos o alinhamento if (alinhamento.Name.Equals(nome)) { return alinhamento; } } // retorna null se o alinhamento não for encontrado return null; } public void Initialize() { // pode deixar em branco } public void Terminate() { // pode deixar em branco } } } Ao executar este código AutoCAD Civil 3D .NET C# nós teremos o seguinte resultado: Id: (2246912726512); Nome: TN - SUPERFÍCIE NATURAL; Tipo: EG Id: (2246912726832); Nome: GREIDE RODOVIA - PERFIL VERTICAL DA RODOVIA; Tipo: FG Veja que mostrei o id, o nome e o tipo de cada um dos dois perfis pertencentes ao alinhamento "EIXO DA RODOVIA". Note que, de acordo com as configurações do Brazil Kit, "EG" significa TERRENO NATURAL enquanto "FG" significa "PROJETO", ou seja, o greide da rua, rodovia, ferrovia, etc. |
Link para compartilhar na Internet ou com seus amigos: |
AutoCAD Civil 3D .NET C# ::: Dicas & Truques ::: Alinhamento - Alignment |
Como retornar a quantidade de estacas de um alinhamento do Civil 3D usando a função GetStationSet() da classe Alignment da AutoCAD Civil 3D .NET APIQuantidade de visualizações: 470 vezes |
Nesta dica vou mostrar como podemos obter a quantidade de estacas em um alinhamento do Civil 3D usando a função GetStationSet() da classe Alignment da AutoCAD Civil 3D .NET API. Para este exemplo eu usei um alinhamento com o nome "EIXO DA RODOVIA". O primeiro passo é obter uma referência ao documento atual do AutoCAD Civil 3D usando CivilApplication.ActiveDocument. En seguida nós pesquisamos um alinhamento usando uma função personalizada GetAlignmentByName(), que recebe o documento atual e o nome do alinhamento que queremos pesquisar. O retorno desta função é um objeto da classe Alignment. Agora que já temos o alinhamento, nós usamos a função GetStationSet() para retornar um vetor de objetos Station, que significa estaca no Civil 3D. Note que passei como parâmetro o valor StationTypes.Major e usei alinhamento.StationIndexIncrement como o intervalo entre as estacas. Uma vez que já temos o vetor de objetos Station, ou seja, um vetor contendo todas as estacas do alinhamento, só precisamos obter a quantidade de itens usando a propriedade Length. Veja o código AutoCAD Civil 3D .NET C# completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- 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; 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 { // encontramos o alinhamento. Vamos mostrar a quantidade de estacas // que ele possui Station[] estacas = alinhamento.GetStationSet(StationTypes.Major, alinhamento.StationIndexIncrement); int quant_estacas = estacas.Length; // e mostramos o resultado editor.WriteMessage("\nO alinhamento possui " + quant_estacas + " estacas.\n"); } } catch (System.Exception e) { // vamos tratar o erro editor.WriteMessage("Erro: {0}", e.Message); } } } // função C# que retorna um alinhamento por nome, ou null em // caso de não encontrar o alinhamento desejado public Alignment GetAlignmentByName(CivilDocument doc, string nome) { // vamos declarar um objeto da classe Alignment Alignment alinhamento = null; // agora vamos obter os ids de todos os alinhamentos ObjectIdCollection alinhamentos = doc.GetAlignmentIds(); // vamos percorrer todos os ids de alinhamentos retornados foreach (ObjectId idAlinhamento in alinhamentos) { alinhamento = idAlinhamento.GetObject(OpenMode.ForRead) as Alignment; // encontramos o alinhamento if (alinhamento.Name.Equals(nome)) { return alinhamento; } } // retorna null se o alinhamento não for encontrado return null; } public void Initialize() { // pode deixar em branco } public void Terminate() { // pode deixar em branco } } } Ao executar este código AutoCAD Civil 3D C# .NET nós teremos o seguinte resultado: O alinhamento possui 152 estacas. |
AutoCAD Civil 3D .NET C# ::: Dicas & Truques ::: Alinhamento - Alignment |
Como retornar a quantidade de perfis de um alinhamento do Civil 3D usando a função GetProfileIds() da API C# do AutoCAD Civil 3DQuantidade de visualizações: 416 vezes |
Em algumas situações nós precisamos obter a quantidade de perfis (profiles) de um determinado alinhamento do AutoCAD Civil 3D. Para isso nós podemos usar a função GetProfileIds(), que retorna uma coleção ObjectIdCollection contendo os ids de todos os perfis pertencentes a um determinado alinhamento. Para este exemplo eu usei um alinhamento chamado "EIXO DA RODOVIA" e criei para ele um profile chamado "TN - SUPERFÍCIE NATURAL" para representar a superfície natural e outro chamado "GREIDE - PERFIL VERTICAL DA RODOVIA" para representar o alinhamento vertical. Note que, após obtermos a coleção ObjectIdCollection por meio da função GetProfileIds(), tudo que temos a fazer é acessar a sua propriedade Count. Veja o código AutoCAD Civil 3D .NET C# completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- 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; 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 { // encontramos o alinhamento. Vamos mostrar a quantidade de perfis // que ele possui ObjectIdCollection ids_perfis = alinhamento.GetProfileIds(); // e mostramos o resultado editor.WriteMessage("\nO alinhamento possui " + ids_perfis.Count + " perfis.\n"); } } catch (System.Exception e) { // vamos tratar o erro editor.WriteMessage("Erro: {0}", e.Message); } } } // função C# que retorna um alinhamento por nome, ou null em // caso de não encontrar o alinhamento desejado public Alignment GetAlignmentByName(CivilDocument doc, string nome) { // vamos declarar um objeto da classe Alignment Alignment alinhamento = null; // agora vamos obter os ids de todos os alinhamentos ObjectIdCollection alinhamentos = doc.GetAlignmentIds(); // vamos percorrer todos os ids de alinhamentos retornados foreach (ObjectId idAlinhamento in alinhamentos) { alinhamento = idAlinhamento.GetObject(OpenMode.ForRead) as Alignment; // encontramos o alinhamento if (alinhamento.Name.Equals(nome)) { return alinhamento; } } // retorna null se o alinhamento não for encontrado return null; } public void Initialize() { // pode deixar em branco } public void Terminate() { // pode deixar em branco } } } Ao executar este código AutoCAD Civil 3D .NET C# nós teremos o seguinte resultado: O alinhamento possui 2 perfis. |
AutoCAD Civil 3D .NET C# ::: Dicas & Truques ::: Alinhamento - Alignment |
Como pedir para o usuário selecionar um alinhamento no Civil 3D usando a função GetEntity() do AutoCAD Civil 3D .NET C# APIQuantidade de visualizações: 569 vezes |
Em várias situações nós precisamos pedir para o usuário selecionar um alinhamento e, após a seleção, obter o id do alinhamento selecionado para efetuarmos alguma operação nele. Para isso nós podemos usar a função GetEntity() do objeto Editor da AutoCAD Civil 3D .NET C# API. O primeiro passo é criar um objeto PromptEntityOptions passando a mensagem para o usuário selecionar o alinhamento. Se o usuário selecionar outro objeto que não seja um alinhamento, a mensagem definida em SetRejectMessage é exibida. Note o uso de AddAllowedClass para permitir a seleção apenas de objetos da classe Alignment ou derivadas dela. Depois de solicitar a seleção, nós obtemos um objeto ObjectId, que é retornado pela função GetEntity(). Veja o código AutoCAD Civil 3D .NET C# completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- 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; 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 iniciar um nova transação using (Transaction ts = Application.DocumentManager.MdiActiveDocument. Database.TransactionManager.StartTransaction()) { try { // vamos pedir para o usuário selecionar o alinhamento PromptEntityOptions opt = new PromptEntityOptions( "\nSelecione um alinhamento"); opt.SetRejectMessage("\nO objeto precisa ser um alinhamento.\n"); opt.AddAllowedClass(typeof(Alignment), false); // vamos obter o id do alinhamento selecionado ObjectId id_alinhamento = editor.GetEntity(opt).ObjectId; editor.WriteMessage("\nO id do alinhamento selecionado é: " + id_alinhamento + '\n'); } catch (System.Exception e) { // vamos tratar o erro editor.WriteMessage("Erro: {0}", e.Message); } } } public void Initialize() { // pode deixar em branco } public void Terminate() { // pode deixar em branco } } } Ao executar este código AutoCAD Civil 3D .NET C# nós teremos o seguinte resultado: O id do alinhamento selecionado é: (1455527762496) |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Número de Froude O número de Froude (Fr) é um coeficiente adimensional, frequentemente utilizado na hidráulica de condutos abertos para determinar a classificação do regime que o escoamento livre apresenta. Quando o Fr é igual a 1, o regime é classificado como crítico; com Fr > 1, o regime é supercrítico; e com Fr < 1, o regime é subcrítico. Sobre esta classificação afirma-se que: A) No regime crítico há equílibrio de forças e a velocidade é menor que a celeridade. B) No regime supercrítico, o escoamento é mais influenciado pelas forças gravitacionais. C) No regime supercrítico, o escoamento é regido pelas energias cinéticas e inerciais. D) No regime subcrítico ou torrencial, as forças gravitacionais regem o escoamento. E) No regime crítico não há equilíbrio entre as energias que influenciam o escoamento. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil |
Fases de uma obra Ao documento em que se registram, pela ordem de sucessão em que são executados, os serviços necessários à realização da construção e os respectivos prazos, dá-se o nome de: A) Diário de obra. B) Cronograma físico-financeiro. C) Gráfico de Gantt. D) Planejamento. E) Cronograma físico. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Hidrologia |
Com relação à delimitação de bacias hidrográficas, é correto afirmar que A) todos os pontos em seu interior, obrigatoriamente possuem cotas iguais ou inferiores em relação às cotas do divisor de águas da bacia. B) tanto o divisor de água do tipo topográfico quanto o divisor do tipo freático podem ser utilizados, pois os dois sempre se coincidem. C) segundo o método de Strahler de hierarquização fluvial, bacias hidrográficas de 4ª ordem têm o dobro de área de drenagem do que bacias classificadas em 2ª ordem. D) a linha imaginária que define o seu limite deve ser traçada perpendicularmente às curvas de nível e não cortar nenhum curso de água além do ponto onde se encontra o exutório. E) na escolha do local do exutório para a delimitação, os cursos d?água devem ser classificados como de 4ª ordem (método de Strahler) no mínimo, para que a bacia hidrográfica tenha uma área representativa. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Hidrologia |
No Brasil, a maioria da precipitação cai sob a forma de chuva, convencionalmente medida por meio de aparelhos denominados pluviômetros e/ou pluviógrafos. Qual o volume de água, em litros, coletado em uma área de 10000 cm2, após uma precipitação de 1,5 cm? A) 15000 litros. B) 1500 litros. C) 150 litros. D) 1,5 litros. E) 15 litros. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira |
Evolução das estruturas O concreto armado, no qual barras de aço são inseridas nas peças de concreto, foi desenvolvido na década de 1850. A junção do aço ao concreto contribui na melhoria do desempenho estrutural do concreto em relação à: Selecione a resposta: A) Resistência à compressão. B) Resistência à tração. C) Resistência à umidade. D) Resistência ao fogo. E) Resistência à infiltração. Verificar Resposta Estudar Cards Todas as Questões |
Veja mais Dicas e truques de AutoCAD Civil 3D .NET C# |
Dicas e truques de outras linguagens |
Java - Como retornar a quantidade de palavras em uma string Java usando um objeto da classe StringTokenizer |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |