Placing and Orienting 3D Light Pole Blocks in Civil 3D with Surface-Derived Z Values

I have prepared a set-out table for light poles (see attached) I have defined a 3D block type in C3D for the light poles (Column A) with X directed towards the road, Y running along the road. My goal is to place blocks at these specified coordinates, ensuring they are oriented perpendicularly to the alignment with the Z value for the light pole insertion point from a C3D surface. Could you provide any recommendations on the best way to achieve this?

Inputs: A spreadsheet containing the following columns: LP block, X, Y, control string (alignment) and side. I also have a C3D file with the 3d light blocks and design surface.

Outputs: 3D light pole blocks positioned according to the setout coordinates, with Z values from the surface and orientation perpendicular to the road alignment.

I could insert the blocks relative to the control string using a LISP and then use the “move to surface command” to get the z values however I’d be interested to know of there is a way to combine both these steps using Dynamo.

Thanks in advance

I did see this however, the demonstration refers to chainages and offset. I would like to know how to apply this with coordinates for the light poles.

So the excel contains some kind of local coordinate system that depends on the alignment?

Could you please share some example files, excel, dyn and dwg,
Easier to help you.
Regards,
Patrick

Hi @shane.mccarney,

This example on the Dynamo Primer is similar and might help :+1:

3 Likes

Hi Patrick,

Attached is dwg and spreadsheet I intend to use. For the Dynamo script I intended to use and modify an Autodesk script which was presented at AU2019 (also attached for reference). The problem I ran into was that this script is based on chainage and offset however, I need to install the block based on x and y coordinates.

Lights Test.dyn (58.4 KB)
Lights.xlsx (10.8 KB)
Lights.dwg (4.9 MB)

Oki, I should suggest you to start over with a new dyn file.

For example, start with a project in dynamo how to read info from excel, retrieve all data separated in to separate lists.

Then create points based on coordinates and use those coordinates to get elevation from surface side by side when you retrive the stationing from alignment based on the point coordinate.

I ran in to a problem with your coordinates, I can’t create points using them but use my graph as a example. Maybe you can combine it with the example from AU and let us know about your progress.
Not able to continue further right now. Need to go for an orienteering competition
KR,
Patrick

3 Likes

Hi Patrick,

Thanks for this, I was able to use this as a guide with the AU example to get this working. The key was to generate the station and offset from the excel coordinates which I could then feed back into the AU script.

2 Likes

I’m glad that it worked for you. :slight_smile:
A tip when you create screenshot for large graphs, zoom in until you can read the title of the node and then use the function in the upper right corner to create screenshot of workspace.
KR,
Patrick