Saturday, August 18, 2012

Constraining Tangents

I read a post at AUGI the other day which originated with a post in July (2012). The goal was to create a rebar shape for detailing purposes. A few people offered ideas even a file or two. It seemed simple enough to do but digging into it I found several variations in a theme to constrain the geometry works. Here's my exploration captured in these images.

This image is the overview of what parameters are desired: Length, Depth, Fillet Radius and Angle.

Simply sketching the "bones, muscle and skin" is often enough. In this situation, as you flex the parameters the tangent arc starts to distort eventually. Revit does not understand how to respect the arc and line end points, keeping the lines tangent to the arc. That means it needs more constraints. One way to see how well Revit understands our intentions is to turn on Automatic Sketch Dimensions (ASD's).

When you see little blue dimensions you know that Revit doesn't understand you, you need to be more explicit. If you look closely at the very last image you'll a single ASD (showing 0'-0") along the vertical reference plane. Unfortunately just getting rid of ASD's with better constraints isn't a guarantee for success.

This image is the messiest solution, I used a circle to "see" how the geometry moved around and then used it to create enough constraints so that it flexes correctly.

This image is a variation on the previous theme but using Reference Lines as the underlying "bones", pretty "messy" too eh?

This is yet another approach. I used a pair of model lines (assigned to Invisible) to govern the location of the arc and line endpoints.

This final one is the simplest in appearance but it has two line segments instead of one along the angled segment. I noticed that connecting the end of the angled line would break the relationships. I tried pulling the end of the line away from the end of the arc, leaving them apart, and flexing geometry worked. That led me to try a second line between the end of the arc and the end of a smaller line and it worked too. Not obvious at all. It also means that the family will break if one of these segments is flex too far, assuming the changes result in a zero length segment. The family will break easily anytime the angle entered creates a zero length segment of the vertical line too (all of them, not just this one). Fragile but the family works.

In the thread at AUGI the member that started it all replied that he figured out how to solve it after reading a post at BIM & BEAM. I tried using the formulas as well but found it was necessary to play the "two lines instead of one trick" to get it to behave.

If you'd like to play around with the families I created doing this I've posted them HERE. I'd be interested if anyone can find simpler solutions.

[Edit 08/20/2012: Alfredo Medina shared a solution at the AUGI thread that uses formulas to define the relationships consistently. CLICK to watch his video of it flexing. CLICK to download his family. (You'll need to log into AUGI to download it most likely)


Dave Baldacchino said...

LOL! I just posted about this as well...great minds think alike I suppose, but you beat me to it (kids' fault, as usual)

Steve said...

What you describe as working doesn't work on the model lines in my example. I didn't try it with an extrusion but I think when I pushed your example at AUGI it also "broke" the tangent relationship.

Quite often the solution in Revit is easier than I expected. In this case it seems it isn't, at least I have stumbled into an easier one.

Dave Baldacchino said...

I'll have to play around, I only worked on an extrusion because that's what the original post showed. Wouldn't be at all surprised if the method I proposed fails in that scenario.

Steve said...

The file you posted at AUGI (reposted) seems to break too unless it didn't really replace the previous file during the upload there.

Dave Baldacchino said...

This is completely bizarre. I flexed multiple times with no issues before I reposted (you know me, I would never post a file without testing extensively!). Now I reopened the file and it breaks. No clue what's going on.

Alfredo Medina said...

Hi, guys, I have another solution. It's posted in the Augi forum, in that thread.

Alfredo Medina said...

Hi, I just posted some additional info in that thread in Augi about the tangential arcs.