Você está aqui: AutoCAD Civil 3D .NET C# ::: Dicas & Truques ::: Superfície - Surface |
Como retornar as elevações mínimas e máximas de uma superfície do Civil 3D usando a AutoCAD Civil 3D .NET APIQuantidade de visualizações: 349 vezes |
Nesta dica mostrarei como podemos usar as propriedades MinimumElevation e MaximumElevation da AutoCAD Civil 3D .NET API para obter as elevações mínimas e máximas de uma superfície do Civil 3D. Você pode ver essas informações indo na aba Prospector da Toolspace e selecionando o item Surfaces. Em seguida clique com o botão direito na superfície desejada (em nosso caso a superfície TERRENO NATURAL) e escolha Surface Properties. Os valores de elevação mínima e máxima são encontrados na aba Statistics no item General. 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 CivSurface = Autodesk.Civil.DatabaseServices.Surface; using Autodesk.Civil.DatabaseServices; namespace Estudos { public class Class1 : IExtensionApplication { [CommandMethod("Superficie")] public void Superficie() { // 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 a superfície chamada "TERRENO NATURAL" string nome = "TERRENO NATURAL"; // vamos iniciar um nova transação using (Transaction ts = Application.DocumentManager.MdiActiveDocument. Database.TransactionManager.StartTransaction()) { try { // efetuamos uma chamada ao método GetSurfaceByName() passando // o documento atual do AutoCAD Civil 3D e o nome da superfície // que queremos encontrar CivSurface superficie = GetSurfaceByName(doc, nome); // e mostramos o resultado if (superficie == null) { editor.WriteMessage("\nA superfície não foi encontrada."); } else { // agora que já temos a superfície, vamos obter suas propriedades // por meio do objeto GeneralSurfaceProperties GeneralSurfaceProperties prop = superficie.GetGeneralProperties(); // e obtemos a elevação mínima e máxima dessa superfície double elevacao_minima = prop.MinimumElevation; double elevacao_maxima = prop.MaximumElevation; // e mostramos o resultado editor.WriteMessage("\nA elevação mínima dessa superfície é: " + elevacao_minima + "m\n"); editor.WriteMessage("\nA elevação máxima dessa superfície é: " + elevacao_maxima + "m\n"); } } catch (System.Exception e) { // handle bad file path editor.WriteMessage("Erro: {0}", e.Message); } } } // função C# que retorna uma superfície por nome, ou null em // caso de não encontrar a surface desejada public CivSurface GetSurfaceByName(CivilDocument doc, string nome) { // vamos declarar um objeto da classe CivSurface superficie = null; // agora vamos obter os ids de todas as superfícies ObjectIdCollection superficies = doc.GetSurfaceIds(); // vamos percorrer todos os ids de superfícies retornados foreach (ObjectId idSuperficie in superficies) { superficie = idSuperficie.GetObject(OpenMode.ForRead) as CivSurface; // encontramos a superfície if (superficie.Name.Equals(nome)) { return superficie; } } // retorna null se a superfície não for encontrada 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: A elevação mínima dessa superfície é: 94m A elevação máxima dessa superfície é: 186m |
![]() |
Veja mais Dicas e truques de AutoCAD Civil 3D .NET C# |
Dicas e truques de outras linguagens |
Python - Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em Python Android Java - Como usar o método startActivity() da classe Activity ou AppCompatActivity do Android para mudar de telas |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |