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
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.
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:
NOTE:
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 points01.gh (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:
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 @René_Corella recommends would help clean up the small steps in the tower profile.
Both your ideas worked very nicely, so I thought I’d challenge you a bit more! I tried to build upon your ideas myself, but so far I haven’t been able to create anything useful. The biggest struggle has been sloping roofs, which I don’t really know how to handle. There’s also the matter of replicating the over several, which I’ve managed half-well.
I’m including a gh file with 70 buildings sorted with their outline and their point cloud. Any ideas on how to work them?
Hi @Kaj.AL
I highly recommend @Adam_M 's approach with Cockroach. You may need to play around with the NormalThresholdDegree and MinClusterSize, but you can get some decent clusters per roof plane with the CloudClusterCilantro component. I found when doing all the buildings at once, those settings didn’t work for every building, so you may need to do some individually.
It works so well with so many buildings! Amazing! Unfortunately a few of them seem to behave weirdly, especially when there are too many planes intersecting.
I did a few changes to your model, but I still couldn’t figure out why these issues happen. Do you think it’s because of the Cilantro settings, and is there anyway to work around it without having to make changes manually?
Hi Kaj,
I think my definition could use some refinement, but ultimately I believe it comes down to the Cilantro settings. I’ve seen papers like this use CGAL to do what you are after, I just don’t know how to implement it in GH.
Have there been any advancements on this topic? I got satisfying results for LOD2 buildings with a trial version of Lidar360, but the program is way too expensive for this use case only.
No, not really. It proved to be quite difficult to achieve good volumes for different kinds of buildings. If you have any good ideas I would be interested to hear them!
i’ve recently been into 3D building reconstruction using pointcloud data.
Obviously this is something quite complicated and has been a hot topic for a decade now for geomatics and GIS people.
Very curious to see if you guys can test/use this, if so would gladly see your results and share mine when i manage to understand this tool ^^
EDIT : for your information, the french geographic institute (IGN) is now testing multiple solutions to find out what’s the best way to reconstruct 3D lod2 buildgins using ariborn lidar data. you can check out their findings here : chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://www.eurosdr.net/sites/default/files/images/inline/eurosdr_lod2_seguin.pdf