Syntax FACTORY_DEF DonutHoleFactory [FACTORY_NAME ] [DEAGGREGATE_INPUT [(yes|no)]] [INPUT FEATURE_TYPE [ ]* []*]* [OUTPUT (OUTERSHELL|HOLE|REJECTED) FEATURE_TYPE [ ]* []*]* Overview This factory takes a feature that should be a donut polygon, a plain polygon, or an aggregate of such. It splits the aggregate or donut polygon into its components - outer shells and a series of holes - and outputs them accordingly. The holes are guaranteed to be output in the same order in which they are stored on the original feature. A single polygon is output untouched. Each component has all of the original feature's attributes. Non-area components are passed to Rejected port. If DEAGGREGATE_INPUT keyword is specified and set to yes, than all the input features with collection geometries will be deaggregated. Composites will not be split and shared geometries will not be instantiated. Assumptions The DonutHoleFactory assumes that all features it gets are either single polygons, donut polygons, or aggregates of such. Tip: The DonutHoleFactory is often used to split complex polygons into simple geometry for output to systems lacking support for polygons with holes. Output Tags The DonutHoleFactory supports the following output tags. OUTERSHELL The outside containing ring(s) of the original aggregate or donut polygon are output with this tag. HOLE Each hole in the original feature is output with this tag. REJECTED Features that are rejected by the factory, i.e. non-polygons, non-ellipses, non-multiareas and non-aggregate geometries.