Building from point cloud and outline

Hi everyone!

I have been trying to figure out how to solve this myself, but I just can’t figure anything even remotely smart. I’m trying to create building representations from laserdata points and outlines. Since the points don’t follow the corners of the buildings, I don’t know how to make it nice and boxy. Does anyone have an idea on how to do it?

I’ve included a crude drawing of how it should look, sorry about the ugly lines :slight_smile:

I’ve also included a grasshopper file with the points and outlines. I’m going to replicate this on quite a lot of buildings when making site models, that might be good to know.

Thank you and have a good day!

Building from (41.5 KB)

Your question is a bit unclear.

Does this mean you need to use the outlines you’ve drawn?

If yes, then why try to rely on the points?

If you’ll use outlines defining the boundaries, then why not separate the pointclouds into sections, which you can enclose with extrusions of each outline?

Sounds like a nightmare of impossibility. Will you draw outlines for every pointcloud?

Is the outline you’ve provided drawn by you or automatically generated with a pointcloud software/plug-in?

I ask because there are discrepancies that will affect extrusions if you went that route:

0. I work with pointclouds often so I’m trying to be of help :wink:

  1. Pointclouds are a pain in the ass.
  2. Pointclouds are a bigger pain in the ass using Rhino.
  3. There are plug-ins for both rhino/grasshopper but #2 is still true.

Perhaps a viable option for your current file can involve:

  • separating your outlines into regions:
  • extruding these outlines to the ‘height of each pointcloud’ once you split the clouds into separate ones based on actual as-built parameters:

    You’ll quickly realize that even this quickie isn’t reliable as some points will ‘share walls’ and will affect the separate heights.
    Nonetheless feel free to check it for possible insight:
    Building from (62.3 KB)

Alternatively you could look into CloudCompare’s shape detection, or poisson reconstruction - betting you’ve probably heard of it. Test it for your pointcloud(s) and see if you can generate meshes automatically, which you could trim to your outlines aftwerwards:


wait for it…

yes, it will suck :slight_smile:



Oh yeah I forgot, you could also use convexhull to isolate planar outlines per each pointcloud region:

They will not be rectangular though. Probably pointless (lol, no pun intended) because you already have outlines…

Another approach could be to segment the points into groups that are mostly coplanar using Lunch Box’s GaussianMix and AssignPaths from Tree Frog, find their 2d minimum bounding boxes with Minimum Bounding Box in a fitted plane, intersect these bounding boxes with the building footprint, then create volumes from each region. Splitting the footprint as @corellaman recommends would help clean up the small steps in the tower profile. (58.5 KB)



Here is also a very quick test using Cockroach.


Thank you so much for all the input, it looks very promising and I look forward to testing it as soon as my work load lightens!

About the input, the point cloud is not as dense as what I would like, and the outlines comes from another file, so I don’t create them myself.

Kind regards, and THANK YOU SO MUCH again!