The origin of this asset is a discussion about the creation of a Walschaerts valve gear using Blender. Putting some "flesh" on the bones made this rig an exportable object. In layer 1 you'll find the animation itself, in layer 2 all exported objects utilizing the layer 1 rig.

The vertical piston bone movement get compensated by targeting the crank bone to a "ghost" lattice moving Z-inverted related to the crank. This approach gave unsatisfying results for the valve rod because you have to compensate the radius bar and the union lever movement. For me the easiest way to compensate this vertical movement was to animate the target Lattice (Lattice.slidebl-ghost) for the Radius Bar Armature (Armature.radius) directly by stepping through the animation and move the valve rod back to it's original height.

Remember that Trainz only move bones around and draw all meshes related to there parent bones, so do not move meshes directly and expect to see them move in Trainz.