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?


Thanks in advance,



try this:



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

and import into revit





Thank you so much Peter.




hi Peter

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

is multiplying/dividing by 1 mm the culprit?





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.




This is what i have for now.

There is no line showing up.



Schermafdruk 2014-09-27 21.39.22



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

Here is my .dyn file


This may be a better screendump.


Schermafdruk 2014-09-28 08.34.52





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






its working now.





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)





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





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



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


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?


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)


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


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


Thank you so much Vikram .



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.