Tuesday, February 9, 2010

As promised in this post, I'll go into making a parametric family for a catenary arch. I'll do this in two parts, since I can imagine that the actual math is not that interesing to everyone.

So, if you've always hated math and don't want anything to do with it, go here instead and stop reading. This is gonna get boring.

For everyone else, here we go.

The goal is: Make a parametric family, where I can enter a width and a height for the arch and get a catenary.

First the general formula for a catenary is this:


and it looks like this:

As you can see, the graph moves upwards with every increase in a (I have used c in place of the a, just because I had found the formula with a c first). But what we need is a graph that goes through (0,0). So we'll modify the formula:

and we get:


Great. Now we only need to find the right c to fit our purposes and off we go. The way to do this is to substitute the height of the arch for y and half the length of the arch for x and solve for c. Easy.

In this example I want an arch 30m wide and 5m high:

Now we run into 2 problems:
  1. Revit does not know what a cosh (Hyperbolic Cosin) is.
  2. You can not solve this function for c.
To tackle problem 1, we substitute:

Revit does know how to calculate e to the power of x (Well, sort of. You do have to tell Revit what e is, but oh well...). So that's sorted.

To tackle problem 2, we use the Newton Iteration to find a value for c:


The two functions are:


and


We put this together and within 5 or 6 steps we have a value for c that works for our purposes.

...and all this to create a simple arch!

OK, so much for the basic math. In the next part I'll walk you through how I actually set this whole thing up in Revit so it works.

My thanks go to everyone at wikipedia for their articles on the math and to John Forkosh Associates for their online LaTeX machine.

2 Comments:

  1. Martijn de Riet said...
    Hi Oliver,

    I'm very curious if you got this working already? I've been trying to recreate your work, but end up with a straight line in my Catenary Line.rfa...
    Donna M said...
    I cant get this to work either. I get a gradulated line but no arc

Post a Comment