I am using FME to fill in some small holes within polygons. I have used DonutHoleExtractor to split these out, however I have found the output via the HOLE port also brings existing 'filled' holes (valid polys that have an outershell).

How can I differentiate these??

  • AreaCalculator and Tester for area smaller than 0.2HA - you can also add a Attribute filter add an attribute 'hole' and filter by that.
    – Mapperz
    Commented Jun 13, 2012 at 13:26

2 Answers 2


If you're trying to fill the holes with the same attributes of the outershell, then you shouldn't need to use the HOLE port. The transformer description shows a picture of the output. The outershell is essentially a filled polygon.

Your input data may actually have valid polygons which are coincident with the holes.

Am I answering your question? Or am I missing something?

  • i am only filling holes less than 0.2HA so linked the hole output to a tester
    – 0_T
    Commented Jun 13, 2012 at 5:50
  • and yes the input data does have valid polys coincident with some holes (i want to retain those). i only noticed that it output these too as i wrote 2 features out 'removed holes' and 'retained holes'
    – 0_T
    Commented Jun 13, 2012 at 5:53

Perhaps it would help to expose the format attribute fme_geometry' (use an AttributeExposer or do that in the Reader Feature Type properties dialog) then have a Tester transformer check to see if its value is 'fme_donut' or 'fme_polygon'.

Then you could filter out features that are not donuts before the DonutHoleExtractor, and you wouldn't get them mixed up in the HOLE port output.

Does that help?

  • thanks everyone, and thanks Mark, I was going to put a flag field in but what you suggest is better, thanks again
    – 0_T
    Commented Jun 15, 2012 at 7:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.