Stepped offset

Hi guys:
I was trying to get an offset polyline or polycurve from an alignment or feature line. Basically something similar to the “stepped offset” command in Civil3D. I need to offset with slope.
Any idea?

Works only on polycurves. Check twice if the results are what you expect them to be.

Thanks @AlexanderBerg,
I’ve already tried in that way but unfortunately it does generate problems at the corners as you can see in the image.

Is it planar curve you want to offset or 3D?

3D but I could offset a 2D curve and set the elevation later because they are on the same plane.

Hello @Alessandro1985,

Not sure if this solves your problem entirely, but it may contain pointers that help! :slight_smile:

Alessandro1985_OffsetCurvesIn3D.dyn (53.6 KB)

@solamour Nice workaround, but it won’t work as stepped offset where you can control the height difference at the tangent plane of the 3D curve.

@Alessandro1985 you have 90 degree turns in your curve which are tricky to deal with. The first thing that comes to mind is to control the density of the point with coordinate system. What I mean is to skip all the point where the turn takes so that the rebuilt curve from points won’t collide with itself. But it can be pain to deal with, plus you wont get 100% exactly the place where the turn happens.

Maybe @Thomas_Mahon (the curve master) have a trick up his sleeve :slightly_smiling_face:

1 Like

Exactly! that’s the problem I can’t fix!
Translation is different from offset.

Just wondering if this is any help?


This isn’t my area of expertise :smiley:

Do you mean that the entire offset is of a value different to the origin curve (But the same: i.e 1000mm lower), or that each part of the curve is different based on some chosen condition?

just so we are clear: offset makes sense ONLY for planar curves.
If the Curve is 3d like in this case, you COULD project the curve onto the XY plane, perform the offset and translate the points back along the Z axis bearing in mind that the number of points of the offset curves may differ from the original.

1 Like

In addition to the last comment , if the 3d polyline you want to get the offset is onto a topo surface, you can project the terrain’s Z elevation once you have the 2D offset. However, if the line is contained in a road platform you should :

  1. Extract the top surface then project points.
  2. Make the difference of which side, right or left, and apply the superelevation in the station.
    Question: is it possible to extract station superelevation data from a corridor?? Maybe it should be another forum question.

To be honest I’m not even sure what to make of it, because even if you’d just want to offset it in the horizontal plane to every point on the curve, where the heck should the new points end up?

Maybe numerical approach in python could do something, but my knowledge of computing such curves is not that extent. Yet.

Hello @AlexanderBerg , i tried this and it works for any 3DPolylines. You must select a surface target to properly adjust the new Z of the offset 3DPolyline. If yoy want and stepped constant DeltaZ you should modify the last nodes of this code.
This is properly to adjust the aligment of a fence in a corridor or parcels surface, for example.
Let us Know if it works for you.Offset3DPolyline.dyn (76.9 KB)

@javiermend to be good solution it has to be platform independent. I use Revit, not Civil 3D so the method won’t work for me, and up to this point I’ve tried to solve it only with standard dynamo nodes. Besides, this method requires to have something except curve itself, so that’s not ideal either. Nevertheless, kudos for trying :+1: a method is still a method and maybe this will work fine for @Alessandro1985

The second one. It’s just pain to deal with this kind of stuff… :roll_eyes:

1 Like

Ah… yeah that sounds difficult!

Hi guys,
At the moment I’ve figured out in this way.

1 Like