Civil 3D - Sweep by 3D Poly (or points with elevation)

Hello everyone,

I am developing a routine to generate 3D solids based on XYZ points obtained from surfaces and alignments. I have already extracted the XYZ information, but I have not been able to convert it into a 3D solid.

I rotated the geometry that I want to project (a circle), but I could not generate the Sweep By Path operation. I am currently using the default nodes available in AutoCAD Civil 3D 2025.

Basically, I want to replicate the AutoCAD SWEEP command. So simple as this:

Has anyone tried to do something similar before?

Thanks in advance.

Within Dynamo, a pipe could be modelled using the Solid.BySweep node from the Geometry menu. Then, you can use the Solid.ByGeometry node from the AutoCAD menu to create a 3D solid object in Civil 3D.

C3D_SolidBySweep.dyn (32.8 KB)

FYI, Geometry.Translate node just moves the geometry similar to the MOVE command in AutoCAD.

Also, depending on your L.O.D., you might want the pipe to be have a void. This could be created by making a second pipe that is smaller and then using the Geometry.Trim node.

C3D_SolidBySweep_Trim.dyn (47.8 KB)

Alternative method using Circle.ByPlaneRadius and PlaneAtParameter:

Thank you for answering, I really appreciate it.

I realized that I was using too much informartion - points - to define the geometry of the elbow instead using the fillet option. So, I simplified the information. Now I only have three points.

However, I’m stuck because I’m not able to generate a PolyCurve from my transposed list. The node retrives only a single segment of the expected PolyCurve. I don’t know why It only joins points 1 and 2, and omits the point 0.

Could you help me with this, please?

You’ll need to provide more context. Post a dataset and dyn. Otherwise we’re just guessing.

Note that you can highlight a list index (i.e. click the 0 List value) and get labels applied to your geometry preview. No need to manually edit or post process.

Sure!

Thank you for the advice, too.

Drawing1.dwg (989.7 KB)

AUXILIARY_PIPES.dyn (119.2 KB)

Set geometry scaling to ‘medium’ and you should be all set. By using large points 0 and 1 become the same point as it removes all accuracy after the decimal point - you’re basically rounding to a full grid unit (so likely one foot or one meter depending on your units).

It worked!

Thanks again

Please mark the solution to your original post instead of your follow-up question about polylines.

A Solution to a Post is the Solution

The solution to a question in any given post should be the actual solution, so that others using the thread as a resource should be able to resolve a similar problem. This solution may either come from another community member or the original post author. Even if a community contribution got 95% of the solution and the original post author modified the final 5%, the solution to a post is to be marked as the Solution.

Sorry to be a stickler, but marking the solution will help other people trying to achieve a similar objective. :robot: