Syntax @Coordinate([REJECTABLE,](x|y|z|c1|c2|c3),(|END)[,FLATTEN_AGGREGATE],[(yes|no)]) @Coordinate([REJECTABLE,](x|y|z|c1|c2|c3),ALL,[,FLATTEN_AGGREGATE],[(yes|no)]) @Coordinate([REJECTABLE,](KEEP|REMOVE),(|END)[,]) @Coordinate([REJECTABLE,]RESET_FROM_ATTRIBUTE,,[,]) Arguments REJECTABLE If this keyword is specified, rejects features that would otherwise cause errors. The first parameter controls the axis from which the coordinate value are taken. The first axis is denoted by "x" or "c1". The second axis is denoted by "y" or "c2". The third axis is denoted by "z" or "c3". Range: (x|y|z|c1|c2|c3) The second parameter indicates which coordinate is of interest. The first coordinate is given the index 0, and the last coordinate is at index position @NumCoords()-1. As a convenient shortcut, the last coordinate of the feature may be accessed by using END as the index. As well, a negative index can be used to count the coordinates from the end of the feature. -1 refers to the last coordinate, -2 the second last, and so on. If the ALL shortcut is given, then all coordinates are extracted to the given , and the function will return the number of coords. Range: (0..<@NumCoords()-1> | -<@NumCoords()>..-1 | END | ALL) The third parameter indicates number of coordinates in the range of interest, starting at the position indicated in the second parameter. Range: 0..<@NumCoords()-1> FLATTEN_AGGREGATE This flag, if present, will ensure that the coordinate returned for multi- part feature(aggregate feature) will not include the internal FME meta information for aggregates. Range: N\A If log_warning is not present, the function will log warning if there is any every time the function is called. If log_warning is yes, it will log a warning if there is any, if log_warning is no, it will not log a warning even if there is one. Range: (yes|no) RESET_FROM_ATTRIBUTE This flag if present as the first argument will allow to set the coordinate values from the attributes on the feature. Range: N\A Name of the attribute that will be used to get the x value for the coordinate. Range: Existing attribute name Name of the attribute that will be used to get the y value for the coordinate. Range: Existing attribute name Name of the attribute that will be used to get the z value for the coordinate. Range: Existing attribute name Description The first form of calling this function returns the value of a single coordinate of a feature. If the feature is 2D and a request is made for a value on the third axis, zero will be returned. If the given index is out of range, then an exception will be raised and the translation will abort. If the first parameter is KEEP, then this function will only keep those coordinates within the specified range. If the first parameter is REMOVE, then this function will remove all the coordinates in the specified range. If KEEP or REMOVE is attempted on a feature that is an aggregate or solid or surface, then an exception is raised and the translation is aborted. The second parameter indicates the index of the first coordinate in the range. The index may be any integer from zero to one less than the number of coordinates in the feature, or a negative number that specifies the index measured from the end of the feature. -1 refers to the last coordinate, -2 the second last, and so on. If END is passed in, then the last coordinate is the initial coordinate of the range. If the index given is out of range, then an exception will be raised and the translation will abort. The third parameter is the number of coordinates in the range, starting at the position indicated in the second parameter. If the third parameter is not given, a value of "1" is assumed. If the third parameter is not an integer or is negative, the translation will abort. If the number of coordinates indicated extends beyond the number of coordinates that exist, the range will be considered as extending from the second parameter to the last coordinate (without complaint). For both KEEP and REMOVE, the value returned is the actual number of coordinates removed, if any. If the first parameter is RESET_FROM_ATTRIBUTE then the subsequent parameters will be attribute names from which the x, y and optionally z values will be obtained for setting the coordinates on the feature. The required second and third parameter and should be the name of attributes from which the values of x and y coordinates will be retrieved. All features that end up as a single point will have their fme_geometry set to fme_point. All features that end up with no geometry will have their fme_geometry set to fme_undefined. Features that end up with more than one point will have their fme_geometry unchanged. The user should be careful that this remains valid.