algorithmic modeling for Rhino
Following this discussion http://www.grasshopper3d.com/forum/topics/arcs-on-curves?xg_source=... here are some other elements to replicate arches styles of Tama Art University Library. I didn't try to replicate the sloping floor.
First the arches, I used 7 points Weighted Nurbs Curves with 5 points with a weight of 1 and 2 points with a variable weight (0.66 seems to be a good candidate). 2nd and 6th points are used also to control the arche shape, they are positioned relatively between first/third and fifth/seventh (0.1 seems to be a good value). First and last point are slightly under the floor level in order to cut the walls after.
Distance from end is used to narrow the arches, it is not the good method, the good one must take into account angle between walls but it is not implemented here.
See this dicussion http://www.grasshopper3d.com/forum/topics/nurbs-curve for more informations on Nurbs Curves.
Here a view of the script in "fast" mode with just the curves and no solid operation. An arche is put on a curve between 2 intersections. A parameter "max width of arcs" is used to limit width of arches. If this parameter is 10 m, and curve is 15 m, the curve is cut in 2 portions of 7.5 m. There is also a paramater to limit narrow arches "Limit Lenght to put arc". The curves are cut on intersection using example given on this discussion http://www.grasshopper3d.com/forum/topics/split-curve-s-by-intersec....
The second thing is to make the walls. So first you need a network of curves. They need to be disjoined.
The exterior is defined using Boundary Surfaces, each room is defined using suface split. The edges of the surfaces are then offseted in 2 directions, the longer or smaller is choosen depending if it is the interior or exterior.
After that extrusion and solid difference are used to have wall and floor.
Thirdly, the walls are then cut by arches which are projected on wall, this projection is extruded on both sides. If the cut is bad, it could be a problem of tolerances in Rhino. So lower the tolerance. You could also increase "distance from end".