Get Click Location in 2D Views

In another post, I found that “uidoc.Selection.PickPoint” just works on Floor plan view.
Is there anyway to get point in RCP, Elevation, Section?

Hey,

There’s a link to a work around where you generate a workplane from a sketchplane created from the section / elevation view…

I presume that doesn’t work for you? Could you give a little detail :slight_smile: ?

Kind regards,

Mark

1 Like

Can we create a workplane by current active view itself?
And is there any function in python to Pickpoint on workplane?
I’m so afraid of using external packages. It often gets errors, conflicts,…

Hey,

You can dig around in @Ewan_Opie’s code and have a look if you don’t want to use the package directly.

Here’s kind of what the code would look like, I haven’t tested it, but hopefully it gives you an idea…

Hope that helps,

Mark

import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)

clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *

doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
app = uiapp.Application 

origin = doc.ActiveView.Origin
normal = doc.ActiveView.ViewDirection

TransactionManager.Instance.EnsureInTransaction(doc)

plane = Autodesk.Revit.DB.Plane.CreateByNormalAndOrigin(normal,origin)
doc.ActiveView.SketchPlane = sp
pickPoint = doc.Selection.PickPoint()

TransactionManager.Instance.TransactionTaskDone()

OUT = sp

2 Likes

Thank you very much! I got your idea. I try it now!

Some edited line:
Add uidoc
Add sp creating
Selection.PickPoint work with uidoc
Thank you very much!

import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)

clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *

doc = DocumentManager.Instance.CurrentDBDocument
# --------------add Active UI Document
uidoc = DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
app = uiapp.Application 

origin = doc.ActiveView.Origin
normal = doc.ActiveView.ViewDirection

TransactionManager.Instance.EnsureInTransaction(doc)

plane = Autodesk.Revit.DB.Plane.CreateByNormalAndOrigin(normal,origin)
# ------------Add sp creating
sp = SketchPlane.Create(doc,plane)
doc.ActiveView.SketchPlane = sp
# ------------Selection Pickpoint workwith 'uidoc'
pickPoint = uidoc.Selection.PickPoint()

TransactionManager.Instance.TransactionTaskDone()

OUT = sp
1 Like