Friday, August 23, 2013

Revit and the arch top, the language of arc segments and chord math.

Archtop windows that break... Revit has issues with circles. Sometimes it is very slick in how it maintains fillets, arcs connections and tangential references, other times it flips out at some of the simplest things, and these issues are sometimes random.

The basic language, spring point, rise, radius, intrados, top, creast are for simple arches.

This in geometric language is represented in Dr. Math's pages and on this reference to Chord Math from Open  Math website.

So we need to draw an arc- then make it flex so the width varies, but the rise is the same.


Simple enough right? Until this happens...
same family - at random points flips the arc:

I cannot even begin to explain why this happens.Guessing a glitch in Revit.

I have a workaround-  or more regular results anyways- by teaching Revit Arc's and arches fundamental language:

ARCH_r  = (Width ^ 2 + 4 * H ^ 2) / (8 * H)
Where:

r          is the radius of the arc
Width  is the width of the Chord (flat part)

Add this with a little resolution checking, and a variable origin and you should have a stable arc or arch:

Is tied to this detail family:


The trick is to move the origin (red arrow) which is also the geometric chord segment, 
based on the circle crest/top of arch (intrados) relative to the radius of the circle. 

So the circle center stays put- while the flex of the width drives the circle radius, and the Top reference plane.

The top reference plane is constrained back to the reference plane for the Center Elevation (CELE for short) marked by the red arrow with the H or Height of the chord segment. This is the rise of the arch.

The invisible lines are locked to the circle and the CELE reference plane. So in the detail component flexing the width raises the TOP reference plane. Which in turn drags the CELE reference plane. Left, right and center reference planes are set as references, while the construction "reference line" circle is set to not a reference.

Once the detail is in place the chord appears to stay put while the arc width changes.

One last tidbit.

if(not(Width / 2 > Arch Rise), Width / 2, Arch Rise)

If the Width /2 is less than or equal to Arch Rise, then use Width/2 to reference the intrados/crest/top of the arch, otherwise the arch will bulge out beyond creating a moorish arch:

Which you can allow if you wish by setting the H parameter equal to Arch Rise.

No comments:

Post a Comment