Hello
I think there is a problem with
https://developer.rhino3d.com/api/RhinoCommon/html/M_Rhino_Geometry_Intersect_Intersection_CurveBrep.htm
could also be related to this problem
I look at that.
Hello
I think there is a problem with
https://developer.rhino3d.com/api/RhinoCommon/html/M_Rhino_Geometry_Intersect_Intersection_CurveBrep.htm
could also be related to this problem
I look at that.
@rhino16, @paul.metzger
here a new version, I make many modifications. So I will be happy to know if it works with your curves.
Tolerance is used to transform curves in Polylines. Curves must be on XY plane.
I use here some code from this discussion from @PeterFotiadis and @RadovanG
it tooks ~30 s to compute for 768 roofs.
Hello Laurent,
you made a great program, i tried it in rhino 7 and it work so far fine.
I have a question regarding the shape of the roof. Is it possible to get it more like a gable rooftop? That two side have steep angles?
thank you in advance
Hello
Yes it must be possible
I did that :
So I must find a way to tweak the new definition to make the same thing.
The problem with this type of specialization is to find a good way to enter the angles, not too simple and not over-complicatedā¦
Great progress! Also you implemented the multicurve support directly. Nice!
But I still have a challenge for you to figure out. Lets call this un-capable⦠(15.4 KB)
I also attched a GH so you can check out the non working curve for yourselfā¦
sand_dune_mc-internal-non-working-curves.gh
Thanks for reporting, I know where this problem come from, I just check brep that touches Plan.XY !
Iāll have to fin a way to retrieve the cutted brep that fills in holes.
There is also this one, but not my fault
I think the complicated part here is that you have to define which sides are the ones that have the steep angles.
IĀ“ve acomplished gable rooftops so far by generating a ānormalā roof first, then taking the very upper curve of this roof, extend it to infinity, intersect it with a extruded surface of the base-surface and then combine the edge vertices with this intersection point. Might be a bit complicated but it works very well. In this case I never have to set the lines of the steep angles manuallyā¦
@rhino16 @paul.metzger
New Version, it works on example given, sometimes it outputs more geometry than number of roof but this is due to bad roof border. I mean very sharp angles that generates intersection at places not intended.
Implementation is surely not bullet proof. I first take all roofs touching the ground then I union all parts. Then search for holes. Then put in holes geometries that were not used and not having a bounding box center coincident with a previous geometry.
I also change the way curve is transformed to Polyline. So if it already a Polyline, there will be no changes.
IĀ“ve tried your āmultiple angles roof generatorā. DoesnĀ“t work with more complex shapes
Do you have a version that works with Rhino 7?
I looked at it some time ago and i didnt work. My logic to make contour as polyline is not a good idea with variation of angle. So i didnt manage to make a workable tool.
The only way I can think of doing this properly, is using the STALGO algorithm for the straight skeleton, but with a modification for the vertical angle of the edges in the motorcycle graphā¦this algo is pretty hard to implement, because you need to solve the collision problem at different angles. The straight skeleton is a collision based algo. other of the ways is by adding a parameter for the angle of the corner rays, instead of just using bisectors. But in this way you cannot specify the slope of the roof first. In the ideal roof generator algorithm, you have to be able to specify the slope of the different surfaces by hand, and the location of the principal axis. If your are gonna have to do this is probably just better to model the roof by hand.
Its funny because this problem is actually central to architecture, but I never seen anyone in the past 8 years having even a close solution to it
That sounds interesting, even when I donāt quite understand what you are doing Would you mind sharing the gh file? It would be much appreciated.
Hey Joel, well its not the most robust way to generate it. I had some troubles with it. Is your buidling polygonal or rectangular? If it is rectangular you can create the sattle roof way easier. I think its necessary to emphasize that the sand dune approach is perfect for non-rectangular buildingsā¦
Thank you for the quick answer. I am looking for a script for gable roofs on polygonal (L-shaped, U-shaped) buildings. Maybe I have to go through the sand dunes script again to see what is possible with it.
Youāre looking for the sand dunes script iteration that allows variable angles.
You can set the gable angle to 90 and leave the others to default and you should get a hip roof on all faces with the exception of the gable face.
Does that make sense?
This one was working for simple geometry
Thanks a lot! This works pretty good! Can I somehow use the color Gradient to define an angle? Like green roof and lila roof 90 degrees, rest 35 degrees. That would be quite practical. But otherwise amazing work!
The tool is now in Nautilus plugin and it accepts curves in whatever plane you want.
If you want multiple angles see the tool Arqishap3d
Hi Laurent,
Have you seen this approach for constructing roofs that have variable-sloped faces?
https://www.sciencedirect.com/science/article/pii/S0010448517301240
Unfortunately, I canāt make much use of that article⦠I know that many Rhino and VisualARQ users would benefit from having a high-quality, flexible solution for complex roofs. In this case, I can only kindly ask if there is a chance that somebody could turn it into a Grasshopper component. I would be also the first on the list to crowdfund such an effort.
Iāve looked at all the roof solutions I could find relating to Grasshopper and @laurent_delrieās code is what I have settled on as it yields the best results.
But, as this article points out, roof conditions like gable ends, dormers, flat tops, or varying heights from a single height input profile/curve set gets ācomplicatedā and while Iāve put this on hold for now I, and I know others, would be very keen to be able to solve for ātypicalā architectural conditions of roofs such as gable, dormers, dutch gables, shed, etc.
With Laurentās variable angle version of the script I was able to get gable ends working by effectively feeding an angle of 90 degrees to those sides of the boundary curve, thus producing a gable.
I experimented with Dutch gables by parametrically offsetting the sub-curve of a roof boundary at a Dutch Gable condition up the existing āhip roofā face and then lofting/extruding out the dutch gable portion at the top but never quite finished that in a polished state.
Roofs are annoying in that they are complex yet stupidly simple simultaneously, really roofs are just edges that have an angle given to them, creating a plane, and these planes are trimmed at their intersections and you end up with any conventionally framed roof form from that method. This obviously doesnāt account for onion domes, curvilinear roofs, etc. but thatās another/separate issue.
The majority (please correct me if Iām wrong) of roofs are framed with planar faces intersecting each other and some variation of this at a smaller/local scale within the larger roof form (such as dormers)
Solving this portion of the problem would be so highly beneficial. Next chance I have Iāll compile what I have been able to produce thus far and share to this thread in the hopes of advancing the topic.
TLDR; this is something I, and others, have been wanting/hoping to solve for years, and Iād love to collaborate on this effort for those open to it.