Syntax FACTORY_DEF ArcFactory [FACTORY_NAME ] [INPUT FEATURE_TYPE [ ]* []*]* [GROUP_BY []+]* (END_NODED|VERTEX_NODED) [BREAK_ACROSS_GROUPS [(yes|no)]] [PRESERVE_ORIENTATION [(yes|no)]] [CLOSE_LOOPS [(yes|no)]] [HANDLE_ARCS_AND_ELLIPSES [(yes|no)]] [CONSIDER_NODE_ELEVATION [(yes|no)]] [CONNECT_Z_MODE (EXTEND|AVERAGE|FIRST_WINS|LAST_WINS|IGNORE_Z)] [ACCUMULATE_ATTRIBUTES (yes|no|none|all|one)] [LIST_NAME {}] [LINES_AS_SEGMENTS [(YES|NO)]] [OUTPUT (LINE|NODES_BEFORE_PSEUDO_REMOVAL| NODES_AFTER_PSEUDO_REMOVAL|REJECTED| INVALID_GEOMETRY) FEATURE_TYPE [ ]* []*]* Overview This factory takes linear or polygonal features and outputs their component lines with all duplicates and pseudo-nodes removed. Linear features leaving the factory are only broken at topologically significant nodes. This factory is useful for determining the arcs required to divide a surface into regions, or to connect arcs that have the same attribute values. The input features may be grouped based on attribute values specified in the GROUP_BY clause. No attributes are carried across from the INPUT features to the OUTPUT features. However, all OUTPUT features have the GROUP_BY attributes added to them before being output. If BREAK_ACROSS_GROUPS is present, then the factory will consider all nodes from all groups of features when deciding on topologically significant points. If BREAK_ACROSS_GROUPS is not specified, then each group will be considered separately. The END_NODED and VERTEX_NODED directives tell the factory about the topology of the input features. END_NODED indicates that all features begin and end at topologically significant points, and that none of their vertices connect with any other features. VERTEX_NODED indicates that every vertex may be topologically significant and must be considered when looking to join features together. If CLOSE_LOOPS is present, then the factory closes any loops that do not share a node with any other lines in the data set. Such loops are output as polygons by the OUTPUT LINE clause. If CLOSE_LOOPS is not present, then loops will be output in two pieces, broken at arbitrary points. Note: When the CLOSE_LOOPS clause is used, the ArcFactory is more efficient at forming polygons than the PolygonFactory in scenarios where the polygons do not share edges. If PRESERVE_ORIENTATION is present, then the factory will not alter the direction of any of the input line segments in order to join them together. If PRESERVE_ORIENTATION is not present, the directionality of each input line may or may not be adjusted as the new lines are formed. If CONSIDER_NODE_ELEVATION is present, then the Z value will be used to determine if lines are joined. If CONDISER_NODE_ELEVATION is false or absent, then the Z value will not be considered when decided to join two lines. CONNECT_Z_MODE specifies how differing Z values should be treated, if two segments with differing Z values are being joined. EXTEND will add a vertical line segment to connect the points with differing Z values. AVERAGE will move the overlapping endpoints to have a Z value halfway between the two old endpoints. FIRST_WINS will take the Z value of the first of the two overlapping endpoints encountered. LAST_WINS will take the Z value of the last of the two overlapping endpoints encountered. IGNORE will preserve all Z values, and use paths to connect line segments that are not contiguous in Z. If yes or all is specified for the ACCUMULATE_ATTRIBUTES clause, the attributes of each input feature are merged onto the feature being output. If grouped, the attributes of each input feature within a group are merged onto the group's output feature. If no or none is specified for the clause, no user attributes will be carried across from the input features to the output features. If LIST_NAME is given, then a list will be created on each output feature, containing an element for each input feature which contributed to that geometry, in order of appearance. If the LINES_AS_SEGMENTS directive is given, then when lines originating from different input curves are concatenated into a longer curve in the output, they will be left as separate segments in a path. By default, such lines will be joined into longer lines in the output unless they have different properties (e.g. traits, measures, geometry name). The factory also enables users to get the unique set of nodes both before and after the ArcFactory processing. If the user wants the set of nodes as defined by the input set of arcs, then they are output via the NODES_BEFORE_PSEUDO_REMOVAL output tag. If the user wants the set of nodes as defined by the output set of arcs, then they are output via the NODES_AFTER_PSEUDO_REMOVAL. Tip: END_NODED does not make sense when polygons are input to the ArcFactory. In the context of this factory, the term arc does not refer to a portion of a circle, but rather to a topologically significant linestring If the FME_GEOMETRY_HANDLING directive is set to "yes" in the mapping file, arcs and ellipses are preserved throughout the processing of the component lines; otherwise they are stroked prior to processing. Assumptions This factory assumes that all input lines are already topologically noded. The factory also assumes that the input polygons and arcs have already been processed by a GIS product that has ensured the data is clean. The ArcFactory does not provide any snapping or intersection capabilities. Output Tags The ArcFactory supports the following output tags. LINE All linear features produced by this factory are output according to the OUTPUT clause identified by this tag. NODES_BEFORE_PSEUDO_REMOVAL This tag tells the factory to output the node features before removal of the pseudo nodes. Pseudo nodes are those nodes which are not topologically significant. That is, these nodes will be removed by the ArcFactory processing. This results in each arc endpoint being output once. If multiple arcs share an endpoint, then it is output only once. Nodes in which exactly two arcs share the same endpoint are also output. NODES_AFTER_PSEUDO_REMOVAL This tag tells the factory to output the node features after removal of the pseudo nodes. These are the nodes which form the end points of the arcs that are output from the factory. REJECTED This tag tells the factory to output any input features that had an invalid geometry, and couldn't be processed. TO BE RESOLVED Clauses HANDLE_ARCS_AND_ELLIPSES and Output Tag INVALID_GEOMETRY added to Syntax section above, but not documented.