Here is a solution. Limitations: only the y-displacement of the curve is evaluated. Height of column has to be aligned to z-axis.
The basic idea is, to create a cylinder and move the vertices of its vertical edges along the normals of these edges. This shall be based on the displacements of the vertices of a resampled curve. The original curve will be provided as an input parameter.
Details are explained below.
How does it work
The following nodes generate the cylinder. Most of its input parameters are published to the Group Input. This makes it easy, to configure the column, that we aim for.
The following nodes execute the displacement of the vertices:
The direction is determined ty the normal of each vertex. We project this onto the XY-plane, because the normal of the topmost and lowest vertex is not orthogonal to the z-axis. We normalize this, so that we can define the length by a calculated value, that I called Y-Displacement.
The following nodes calculate this value:
In the lower frame, we resample the profile curve, so that its number of vertices corresponds to the number of side segments of the cylinder. We do this, because, we want to take the first vertex of the curve, to modify the indices of the topmost segment and so on.
We calculate a z-index, to map the segments to the indices. The vertices of a cylinder are organized counterclockwise for each side segment from top to bottom.
Next we use the calculated z-index to access the position of the corresponding vertex of the curve, by using a Sample Index node. The y-coordinate of this position is the calculated Y-Displacement.