Aplo
10.10.2026

I needed to model a ramp

Our house will be built on a slope, and this week I needed to model the ramp. Landing, Ramp, Landing. At the top and the foot of the ramp the slab needs a transition, a vertical curve, so a car doesn't ground on the edge.

A lower landing, a ramp and an upper landing as three separate slabs, and the same three joined by a curved slab at the foot and the top of the ramp
Fig. 1 — before and after: landing, ramp and landing, rounded onto each other

Up to 0.3.1, Trim/Extend to Corner couldn't do that. It only worked in plan, and only to a sharp corner, which is all Revit's TR does too (in Revit, a rounded corner is a separate drawing tool, Fillet Arc). A ramp meeting a landing is a corner in elevation, and I wanted it rounded, so the tool was missing two things at once.

So I added a radius. I started in plan, where the tool already worked, and with two lines. I wanted the result to be a real arc, the same as SketchUp's own Arc tool draws, so when I select it Entity Info shows its radius and segments, rather than a run of short lines that only looks like an arc.

Two lines three times: apart, joined by an arc, and joined by a straight cut
Fig. 2 — two lines apart, rounded on a real arc, and chamfered

Walls took longer, because every layer has to run round the bend on its own radius from one shared centre, otherwise the layers wouldn't keep their thickness through the curve. At first I thought about bending both walls, half the arc each, but then neither would have straight ends any more and every later trim or merge would refuse them, so the curved piece became a group of its own between them.

Two layered walls three times: apart, joined by a curved piece in which every layer bends round one centre, and joined by a straight piece mitred to both
Fig. 3 — two layered walls apart, rounded and chamfered; the corner piece is a group of its own

Once I had the radius, I realised a curve isn't the only answer on a ramp, since a lot of the guidance asks for a short straight transition at about half the gradient instead.

The landing, ramp and landing three times: as separate slabs, joined by curved slabs, and joined by short straight slabs at a shallower slope than the ramp
Fig. 4 — apart, rounded and chamfered: the straight transitions slope at half the ramp's gradient

So I added a chamfer. I type two lengths, like 300;450, and the corner is cut straight, standing back 300 along the first piece I click and 450 along the second, because the two sides of a corner needn't be the same. Between two walls or slabs the cut is again a piece of its own, but unlike the curved one it's a plain straight slab, so the other tools can actually still trim and merge it later.

With both working in plan, I turned the whole thing on its side so the same two clicks work in elevation, on two lines in one vertical plane or on two slabs, which is the part the ramp needed in the first place. I went one step at a time (sharp corners between lines first, then rounded and chamfered ones, then the same three between slabs) and last of all let a ramp narrower than its landing, or set to one side of it, meet it as long as the two overlap.

When I tried it on the actual ramp, it wouldn't bend. I'd only let two slabs bend if their layers matched, and mine didn't quite, because a ramp drawn with plumb ends is a little thinner measured square to its slope than the landing it meets (200 · cos θ against 200). So instead of a curve I got a sharp corner I hadn't asked for. My first idea was to treat plumb ends as a special case, but any other difference in the layers would still have fallen back to a sharp corner, and a small step is closer to what anyone drew than that. So now the first piece I click sets the layers of the bend, and the second meets it with whatever step the difference leaves, which means the order of the clicks is how I say which thickness bends. On my ramp that step is only a few millimetres, too small to see, so Fig. 5 shows the same thing with a 300 ramp between 200 landings.

Thin landings and a thicker ramp three times: as separate slabs, joined by curved slabs, and joined by straight slabs; the joins are as thin as the landings, and the ramp meets them flush on top and steps underneath
Fig. 5 — a ramp thicker than its landings: the bend takes the landing's thickness, and the ramp steps on its soffit

Two walls with different build-ups meet the same way, with the wall I click first setting the layers of the corner.

A thicker and a thinner layered wall three times: apart, rounded and chamfered; the corner piece has the thicker wall's layers, and the thinner wall meets it flush outside and steps inside
Fig. 6 — walls of different build-ups: the first wall clicked sets the corner's layers, and the second steps on its inside face

A radius on a thick slab also depends on where it's measured, so the face I click is the one it's measured on (top surface or soffit, inside or outside).

The same layered wall corner four times, seen from inside: three rounded to R 800, each measured on a different face, and the two walls apart
Fig. 7 — from right to left: the walls apart, then R 800 measured on the outside face, on the face between insulation and masonry, and on the inside face

Before the second click, Ctrl steps through the faces in between, and the preview shows where the arc lands on each one.

Four views of the same pair of walls before the second click, the dashed arc moving from the outside face to the inside face as Ctrl steps through the faces
Fig. 8 — stepping the face the radius is measured on with Ctrl, before the second click

Along the way, a few smaller things changed too. The preview now draws the actual result before the click, clicking the same pair again replaces a corner made earlier, and in Trim/Extend to T a group brought to another group stops every layer on its face. Trim/Extend to T and Merge still only work in plan for now.

A thin layered partition short of a thicker layered wall, and the same partition brought to it with every layer stopping on the wall's face
Fig. 9 — Trim/Extend to T between two layered walls: every layer of the partition stops on the wall's face

All of this goes into the next Release 0.4.0. What it doesn't do yet is follow along when I move the landing or the ramp afterwards, so the arc stays where it was until I round the corner again. I'd like it to stay correct when either side moves, and that's what I'm working on next.