Skip to main content

Hi,

I've installed FME Desktop 2018 and have a script that uses DonutBuilder to intersect areas with each others. Before this transformer I have a sorter to sort my areas to get the lowest symbol first. It works OK in 2017, which I just tried on my laptop. The problem in 2018 is that it seems that the DonutBuilder can't handle all the areas that overlap. Does anyone have a solution for this?

Regards and thankful for help!

/Ann

Could you perhaps post a small sample dataset and workspace that illustrates the issue? That would be very helpful.

I export the data from OCAD to Shape and I've posted an example of the data in the zip-file below. I made the script to cut the polygons against each others because OCAD store the polygons as a pyramid and the script is in the zip-file. In 2017 I had no problems with this script but now in 2018 DonutBuilder don't work in the same way.

i would be so thankful to get some ideas what to do.

Regards/Ann


I am not sure what is causing the issue why the areas in the south keep overlapping in FME2018, but replacing the DonutBuilder with an Intersector and an AreaBuilder gives you the output you are looking for.

If you look at the description of the DonutBuilder, it might be that there are some topological errors causing the issue.


I am not sure what is causing the issue why the areas in the south keep overlapping in FME2018, but replacing the DonutBuilder with an Intersector and an AreaBuilder gives you the output you are looking for.

If you look at the description of the DonutBuilder, it might be that there are some topological errors causing the issue.

Thank You for looking at it! That is what I also think about and why It happens. If use Intersector together with Areabuilder I will loose my attributes which I need, so I don't think that's a good solution.

 

 


Thanks for the sample, that was very helpful.

I tried running the workspace with your data using both 2017.1 and 2018.1 and it does indeed look like the DonutBuilder behaves slightly different between those two FME versions, even when the DonutBuilder itself is of the exact same version:

VersionFeature countInspector on SYMBOL=2102017.16 in, 6 out

2018.16 in, 8 out

The issue seems that the FME 2018.1 doesn't properly detect two of the overlaps, seen in the two dark green areas in the lower screenshot. Why, I have no idea, unfortunately.

I tried upgrading the DonutBuilder transformer to the latest version both FME 2018.1 and 2017.1, but no change in the results.

I recommend that you contact Safe support and point them to this thread, hopefully they can give you an explanation.


It seems that if you use a GeometryValidator set to remove duplicate consecutive points on the input data, you should get the result you expect. You currently do have a GeometryValidator, but you need to tick off the checks you actually want to perform, as well as connect the Repaired port:

As it is, the GeometryValidator does nothing.

I have no idea why the DonutBuilder in FME 2018.1 is more sensitive to this issue than previously, but please consider sending it to Safe. It could potentially be a small regression.


Thanks for the sample, that was very helpful.

I tried running the workspace with your data using both 2017.1 and 2018.1 and it does indeed look like the DonutBuilder behaves slightly different between those two FME versions, even when the DonutBuilder itself is of the exact same version:

VersionFeature countInspector on SYMBOL=2102017.16 in, 6 out

2018.16 in, 8 out

The issue seems that the FME 2018.1 doesn't properly detect two of the overlaps, seen in the two dark green areas in the lower screenshot. Why, I have no idea, unfortunately.

I tried upgrading the DonutBuilder transformer to the latest version both FME 2018.1 and 2017.1, but no change in the results.

I recommend that you contact Safe support and point them to this thread, hopefully they can give you an explanation.

Thanks! I will contact the support.

 

 

/Ann

 

 


It seems that if you use a GeometryValidator set to remove duplicate consecutive points on the input data, you should get the result you expect. You currently do have a GeometryValidator, but you need to tick off the checks you actually want to perform, as well as connect the Repaired port:

As it is, the GeometryValidator does nothing.

I have no idea why the DonutBuilder in FME 2018.1 is more sensitive to this issue than previously, but please consider sending it to Safe. It could potentially be a small regression.

Thank You!

 

It worked OK now and I have also send it to Technical Support to Safe.

 

 

Regards/Ann

 

 


Reply