Você está aqui: AutoCAD Civil 3D .NET C# ::: Dicas & Truques ::: Sites (Locais, Loteamentos) |
Como listar os sites do documento atual do Civil 3D usando a função GetSiteIds() da AutoCAD Civil 3D .NET APIQuantidade de visualizações: 439 vezes |
No AutoCAD Civil 3D nós usamos sites para coletar ou agrupar coleções de parcelas (lotes), alinhamentos, nivelamentos (terraplenagem) e linhas de recursos (feature lines) de acordo com a topologia que esses elementos possuem em comum. A lista de sites do documento atual pode ser encontrada na aba Prospector do Toolspace. Nesta dica mostrarei como podemos usar a função GetSiteIds() da classe CivilDocument para retornar os ids dos sites existentes no documento atual do Civil 3D como um objeto ObjectIdCollection. Em seguida usaremos um laço foreach para acessar cada site individualmente e mostrar o seu nome e id. Veja o código AutoCAD Civil 3D .NET C# completo para o exemplo: 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; using (Transaction ts = Application.DocumentManager.MdiActiveDocument. Database.TransactionManager.StartTransaction()) { try { // agora vamos obter os ids de todos os sites ObjectIdCollection sites = doc.GetSiteIds(); // vamos percorrer os sites e mostrar os seus nomes e ids foreach (ObjectId id_site in sites) { Site site = id_site.GetObject(OpenMode.ForRead) as Site; // vamos mostrar o nome e id do site editor.WriteMessage("\nNome: " + site.Name + "; Id: " + site.Id + "\n"); } } catch (System.Exception e) { // handle bad file path 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 C# .NET nós teremos o seguinte resultado: Nome: PROJETADO; Id: (2966797801664) Nome: EXISTENTE; Id: (2966797797744) De fato, como estou usando um template do DNIT do Brazil Kit, ele já vem com dois sites disponíveis: EXISTENTE e PROJETADO. |
![]() |
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 |