# Catenary

Hi there.

Im new to dynamo and its community, so hello to you all.

I want to create a catenary line in revit, but revit does not understand what a COSH function is.

Doing a search for a catenary line, i found some help, but nothing conclusive.

I created an excel-file with a list of points wich can do the trick, but is there a more elegant way?

Marcel

try this:

and then: create a circle and extrude it along the catenary curve

and import into revit

Great!!

Thank you so much Peter.

Marcel

hi Peter

I couldnt get it to work in a revit metric system, but my goal is to get to this interesting roof

http://vimeo.com/105157027

is multiplying/dividing by 1 mm the culprit?

Thanks,

Marcel

marcel, i am working in metric system too.

i do not really understand your question.

what are you multiplying / dividing.

maybe show your definition so far.

for geometry manipulation (intersections): eduardo p roca’s entry “RGB Transform” on the blogs section of dynamobim is extremly helpful.

peter

Peter,

This is what i have for now.

There is no line showing up.

Thanks

Peter

Im working in the conceptual mass environment.

The idea of dividing/multiplying by 1 mm is to get to the metric units, I followed Zach’s instructions in this little movie http://vimeo.com/11014002

Here is my .dyn file

catenary

This may be a better screendump.

Thanks

marcel,

design scripts are case sensitive!

pow = Pow and math = Math.

you can see that in your definition the Code Block delivers no result.

if you have a correct definition the command itself (like Pow) is turning dark blue

peter

Peter,

its working now.

Thanks

Marcel

BTW, you can call Cosh directly in Code Block Nodes as Math.Cosh (x)

You guys are great, im getting all the help i asked for (and more)

Thanks

Marcel

Zach, is there a manual describing the mathematical capabilities of Code Blocks?

I was already wondering if it is possible to assign number formats like

a=trunc(b)

peter

Hi all I need to draw a catenary line with specified height and specified width how can i do that ? and is it possible to make it as a revit family?

Thank you

A manual approach to determine the height. Use the slider to adjust the constant (a)

File: catenary.dyn

2 Likes

Would it be possible to specify two points within a family or project file and form a centenary between them as demonstrated in the below image?

Catenary between two points…

File: catenary.dyn

1 Like

Thanks Vikram, that script works great. I did try selecting point which are 20/10/5m apart, due to the processing Dynamo hung up. Is this script scalable within Dynamo’s?

1 Like

Change the second line in the code block from

`x=(-l.Length/2)…(l.Length/2)…0.1;` (which creates points at a spacing of 0.1)

to

`x=(-l.Length/2)…(l.Length/2)…10;` (to create points with a spacing of 10)

or

`x=(-l.Length/2)…(l.Length/2)…#50;` (to create 50 points irrespective of the distance)

Thank you so much Vikram .

1 Like

Here i wanted to have a catenary with width 9 and hight 8 but i got this arc !

is there another way to find the right (a) for the top point i want.

i need the two points and the top

I think (a) is not the top of the catenary arch.

Thank you.