Get Rectangle coordinates of PickBox in a View3d

Get Rectangle coordinates of PickBox in a View3d

tokynom13
Participant Participant
282 Views
2 Replies
Message 1 of 3

Get Rectangle coordinates of PickBox in a View3d

tokynom13
Participant
Participant

Hello, so I want to get the position of upper_right corner of the rectangle aflter the function UiDocument.Selection.PickBox after was launch. I assume that:

  • P1 is PickedBox.Min
  • P2 is PickedBox.Max

Sans titre.png

what I have done so far (but unfortunately doesn't produce what I want)

 

var pickedBox = UiDocument.Selection.PickBox(PickBoxStyle.Directional);
var min = pickedBox.Min;
var max = pickedBox.Max;
var vec = max.Subtract(min);
var plane = Plane.CreateByNormalAndOrigin(ActiveView.ViewDirection, ActiveView.Origin);
plane.Project(min, out var uvMin, out var _);
plane.Project(max, out var uvMax, out var _);
var hyp = uvMin.DistanceTo(uvMax);
var angle = uvMax.Subtract(uvMin).AngleTo(UV.BasisU);
var du = hyp * Math.Cos(angle);
var dv = hyp * Math.Sin(angle);
var projectedPoint1 = plane.Origin + ((uvMin.U + du) * plane.XVec) + ((uvMin.V + dv) * plane.YVec);

 

 

Can someone help me please?

0 Likes
Accepted solutions (1)
283 Views
2 Replies
Replies (2)
Message 2 of 3

jeremy_tammik
Alumni
Alumni
Accepted solution

Interesting question.Thank you.

  

First, however, read the PickedBox documentation. Min is not the upper left, but the lower left rear:

  

https://www.revitapidocs.com/2024/976cde81-988a-d8bf-fc3f-07f62b18b488.htm

  

  Name Description
jeremy_tammik_0-1710336766539.gif

 

Max
Maximum coordinates (upper-right-front corner of the pick box).
jeremy_tammik_1-1710336766540.gif

 

Min
Minimum coordinates (lower-left-rear corner of the pick box).

  

Maybe that will already clarify everything?

  

Jeremy Tammik Developer Advocacy and Support + The Building Coder + Autodesk Developer Network + ADN Open
Message 3 of 3

tokynom13
Participant
Participant

Thank you for your response! Yeah, I have misunderstood what is the Min and Max, my bad 😅 

0 Likes