Set curve elevation from object

Hi everyone,

Does anyone have experience on doing something similar to the Set elevation by reference (feature line command) for polycurves in Dynamo?

I have a Drafting 2D drawing and I have to develop 3D solids from the 3D drawing and the alignment profile. I have tried different approaches doing it by point with the ClosestPointTo node, but I have quite a different set of inputs (arcs, polylines with too little or too many points) and this is creating me issues in terms of processing or complexity of the script.

I’m not sure I totally follow what you’re trying to do, but it sounds like you could use Geometry.Translate or PullOntoPlane.

1 Like

For the PullOntoPlane command I would need to create a plane out of the alignment (polycurve) and not sure how could I do this correctly, will think of this to see.

For Geometry .Translate, X and Y would be 0, but the Z would be variable so not entirely sure it will work as I expect.

What I am trying to achieve is from red lines (2D plan location) and grey line (3D alignment) obtain the 3D green lines with a relative heigth from alignment, not sure if that explains it any better.

Thanks for the help @Nick_Boyts !

I tried what @Nick_Boyts suggested but still having issues with the Pull to surface solution. When I try to create the solids out of th e curves Civil 3D just freezes and doesn’t give any result.

I attach a little example, both CAD file and Dynamo script, and I think it is clear what the intent is but I can clarify. As I said before this seems to crash in the last node. Also if someone has any suggestion on a better approach to this I am open to suggestions :slight_smile:!

Test_Ducting_v4.dwg (1.4 MB)
C3D_Ducting_v4.dyn (52.0 KB)

PS - I did not tag the post to the Civil 3D forum and now I cannot edit the initial post, sorry about that!

Does this grasp your intent?

curveElevation.dyn (20.5 KB)
(Geometry extracted from DWG file imported into Revit)

Since you have an alignment and profile, I would experiment with Profile.PolyCurveByRange. I think it might get you what you need.

Profile Polycurve

Thanks @Vikram_Subbaiah, I’ll give it a go.
What I am afraid is at the amount of points or precision as we are talking about 12km and the lines have different length, some go for 1km and some others for 50m, so the short ones will probably have issues when inserting so many points this is giving me a hard time… because when I do trials Dynamo gets stucked and I don’t know where it is failing

@mzjensen I believe that would help me to obtain a polycurve for the profile but I have a 3D polyline already, thanks anyway it seems an interesting node that can be useful other time.

@VAparici why don’t you do it in Civil 3D directly, without Dynamo? it looks to me that you have a linear object you can convert to a featureline / alignment + profile and you can create super simple subassembly with an offset target (your red lines).


Hi @Paolo_Emilio_Serra1, the example of the red line is just a simplification of the actual work, the intention to do it in Dynamo is because normally we have about 80 lines like this divided in to 6 different types (different relative elevation). And this same design is going to be applied to various models, quite a great opportunity for automation. I actually did it for the first section and was developing the model in a couple of minutes but with the second model the inputs have changed slightly and the process crashes and cannot find the why so I have been looking at alternatives.

In addition we have to introduce properties to the final solids that we produce that otherwise need to be introduce manually (we are already having a few errors because of the manual typing :sweat_smile:), although true that with the corridor solution will be covered too.