Skip to main content


Hi,

I
need to tile a 3D city model. I have the model in formats .obj, .dxf,
.dwg and .gdb. I drawed polygons (shape) which i intend to use as
clipping/cutting/splitting boundaries, whatever helps. After hours of
googling and trying in FME with different formats and with clipper
boundaries as shape as well as 3D obj, and trying in NetFabb
and other software, i really dont know how to address this problem. I found a thread in this forum:

https://knowledge.safe.com/questions/5061/splitcut-3d-solids-and-surfaces.html

But the links to the example workbenches are unavailable. Can anyone point me in a direction or maybe even provide an example workbench?

Many thanks for any type of help!

Hi @uaclement,

 

Have you tried the Tiler transformer? This can split up your 3D shape into equal tiles. Is that what you're after? If not then Clipping is the way to go.

 

 

If you need to use polygons then each should have an id which you can use to merge onto your 3D features (This can be done as part of the Clip process). For your output you can use enable the 'Fanout' option in the writer to create a separate file for each unique polygon ID.

 

 

 

When clipping it is essential that everything is in the same coordinate system and it should be a projected coordinate system (where the unit is either in Feet or Meters).

 

 

I've attached an example which uses a PointCloud as an input 3D feature so its fairly simple to work with. You can download the point cloud from here if you want to test it out (https://s3.amazonaws.com/FMEData/FMEData2017.zip), it is contained withing the zip file in the 'Data/PointClouds' folder.

 

las2las.fmw

Hi @uaclement,

 

Have you tried the Tiler transformer? This can split up your 3D shape into equal tiles. Is that what you're after? If not then Clipping is the way to go.

 

 

If you need to use polygons then each should have an id which you can use to merge onto your 3D features (This can be done as part of the Clip process). For your output you can use enable the 'Fanout' option in the writer to create a separate file for each unique polygon ID.

 

 

 

When clipping it is essential that everything is in the same coordinate system and it should be a projected coordinate system (where the unit is either in Feet or Meters).

 

 

I've attached an example which uses a PointCloud as an input 3D feature so its fairly simple to work with. You can download the point cloud from here if you want to test it out (https://s3.amazonaws.com/FMEData/FMEData2017.zip), it is contained withing the zip file in the 'Data/PointClouds' folder.

 

las2las.fmw
Many thanks for your answer!
I've already worked with the clipper for some projects, but only with
2D rasters and vector data until now. Everything related to coordinate
systems and stuff I do know. I never faced any problems with 2D, but now
when i try to cut a 3D file i get the rejected feature error. I can't
use the Tiler since i dont want to cut through buildings, so i made my
own shapes which i try to use as clipping boundaries.

 


I already created IDs for my polygons manually using QGIS, and
regarding your workbench i assume the Aggregator is optional. Besides
this i tried it the same way with no success.

 

 


- Let's say i want do clip a 3D dxf. What do i use as clipper? With
2D i can use a simple shape file with a polygon, but this doesnt work
with my 3D dxf.

 

 


- Or if i try with the Wavefront .obj, a 2D polygon as a
shape file does not work, but i tried with 3D forced polygon extruded
and written as another .obj as well - didnt work either. What is the
right thing to use?

 

 


Is there a way to see what exact feature the Clipper rejected in FME?

 

 


Thanks again, cheers

 

 


After another session of trying I ended up using a SpatialRelator and a Tester. This way I can seperate all building parts according to my polygon shapes. The terrain is not cutted/clipped according to the polygons in this approach, every overlapping tile is included in the terrain output. But I can live with that.

@MattAtSafe Many thanks again for your inputs! Didnt need the Deaggregator because all features were seperately stored in the input file (ended up using CityGML).

fmewb-gml2obj.png


Reply