Elevations by Mass

So I thought it would be neat if I could click on a mass and have a set of elevations be automatically generated. It would be helpful with early stage massing studies.

I have used a bunch of people’s work to get to the stage where I am able to create an elevation (well actually 4, but that’s fine for the minute) for each vertical face, however they are oriented orthogonally and I cannot rotate them correctly to match the face. In fact the rotation seems completely random.

The python rotation has come from here… I’ve tried to understand how it works but my head has given up a bit… Rotate Elevation Marker

Any assistance would be greatfully received.

Cheers,

Mark

ViewsFromMassSurface-A.dyn (146.7 KB)
Project1.rvt (1.4 MB)
ViewsFromMassSurface-FailedRotation.dyn (203.3 KB)

Maybe this helps

Thanks,

I’ve also found this:

https://revitbeyondbim.wordpress.com/2015/10/15/automatic-element-view-generation-in-revit-with-dynamo-3/

Which would do the job if i can rewrite the graph!

Mark

The python rotation has come from here… I’ve tried to understand how it works but my head has given up a bit… Rotate Elevation Marker

I’m glad you found it useful.

The rotation seems to be random because by default it always rotates a positive angle and depending on the relative position between the wall and the elevation marker the angle might be negative (that’s why I added the option to select it manually, however you can’t know beforehand… not very intuitive I know!). On top of that, the elevation itself is not always at the same place than the marker.

Anyway while doing another graph to rotate families I figured out how to automatically choose the right rotation direction depending on the relative position of the elements. I’ll try to apply that to the rotate elevation graph and maybe changing the origin of rotation to the centre of the elevation view rather than the elevation marker to see if it works better.

Thanks @franciscusm that sounds very useful…

I have a line at some angle from the orthoganal view so presumably if i put in a vector aligned to the view (ie. x=0,y=1) I should be able to rotate back again, but it doesn’t seem to work… And it appears random and varied, so I can’t work out what the correction factor might need to be (project rotation for example)…

Cheers,

Mark

clip

Part of the issue is needing to convert to radians… I think the rest is, as you say, how the angle is measured from the orthogonal…

I’ve looked a while into and it is definitely that: the relative position and angle between wall (even the angle of the wall itself) and elevation dictates if the rotation is positive or negative (or even if you need to add 180 degrees to that angle).

However the node Vector.AngleWithVector always returns a positive angle and determining the right direction for every situation is confusing.

There are 4 possibilities for the angle of rotation that should cover all the cases:
Clockwise
Anticlockwise
Clockwise + 180
Anticlockwise + 180

Sorry, but I don’t have time to look any further into it at the moment.

I gave up on the elevations method and went for Sections instead…

ViewsFromMassSurface-Sections-X.dyn (86.6 KB)