Skip to main content
Solved

3D Intersect between 3D line and Solid


canerakin
Contributor
Forum|alt.badge.img+6

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?

Best answer by daveatsafe

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.

View original
Did this help you find an answer to your question?

7 replies

canerakin
Contributor
Forum|alt.badge.img+6
  • Author
  • Contributor
  • May 18, 2021

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.


canerakin
Contributor
Forum|alt.badge.img+6
  • Author
  • Contributor
  • May 22, 2021

Any help with this question?


caracadrian
Contributor
Forum|alt.badge.img+23
  • Contributor
  • May 24, 2021

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.


canerakin
Contributor
Forum|alt.badge.img+6
  • Author
  • Contributor
  • May 25, 2021

Hi @caracadrian​,

This should not be complex that much.

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


david_r
Celebrity
  • May 27, 2021

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.


canerakin
Contributor
Forum|alt.badge.img+6
  • Author
  • Contributor
  • May 27, 2021
david_r wrote:

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.


daveatsafe
Safer
Forum|alt.badge.img+19
  • Safer
  • Best Answer
  • May 31, 2021

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


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings