Hi all,
Very new Dynamo user here. I am a bridge engineer in MA trying to find ways that my team can automate or at least speed up some of our design / drafting tasks. We use AutoCAD C3D pretty exclusively (i.e., we do not use Revit at all) - it’s what our clients use and require that we use.
I think creating framing plans of our bridges might be something that Dynamo could help with, but I’m having trouble figuring out the first step. The first thing we usually do after getting the alignment from our highway team is to offset it to create the outer “edge of deck” lines, and then figure out the girder spacing between those lines. So, what I really want to do is figure out how to offset an alignment (creating a polyline) between two stations. Any help or ideas on how to do this would be greatly appreciated!
If you haven’t already done so, the first thing you should do is download the Civil 3D Toolkit package. It has several additional nodes that make Dynamo much more usable in Civil 3D, including a node to create polylines.
Here is an example for you to try as you get going.
@mzjensen if you have a moment, could you explain to me why the “get planes at bridge start and end” and “intersect with offset curves” are necessary? I can understand every other part of the code except for those. Thanks in advance!
Sure thing. My thought process was to lay out the graph in a similar way to how I would approach the process in Civil 3D. Here’s what that would look like:
Offset the alignment to create the girder and deck polylines
Draw lines perpendicular to the alignment at the bridge start and end stations
Trim the polylines from step 1 using the lines from step 2
The thought process is the same in Dynamo, except that trimming geometry is a little more work. In Civil 3D the user chooses which side of the ‘cutting’ edge to trim with a mouse click, but in Dynamo you have to specify a point on the side that should be removed. So the process in Dynamo is like this:
Offset the alignment to create the girder and deck curves
Create planes perpendicular to the alignment curve at the bridge start and end stations
Get the intersection point of the plane with each girder and deck curve (this provides the ‘cutting’ location the same as step 2 above)
Trim one side of the curves first, then trim the other side
As with most workflows, this isn’t necessarily the only way to do it
Thank you! I didn’t realize that Dynamo needs planes for trimming. That explains it.
Now I’m off to try to come up with ways to modify the code to allow for skew angles & variable girder spacing. Wish me luck!
Not quite…the Geometry.Trim node won’t actually work directly with a plane. That’s why I was intersecting the planes with the lines to get points, and then those are used as the geometry to trim with.
Does the AlignmentExtensions.GetGeometry node successfully return the polycurves? If I remember correctly it will tesselate the spirals to a series of line segments. But if it gets a nurbs curve then I don’t know if the PolylineExtensions.ObjectByGeometry node will work.
Yes, it does.
This is the error I am getting {Warning: Geometry.Trim operation failed. PolyCurves may be branching} when the offset is set to a non-zero figure.
Sometimes that error comes from having the alignment style when the line extensions are turned on. If you turn it off is should work better but I’m not too confident in it handling spirals.
Hi @mzjensen this works great in plan, for an alignment with horizontal curves. However it does not seem to work on an alignment with vertical curves as well. I get an error that the join curves into poly curve node results in more than one wire.
Hi, I just finished reading the topic and tried it, it works perfectly, but now I’m having a problem when I want to create polylines like the image below from an existing alignment but I still don’t understand how to do it. My idea is to create polylines that are trimmed according to the chainage’s ticks and the input data is taken from the excel file. I’m still quite new to dynamo and hope anyone can help, I’d greatly appreciate it.