Placing a tunnel ring on alignment via coordinate list

I’m fairly new to Dynamo. I have a script which is reading a CSV coordinate list (X, Y, Z) and places a fresh generated “cylinder ring” between point A and point B of the coordinate list.

My question is: Is it possible to place a drawing of a tunnelring (DWG) between the coordinates instead of placing a simple cylinder block?

Doesn’t have to be my script. It can be a complete new one.
This is my script. In the upper left corner there’s a screenshot of the completed script with the cylinder rings. I want to place my own tunnel rings (C3D dwg-drawing) instead of the cylinders.


Can you attach any example drawing and example dyn file for your ideas

Unfortunatly I can’t upload any attachment as a “new” member :frowning:

If u can provide an email adress, I can send u the files tho

Use any upload site online

Contains: Script of mine, tunnel ring (dwg drawing) & coordinate list

  1. Convert your DWG to a block in the current drawing. I’d just do this manually as each job might be different, so automating that is a step for another day.
  2. Instead of a point, create a coordinate system. You can do this by using the vector you are using for your cylinder, the point you’re using at the origin, and taking the cross vector fo the normal and the Z axis.
  3. Use a Block.ByCoordinateSystem to place the block created prior to Dynamo at each instance.

A better solution might be to create an alignment via the points, and find the coordinate systems along the alignment.

1 Like

That’s actually a good idea. I will test it this week and keep u guys updated here.

Other ppl are still welcome to give solutions aswell :slight_smile:

@Stefan375 @JacobSmall
Dear Stefan,
Nice to meet you/sharing thoughts with you here on this forum. I am working on the same idea as you do. I am also new to Dynamo and trying to push the limit daily. I am trying to realize creating AutoCAD sections and trying to sweep these sections along the civil 3D alignment profile. I believe this method will enhance and improve the structural design of a bridge or a tunnel. Besides, this method will add lots of values to quickly modify the sections’ presentation by adding parameters to adjust sections’ width, thickness, and many other construction parameters. I am not so far with my idea/work. I am collecting some learning materials that give some excellent ideas to sculpt the script complexity. I will share that with this fantastic forum as soon as I reach that goal.


Hi @S.Abbosh & @Stefan375 ,

See if this approach helps to understand how coordinatesystems can be utilized :slight_smile:
(Building on what @JacobSmall suggested)

2022-10-06 Coordinatesystem utilisation.dyn (17.3 KB)

Also, this is an easier way to extract sublists:


Dear Daan,
Thank you so much for sharing this with us. I very much appreciate that. I am trying to familiarize myself with vector, Plane, and coordinate systems in dynamo to adapt to the dynamo mindset. Whenever I try to create something, I discover 100 things, and all the focus on the main point gets distracted.
Thanks a lot.
Kindly regards

1 Like

Do you mean with “Sublists” partial segments along the linear path? Or is it about a different subject? Can you maybe explain a bit about it?
Thank you so much.

I was referring to the screenshot of the original post, where @Stefan375 used three List.GetItemAtIndex nodes to get three sublists from his .csv-data containing the X-, Y- and Z-coordinates respectively.

Also, I really recommend checking out the Dynamo Primer (especially chapter 6): Dynamo Primer
This site/ documentation contains a lot of information & explanations about all sorts of Dynamo Topics :smiley:

@Daan, @JacobSmall
Thank you so much for the explanation and the tips regarding Dynamo Primer. Already going through it, and it definitely has a huge benefit to understanding how dynamo anatomy is.

I am wondering ( maybe I have missed that, and it already exists) if there are any manuals or documents that explain a bit about civil 3D Dynamo nodes.

Another question ( if I may bother you with that), I would very much appreciate learning how to project a section on a plane ( in your example, you are projection a circle from its center on the YAxis).

Suppose I need to use another projection point, like one of the circle quadrant points! Or (Please see attached screenshot) one of the section points. Like I want the flexibility to grip the section from the middle, upper, and lower vertex-point.

Thank you so much for the support and help.
I wish you a nice day.
Kindly regards

Assuming you drew this originally at the origin, get the point (List.GetItemAtIndex), convert it to a vector Point.AsVector), reverse the vector (Vector.Reverse), and use a Translate (Grometry.Translate - the direction method) method to move the object.

If it wasn’t at the origin, build the vector by the point you want to be the origin and the point you have as the local origin (Vector.ByTwoPoints).

1 Like

Thanks so much, Jacob; I will follow these steps and reach out when I have done some good examples for the feedback. Indeed, you are excellent with your response and tips.
Thanks a lot

1 Like

@JacobSmall, @Daan,
I hope you are doing well. I have been playing around with placing a tunnel section ( not from excel yet). I used FeatureLine as a path for this script. And thanks to you and for Dynamo Primer.
To be continued.


Hi @S.Abbosh, just a bit curious, is there a particular reason for you to do this with Dynamo instead of Subassembly Composer and Corridors (knowing you can automate the corridor creation with Dynamo too) ?

Nice! Looks great!

1 Like

Dear David,
Thank you very much for asking. Regarding your question! Yes, I was able to build this in less than 2 hours ( thanks to @Daan & @JacobSmall ). I have worked with subassembly composers for years and never had such enormous flexibility and performance as Dynamo for C3D. Besides, I never believed that SAC could create such details in a super short time.

I know I can automate C3D Corridor using dynamo, which will also be one of my goals.
I wish you a pleasant evening.
Kindly regards


Thank you and thanks to your idea