For the columns of the Sagrada Família, Antoni Gaudí twisted one prism clockwise and a copy of it anticlockwise, and kept only the volume the two share. The flutes split and merge as they rise. Here a row of such columns carries catenary arches, the inverted shape of a hanging chain, with barrel vaults between them.

Two rows of twisted stone columns carrying brown catenary arches and pale barrel vaults

Reference: choose Examples  Gaudí double-twist columns on the canvas toolbar to load the finished definition.

Build it

The column

  1. Place nine sliders: Sides: 4 (3 – 12) with Decimals 0, Radius: 2 (1 – 4) with Decimals 2, Column height: 14 (6 – 24), Twist: 90 (0 – 90), Sections: 16 (4 – 24) and Bays: 3 (1 – 6) with Decimals 0, Bay width: 10 (6 – 20), Catenary: 4 (2 – 15) and Rib radius: 0.25 (0.1 – 0.8) with Decimals 2.

  2. Place a Range (Maths), Along the shaft, from 0 to 1 with Sections → N, and three Multiplication (Maths) components: the range × Twist, that × -1, and the range × Column height.

  3. Place two Regular Polygon (Curve) components, Turned one way and Turned the other way, with Radius, Sides, the turns → A and the heights → Z.

  4. Place two Loft (Surface) components, one per stack, and two Cap Holes (Surface): two solid twisted prisms.

  5. Place a Solid Intersection (Intersect), Double-twist column, with the two solids.

The portico

  1. Place an Addition (Maths), Bays + 1, a Series (Sets) with Bay width → N and it → C (the column positions along X), and a Series with Bay width → N and C 2 (the two rows).

  2. Place a Move (Transform), Columns, with the column, the X positions and the rows → Y, with Graft on Y.

  3. For one arch, place two Multiplication components, Bay width × -0.5 and × 0.5, and a Range between them with N 24. Place three Expression (Maths) components: Catenary y*cosh(x/y) (the range, Catenary), At the springing y*cosh(x/(2*y)) (Bay width, Catenary) and Arch height x + y - z (Column height, the springing value, the catenary).

  4. Place a Construct Point (Vector) with the range → X and the arch heights → Z, and an Interpolate (Curve), Arch.

  5. Place a Series from half a bay with Bay width steps and Bays → C: the bay centres. Place two Move components, Front arches and Back arches (Y = Bay width), with the bay centres → X and Graft on X.

  6. Place a Rotate (Transform) of the arch by 90 and a Move, Cross arches, to the column positions with Y half a bay.

  7. Place a Loft, Vaults, and wire the front and then the back arches into its C (hold Shift for the second). Place three Pipe (Surface) components with Rib radius on the three sets of arches.

  8. Turn Preview off on the polygons, Lofts, Cap Holes, column, points, arches, Rotate and Moves (except Columns).

The Gaudí columns definition on the canvas
Figure 1. The finished definition
The red preview of the columns and vaults
Figure 2. The preview in FreeCAD’s 3D view

What is happening

Both prisms start from the same polygon and turn by the same amount in opposite directions, so at each height the column’s section is the overlap of a polygon turned +θ and the same polygon turned −θ. With four sides and 90° of twist each way, the two squares are 45° apart a quarter of the way up, where their overlap is a regular octagon, and 90° apart halfway up, where they coincide again as a square turned 45°. Up the shaft the section goes square, octagon, square, octagon, square, and the edges spiral across the faces.

The two smooth lofts start from exactly the same polygon, which is hard for FreeCAD’s Boolean: with six or more sides its exact intersection comes back empty. When that happens and the solids touch, Solid Intersection now tries again with a tolerance of 1/10 000 of the solids' size. It keeps that result only if it is a valid solid inside both, and says so in the component’s tooltip. The geometry tests check, at hundreds of random points, that the column contains exactly the points inside both prisms. That check matters: with only 8 sections at this twist, FreeCAD’s exact intersection returned a solid it reported as valid, but about 1 % of the test points were in the wrong place and the volume was 1.7 % too large. With 16 sections, or with the tolerance retry, every point agrees.

Each arch is the catenary z = H + a·cosh(W/2_a_) − a·cosh(x/a), which springs from the column tops at height H. A larger Catenary gives a flatter arch. Grafting the X positions puts each bay’s front and back arch in a branch of its own, so wiring both into one Loft makes one vault per bay. The portico updates in under a second, most of it the one Boolean.

Things to try

  • Set Sides to 8 and Twist to 45 for finer flutes (slower: the Boolean has more faces).

  • Set Twist to 0: both prisms are the same and the column is a plain square pillar.

  • Set Catenary to 2 for tall, pointed arches, or 15 for shallow ones.

  • Set Bays to 6 for a long cloister.