The column comparisons can be pulled from the Geometry.DistanceTo and Geometry.ClosestPointTo nodes.
The workflow is roughly:
Get all of the location information for the columns and tagged elements.
Use DistanceTo, crosslaced, and figure out which column is closest.
Use ClosestPointTo to get the X,Y of the column.
Use the vector from the column to the tagged element and break out the X/Y components.
Clean up presentation of data
Plug into tag-associated parameters.
The closest floor level works similarly except you would just look for the shortest downwards-pointing vector.