Você está aqui: Revit C# ::: Dicas & Truques ::: Pontos e Coordenadas |
Como pedir para o usuário selecionar um ponto na área de desenho do Revit usando a função PickPoint() do objeto Selection da Revit C# APIQuantidade de visualizações: 325 vezes |
Em várias situações nós precisamos que o usuário indique um ponto na área de desenho do Revit, ou seja, as coordenadas x, y e z na qual nosso código Revit C# efetuará alguma ação. Para isso nós podemos usar a função PickPoint() do objeto Selection, que retorna um objeto da classe XYZ. O primeiro passo é acessar o documento ativo UIDocument, por meio de uma chamada a this.ActiveUIDocument. Em seguida nós definimos o tipo de snap usando a enumeração ObjectSnapTypes. Para este exemplo eu usei Endpoints e Intersections, mas você pode usar outros também, tais como Midpoints, Nearest, Intersections, etc. Uma vez obtido o tipo de snap, nós o usamos para a chamada à função PickPoint(). Feito isso nós só precisamos acessar o objeto XYZ retornado e mostrar as suas coordenadas. Veja o código Revit C# completo para o exemplo: using System; using Autodesk.Revit.UI; using Autodesk.Revit.DB; using Autodesk.Revit.UI.Selection; using System.Collections.Generic; using System.Linq; namespace Estudos { [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes. TransactionMode.Manual)] [Autodesk.Revit.DB.Macros.AddInId("ED8EC6C4-9489-48F7-B04E-B45B5D1BEB12")] public partial class ThisApplication { private void Module_Startup(object sender, EventArgs e) { // vamos obter uma referência ao UIDocument ativo UIDocument uidoc = this.ActiveUIDocument; // agora mostramos uma mensagem para o usuário selecionar um // elemento TaskDialog.Show("Aviso", "Selecione um ponto na área de desenho"); // vamos escolher o tipo de snap ObjectSnapTypes tiposSnap = ObjectSnapTypes.Endpoints | ObjectSnapTypes.Intersections; // agora o usuário seleciona um ponto e nós o guardamos na // variável ponto, do tipo XYZ XYZ ponto = uidoc.Selection.PickPoint(tiposSnap, "Selecione um ponto de extremidade ou intersecção"); Ao executar este código Revit C# você terá uma mensagem TaskDialog com um resultado parecido com: As coordenadas do ponto são: X = 4.7533122 Y = 11.429872 Z = 23.3871198 |
![]() |
Veja mais Dicas e truques de Revit C# |
Dicas e truques de outras linguagens |
AutoCAD Civil 3D .NET C# - 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 API Python - Como calcular o coeficiente angular de uma reta em Python dados dois pontos no plano cartesiano |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |