it was more than 4 years ago, so my memory is a little vague. I think I constructed the buildings as polysurfaces, and then meshed them. This added the irregularities in the joining parts. Then I relaxed the mesh (think Kangaroo, even though it did not exist back then) and extracted the wireframe. While relaxing, the top and the bottom were fixed. They originally already had that circular form. Does this explain enough?
The geometry gym group is probably best place to ask questions, then I can attach files etc. http://www.grasshopper3d.com/forum/topics/extruding-profile-through-a might help you with orienting a profile to a surcace (surface normal closest to path curve mid point). I can add mesh if needed, but I'm sure in your case you can generate the underlying cylinder.