Você está aqui: AutoCAD Civil 3D .NET C# ::: Dicas & Truques ::: Sites (Locais, Loteamentos) |
Como pesquisar um loteamento por nome no AutoCAD Civil 3D usando C# e uma função personalizada GetSiteByName()Quantidade de visualizações: 335 vezes |
|
Nesta dica mostrarei como podemos escrever uma função C# personalizada chamada GetSiteByName() que nos permitirá pesquisar e retornar sites no AutoCAD Civil 3D de acordo com o seu nome. Nome que a função aceita como primeiro argumento um objeto da classe CivilDocument e, como segundo argumento, uma string representando o nome do loteamento que queremos encontrar. O retorno da função é um objeto Site. 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 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("Sites")]
public void Sites() {
// vamos obter uma referência ao documento atual do Civil 3D
CivilDocument doc = CivilApplication.ActiveDocument;
Editor editor = Application.DocumentManager.MdiActiveDocument.Editor;
// vamos pesquisar um loteamento chamado "LOTEAMENTO SETOR SUL"
string nome = "LOTEAMENTO SETOR SUL";
// vamos iniciar um nova transação
using (Transaction ts = Application.DocumentManager.MdiActiveDocument.
Database.TransactionManager.StartTransaction()) {
try {
// efetuamos uma chamada ao método GetSiteByName() passando
// o documento atual do AutoCAD Civil 3D e o nome do site
// que queremos encontrar
Site site = GetSiteByName(doc, nome);
// e mostramos o resultado
if (site == null) {
editor.WriteMessage("\nO loteamento não foi encontrado.");
}
else {
editor.WriteMessage("\nO id do loteamento pesquisado é: " +
site.Id);
}
}
catch (System.Exception e) {
// handle bad file path
editor.WriteMessage("Erro: {0}", e.Message);
}
}
}
// função C# que retorna site por nome, ou null em
// caso de não encontrar o site desejado
public Site GetSiteByName(CivilDocument doc, string nome) {
// vamos declarar um objeto da classe Site
Site site = null;
// agora vamos obter os ids de todos os sites
ObjectIdCollection sites = doc.GetSiteIds();
// vamos percorrer todos os ids de sites retornados
foreach (ObjectId id_site in sites) {
site = id_site.GetObject(OpenMode.ForRead) as Site;
// encontramos o site
if (site.Name.Equals(nome)) {
return site;
}
}
// retorna null se o site 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 id do loteamento pesquisado é: (2369904896256) |
|
|
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 |






