Roof get opposite edge

Hi,

The user select on top of a roof the edge and i want to get the opposite edge (on the bottom).
In our workflow it is easier to select the edge on top.

How to get the bottom edge?

this seems more a revit issue then a dynamo issue no?

as far as i know you assign a thickness / material(s) to your roof or floor type and when you set the elevation point to X the bottom will be X minus the roof thickness.

i think we may need more info. do u have a picture of your script or what the end goal is?

No it is not a Revit issue.
If it was this simple (x-rooftickness) it was solved already, the problem is that one roofangle could be different then another so the tickness at the selected edge is depending on both angles and the tickness is not perpendicular to the roof, but is the COS(angle) x roofthickness.

How are you selecting the edges you have?

By user, the top one because this one is visible and easy to pick.

So “select edge” and nothing more? The base graph inputs would be useful.

I going with Surface.Top and Surface.Bottom (DynaMEP) to compare coordinates
This i have so far.

Think you’d be better off using some custom coding as I don’t believe that the select edges / select edge node doesn’t maintain a reference, so you have to back into which element the edge was on. That’s a big lift though so I’d be happy to hear I’m wrong.

For now I think you can identify the geometry by sorting all edges by their distance to the midpoint of the selected line. The ‘point below’ will be the second value in the list.

Edit: Example of what the graph might look like:

For more complex roof lines you might have to add more filters; The curve in question has a remainder of zero after dividing the angle between the curve below and the selected curve by 180 (Vector.AngleWithVector and Math.Modulo nodes) which will remove most curves. From there you can remove the selected curve by intersection, and the nearest might be more accurate.

However for extreme shape edits and complex roof forms there won’t be an easy button; if you put a dormer right next to that hip, or if there was a wall cutting the hip directly beneath the midpoint. .

Brilliant as always

Think you’d be better off using some custom coding as I don’t believe that the select edges / select edge node doesn’t maintain a reference, so you have to back into which element the edge was on. That’s a big lift though so I’d be happy to hear I’m wrong.

I am going to use the curve to draw a beam that supports the roof.