| 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: 435 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: ----------------------------------------------------------------------
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 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 | 
|  Link para compartilhar na Internet ou com seus amigos: | 
| Veja mais Dicas e truques de AutoCAD Civil 3D .NET C# | 
| Dicas e truques de outras linguagens | 
| Python - Como criar arrays (vetores e matrizes) usando o objeto ndarray da biblioteca Numpy do Python | 
| E-Books em PDF | ||||
| 
 | ||||
| 
 | ||||
| Linguagens Mais Populares | ||||
| 
			   1º lugar: Java | 


 
 




