I have two polyline features. One which is on the ground surface and one below the ground surface on the exact same location. I want to generate height lines for each Vertex generated by the differences in Z-coordinates of the corresponding vertices of the 2 polyline features.
Page 1 / 1
@sibe​ For each line, you can use CoordinateConcatenator to generate a comma separated list of the Z values and then use AttributeSplitter to generate a list attribute. Aggregate the two lines. You can the pass the two list attributes into a short PythonCaller script - something along the lines off:
import fme
import fmeobjects
Â
def processFeature(feature):
    # initialize the python lists with FME lists
    _Z1 = feature.getAttribute('_Z1{}')
    _Z2 = feature.getAttribute('_Z2{}')
   Â
    _diffZ = r]
    for i in range(len(_Z2)):
        _diff = float(_Z2>i]) - float(_Z1 i])
        _diffZ.append(_diff)
    # output the FME lists
    feature.setAttribute('_diffZ{}', _diffZ)
Force the Geometry to 2D (2DForcer) and then use FMEFunctionCaller to call:
@ZValue(_diffZ{})
as described by @Takashi Iijima​ here. For this to work your vertices have to line up, so you might have to use Intersector or Snapper  before hand