Point of Intersection of a flat 2d polyline with 3d featureline

Hello, I would like to find the points of intersection between a polyline that doesn’t have elevation with all the feature lines crossing it with elevations (center of circles in the photo attached)

make a plane which has same normal&origin with the normal at any point of the 2d line,
and get intersect point between the plane and 3d lines.

1 Like

can I get an intersection between solids and 3d lines instead of planes ?

sure, but intersection from solids will return lines if the solid has volume.

Hmm so I can take only one plane from the solid to get the intersection of the point correct ?

you can also go with a surface which is standing at the 2d line. But creating plane is much easier and simple way.

@War10ck you could also project the Feature Line geometry to the XY plane to compute the intersection points.


really good use of pullonplane node…thts awesome.

1 Like

where did you get the FeatureLine.GetDistanceOffsetElevationBy point?
Cant find that node

Civil 3D Toolkit package

Have it already, which version?

Just get the latest version, it will be in there.

I agree! I was recently trying to figure out how to flatten a 3D polyline and gave up, but I think this would do it! Thanks @mzjensen

Hi i use your workflow to do a similar task but the intersect points can’t be found at the same time and some can’t be found, which is not resonable, can you have a look at my dyn files?

Test.dyn (50.7 KB)

Change the Geometry Scaling to Medium and try again. As a rule of thumb, don’t change the scaling as it will introduce errors like you’re seeing here. If you search around the forum there are a lot of other posts that talk about this.

But when i change it to medium comes the error which i need change the Scaling to extra large, and it doesn’t change the error that i can’t get the right intersect points either.


Yes, you just have to ignore the message. It is a warning, not an error. So it will still run correctly.

Use Geometry.Intersect instead of Geometry.IntersectAll. Plug Curve.PullOntoPlane into the ‘geometry’ port, and then plug the Sample Line geometry (lines) into the ‘other’ port. Set the level for the ‘other’ port to @L1.

That works!
But why do i get two zero value for each sample line? It doesn’t make sense that the two projected feature lines has no intersect points there.

I don’t know exactly without seeing the actual data, so the only thing I can recommend is to keep experimenting with list levels until you get the desired result.

Hi @mzjensen
I have tried the two mentioned method above to do the insect and i got same results that only two feature lines have intersect points with sample lines or plane standing at the sample lines, it seems like when i use Medium Geometry Scaling, will only two upper feature lines be selected. But when i change to Extra Large geometry, some intersect points will be missing.
I have also tried with different list level, but results are not what i want…