Skip to main content

I am trying to intersect 3D Polylines and Solid Cubes to determine which cubes are touching the polylines.

So far I tried Clipper, intersector, SpatialRelator and SurfaceOnSurfaceOverlay. All the features are ending in the rejected port as invalid geometry.

What is the right way to accomplish this task?

I was able to complete this with "Select by Location" in ArcPro using 3D Intersect. However it would be great if there is a way to do this in FME instead of using Arcpy/ArcPro.


Any help with this question?


There is a workaround for this in FME that works for simple 3D shapes.

You intersect the lines with the hull of the shape in every plane (XY, XZ, YZ) do some aggregation and test for the number of planes in witch it intersects a shape (cube).

If it is equal to 3 it intersects the cube you are testing for and you get the cube ID.

I attached a sample workspace (thanks for the sample data 😀) that does this. I created UUID's both for cubes and for lines so i can work faster, you can ditch UUIDGenerators and replace your own ID's in the SpatialRelators attributes to add to the list and Aggregator, if there are any.


Hi @caracadrian​,

This should not be complex that much.

Is there any other easy way? @david_r​ @Takashi Iijima​ @Mark Stoakes​ @ebygomm​  @daveatsafe​ 


Perhaps contacting Safe support could give you some additional answers. If the functionality isn't available or doesn't work as intended, I'm sure Safe would like to know about it.


Perhaps contacting Safe support could give you some additional answers. If the functionality isn't available or doesn't work as intended, I'm sure Safe would like to know about it.

Hi David,

Thanks for the suggestion. I just opened a case.


Hi @canerakin​,

We are working on improving FME's 3D intersecting capabilities to include surface features, but at present only solid and point cloud geometries are supported. However, using a little geometry transformation, I think we can get the answers you are looking for.

The attached workspace densifies the lines and converts them into linear point clouds, then clips by the cubes to transfer their attributes onto the appropriate lines.

Screen Shot 2021-05-31 at 2.17.02 PMPlease try the workspace to see it produces the results you need.


Reply