How to create a curved tile roof?

I’m modelling curved tile Korean roofs for archiving older structures in Korea. I’m having some issues creating a semiautomated process for this task since laying every tile one by one would take an enormous amount of time and be maddening. The current process I create involves using ArrayCrv to lay down individual lines and tiles in order to run them. This works for less curvy roofs. However, on the building I’m modelling currently, the roof is very curvy and my process begins to break as tiles being to clip through each other and overlap incorrectly.

Is there any way this can be solved either using Rhino or Grasshopper? Below I’ve attached images and a link to download the file I’m working on. Any and all help is greatly appreciated!

Photos of the actual roof: Imgur: The magic of the Internet

Photos of my previous method: Imgur: The magic of the Internet

Link to download file: 453.09 MB file on MEGA

Hello- can you please provide a simpler file with just a few elemetns that shows the problem you are trying to solve?


Have you seen this thread on tiling roofs? Paneling double curved surface (roof tiles)

Yes, no problem Pascal, thank you for the help! Here is a file with just the roof structure, rooftiles, and basic guidelines. The two guidelines in the file layout the curve as it should be at the bottom portion of the roof along the rafter ends, and the curve as it should be along the ridge of the roof. You can see from the photos in my last post the degree to which these two curves differ is quite great, spawning my current problem.

This style of roof (Hanok—Korean house—roof) has tile stacks which run along the ridges, hence where the general rooftiles meetup needn’t be very neat and generally the just meet along the same lines. I have included some photos both of this style of roof, and of how the rooftiles meet up in another model I made of a less drastically curved roof where my previous method worked on.

The general goal I want with this model is to have the rooftiles follow a curve of the roof structure, not exactly because ontop of the structure is generally placed filling which makes the curve smoother visually, but so that the tiles meet with the correct places, i.e. at the roof’s hip corners, with the gable, at the ridge of the roof, and also that the tiles lay correctly so that they are not clipping through each other.

I hope this helps, if you have any further questions for me please leave a comment! I really appreciate the help! :slight_smile:

Some more examples of this style of roof: you can see the tile ridges which run where the various sections of roof tiling meet up to cover the rough meeting points between the sections.

Here is a link to a simplified version of the file with roof structure, rooftiles, and basic guidelines, as mentioned above: 187.03 MB file on MEGA

Hello - it looks to me like you want a simple surface with a grid of points on it, spaced by distance along the surface - with the distance set right - looks like trial and error. PanelingTools can do this - ptGridSurfaceDistance

Then OrientOnSrf > Rigid, Copy=Yes may(?) get you what you need, possibly.

Does that look like being on the right track?


This looks like it might work. However, when I try it in Rhino, selecting a surface and using ptGridSurfaceDistance does not create any points. It says the points are made in the dialogue box but none can be seen nor selected. Using Rhino on MacOS 12.0.1