How can I model a ramp between walls with varying height in Blender / Bonsai?

I want to create a ramp in Blender between several walls.
While creating the ramp, I need to change its height from one end to the other, and the walls along the ramp are also curved.
So the ramp needs both a varying elevation and a complex/curved path.
Is there any recommended workflow or tool for modeling such a ramp in Blender/Bonsai?

Ramp.png 139.5K

Comments

  • edited December 2025

    You'd have to model this with Blender tools, and then 'bake it' into .IFC.
    There's currently not Bonsai tools, that i know of, that allows for this to be done parametrically.

  • @theoryshaw said:
    You'd have to model this with Blender tools, and then 'bake it' into .IFC.
    There's currently not Bonsai tools, that i know of, that allows for this to be parametrically.

    Thank you for your response. I tried doing this with Blender, but the result is not a smooth ramp surface. The ramp created using this method ends up with a lot of bumps and irregularities.
    I need the ramp to have a completely flat and clean surface, because in the next step I want to create an IfcSpace on top of it, which requires a perfectly planar geometry.

  • Can you share the file, and what tools in blender did you use to create this ramp?
    Is the ramp, a spiral?

  • edited December 2025

    @Erfan_Hoss

    Thank you for your response. I tried doing this with Blender, but the result is not a smooth ramp surface. The ramp created using this method ends up with a lot of bumps and irregularities.

    if you select the two curved sides on top and use (edit mode) Edge > Bridge edge loops you get something like:

    zoomerfaridcher
  • first Method.> @theoryshaw said:

    Can you share the file, and what tools in blender did you use to create this ramp?
    Is the ramp, a spiral?

    Yes, the ramp is spiral.
    In Blender, I created a Cube and modified its geometry in Edit Mode so that it fits between the ramp walls. I did this by extruding faces or moving the cube’s edges and vertices. After that, I assigned an IfcRamp to the created Cube.
    This can also be done as follows:
    Go to Add → IFC Element → set Definition to IfcElement → set Class to IfcRamp → set Representation to Custom Tesselation → OK.
    This creates an IfcRamp whose geometry can be edited. Then, by entering Edit Mode, you can repeat the same modeling steps described in the

  • @steverugi said:
    @Erfan_Hoss

    Thank you for your response. I tried doing this with Blender, but the result is not a smooth ramp surface. The ramp created using this method ends up with a lot of bumps and irregularities.

    if you select the two curved sides on top and use (edit mode) Edge > Bridge edge loops you get something like:

    Thank you.
    I didn’t quite understand it.
    I’m having trouble creating the ramp shown in the first image you sent
    Do you mean that the curved ramp should be created using Bridge Edge Loops?
    I would appreciate it if you could explain this in more detail.

  • MasMas
    edited December 2025

    @Erfan_Hoss you can also try it this way... (there are more ways, from calc points to geometrybased, boolean,...)
    Note you can hide also faces in Editmode "H"


  • edited December 2025

    @Erfan_Hoss

    Quick 'n dirty procedure I know, maybe something more professional is available?

    1. create two mesh curves and rotate to make them touch top and bottom level respectively, they need to have the same number of vertices, select them both and use ctrl+J to join them
    2. use Edge > Bridge edge loops to create your ramp that exceeds on the XY the actual one (from top view it is larger than the one you need)
    3. create a plan and trace your wall lines from top, to create a top view of your ramp, extrude it on Z to create your solid you need for the next step

    now position (align) the 'gross' ramp and your solid built on the wall lines

    use boolean 'Intersect' to create your ramp

    The zig-zag of your walls complicate the process a bit but the 'smoothness' of your ramp is determined by the number of vertices you use in your curves.

    Hope it helps

    faridcher
  • @Mas
    @steverugi
    Thank you both for your help.
    I will try both methods and let you know the results.

  • @Erfan_Hoss
    @Mas ' method is smart but IMHO it rotates a plane (made out of co-planar vertices) along 1 axis, in your case you have two curves 'spiralling' on the z axis to be joined to form a sort-of plane.
    I'd like to learn more on this topic if there is a good solution to it.
    Cheers

  • MasMas
    edited December 2025

    @steverugi I know you need to have some slope somewhere, normaly imo there is the slope to the inner radius, because I´m a little lazy I did it with a plane and a little bit of "sculpting".
    If knowing the further streetcurves, it would be easier to find a more mathematical/geometrical solution.
    My fast solution is attatched. (but there is a lot more geometry in now, but it´s nearly smooth, one time subdivided)

    KnifeProject and "Knife" is also a possible solution. Thought also about generating 2 or 3 (converted) curves for cutting.

    faridcher
  • Yet another way to skin this cat: A mesh with just a single horizontal edge, and using a "screw" modifier:

    It will still require additional scaling and tweaking, but it is a real quick and easy method. Optionally use a solidify modifier to give it thickness. Once happy, you must apply the modifiers - they will not work with Bonsai.

    theoryshawsteverugiMasfalken10vdlfaridcher
  • Just for info knifeproject is viewbased, to adjust the angle with numpad and cut (through) is a cool feature.
    💪🏻🖖

    faridcher
  • I tried all the methods you suggested. Thank you very much.
    The method by @steverugi was good. I followed it through to the end, but I ran into an issue when applying the Boolean Intersect operation.
    The approach suggested by @sjb007 was also good; however, since I have zigzag-shaped walls around the ramp, it seems that this method cannot be applied in my case. That said, I would be happy to hear any ideas or suggestions.
    In the end, I managed to create the ramp using the method suggested by @Mas . Although the ramp still has some irregularities, it is much better than the one I originally created.
    Thank you all for your help.

    steverugifaridcher
  • @Erfan_Hoss Just a followup on the zig-zag walls. If you don't want the goemetry extending beyond the jagged sides, you can create a full height block representing the channel (2), then use as a boolean cutter to trim a soldified version of the curve object. This will give (1):

  • @sjb007 It seems like a good approach. However, which two geometries did you use for the Boolean operation?
    One of them is the block shown in part 2 of your image— what is the other one?

  • In that image:

    • Cube is what turned into the ramp object (1). It started as the default cube that gets edited to be a single edge that then gets the Screw modifier applied. It then gets a solidify mod, followed by the Boolean with Cube.001, and last but not least Smooth by Angle.
    • Cube.001 is the hidden object used to do the boolean on Cube. It has to be in the correct location, and is hidden so you don't see it overlayed.
    • Cube.002 is a duplicate of Cube.001. It is only there so it can be offset and made visible to demonstrate the shape of Cube.001

    Of course none of this modifier magic is compatible with Bonsai/IFC. So once happy with the object you Apply all the modifiers, turning it into a base mesh, then in Bonsai assign it an IfcClass. Same goes if you turn it into IfcSpace's.

    Erfan_Hoss
Sign In or Register to comment.