Question

Multiline to donut


Badge +1

Hello everybody,

please, has anybody idea how to create from multilines polygon with holes (donut)?

Feature below is composed by many lines, but I need to convert them to single donut.

I also attached data sample of this feature.

Thank You so much!

Lubo


4 replies

Userlevel 4
Badge +13

Hi @lazarlubomir You just need an AreaBuilder. 'Aggregate Handling' should be set to 'Deaggregate' by default and 'Create Donuts' should be checked. If you want the holes to be dropped then set that also.

Userlevel 2
Badge +17

Hi @lazarlubomir You just need an AreaBuilder. 'Aggregate Handling' should be set to 'Deaggregate' by default and 'Create Donuts' should be checked. If you want the holes to be dropped then set that also.

Just be aware the source geometry contains many degenerated lines which have only one vertex. The AreaBuilder routes them to the <Rejected> port, so you will have to connect an object (e.g. Junction or Logger) to the <Rejected> port, or set Continue Translation to the Rejected Feature Handling parameter in the workspace.

Badge +1

Hi @lazarlubomir You just need an AreaBuilder. 'Aggregate Handling' should be set to 'Deaggregate' by default and 'Create Donuts' should be checked. If you want the holes to be dropped then set that also.

Hello @danatsafe , @takashi ,

thank You so much for Your advice! It works. Anyway, this feature is from Revit file and I have met many problems with reading geometries. E.g. Feature geometry is very often composed by multilines, but they should represent GIS entity - wall, windows, doors etc. So very often FME reads feature as aggregate of lines, check below:

But, my question, is there any possibility, how to create from this aggregate one big polygon copied shape of aggregate? Or six smaller polygons copied all closed parts of aggregate?

I attach data sample of this aggregate.

sample.zip

Thank You so much for ideas!

Lubo

Userlevel 2
Badge +17

Hi @lazarlubomir You just need an AreaBuilder. 'Aggregate Handling' should be set to 'Deaggregate' by default and 'Create Donuts' should be checked. If you want the holes to be dropped then set that also.

If you need to create six polygons from the multiline, split the lines at intersection nodes with the Intersector and then apply the AreaBuilder. Then, you can also use the Dissolver to merge the six small polygons adjoining into a single large polygon, if necessary.

Reply