Great efforts @Bilan_Gumus ! Instead of the ‘cull’ use ‘dispatch’ so you get both removed and desired elements - turn off the preview for the dispatch component and extract the output you want - alternatively, invert the cull component you have.
Dispatch will not work because i need a Boolean to extract point 1 and 9 (9 points in total) and delete their connection. Like you can see on the image the “behind the facade” lines have to go away.
Disable preview on the un-culled bits?
It appears to me that Cull Index and Cull Pattern are doing the same thing, provided the same cull pattern is used for both.
Cull Index:
Cull Pattern:
Regarding Shift List (you have four of them), do you know the default for ‘W’ (Wrap) is True, so no items are removed. It makes no sense to use zero for the ‘S’ input as that has no effect. Usually I invert ‘W’ to remove an item and use ‘S’ = 1 to remove the first item and ‘S’ = -1 to remove the last item.
P.S. I’ve never mastered RelItem but it looks like you’ve done that correctly. As for the rest of it, both Cull Index and Cull Pattern can be replaced by Shift List, removing the last line in both cases, like this:
Tower 5 diagrid_2023Sep19a.gh (61.9 KB)
I like what you’re attempting with the relative item @Bilan_Gumus , yet I think the true highlight is your shift in direction via a more manageable geometry.
Please pardon this insolence:
I trust it sparked good redemption as your efforts now prove. Very inspiring!
I took another look and I think you can re-utilize the diagonalize method you were suggested previously before you opted for the diagrid alignment relative to your floor levels. You should obtain what you’re onto at the moment without having to clean up those gnarly lines provided you use the current point setup to obtain mesh quads, unify them, then convert to diagonal mesh as shown below.
Here’s an example:
Tower 5 diagrid.gh (56.4 KB)
P.S.:
The modeling class I’m involved with this semester starts today - I am using you as an example of persistence and determination.
When opening your file, diagonalize is not working ? I don’t see the triangulations like on the picture.
PS; I’m not an architect, but an autodidact. But i understand what you mean. I recommend you the book; Visual Thinking: The Hidden Gifts of People Who Think in Pictures, Patterns, and Abstractions . The author is Autistic and has studied people with visual thinking abilities her whole life. Visual thinkers like architects and designers versus engineers who think visually also but abstractly and in patterns. Grasshopper is an abstract program, so for architects, you need some time to make it work versus computational experts. She explains it very good in the book why computer scientists understand algebra (visual pattern thinker) better than architects ( visual thinkers). Grasshopper is algebra even if it feels like a visual interface …
Thank you!!!
So much better! Though I am by training, I teach in industrial design
Are you using Rhino 6? It’s a component in the kangaroo 2 tab - it comes with grasshopper in R7.
@michaelvollrath solved something quite similar here using relative item where we were also talking about ‘diagonalize’ lol:
I need some help with projection on brep. I’m trying to project the Diagonal grid on the Loft brep, because now we created a solution but not al lines intersect each other to form a structure. I created a script for projection with a Vector for the projection direction. It doesn’t work. I think that the Projection Vector is wrong. What is supposed to be a good projection dirction for a complicated Loft like this ?
Tower 5 diagrid.gh (72.9 KB)
No intersection of the diagrid at arrow >
Tower 5 diagrid.gh (72.9 KB)
Makes sense - the diagonal mesh approximates your open surface but isn’t flushed with it. But then once projected they wouldn’t be ‘straight’ anymore? Is that okay?
You can try pull, but that’s not a projection.
Two days ago I spent a lot of time trying things similar to what you did with RelItem. I had a “bounding cylinder” for the whole brep and separate bounding cylinders for each floor. Absurdly complex but no results I wanted to share. Part of the problem was the open brep but only part. In the end, I was imagining a spiral surface that intersects the brep… but didn’t go quite that far.
Maybe a workaround is creating intersections instead of projections. For that you’d have to join your lines then offset them (both positive/negative on a plane that works - used your surfaces for a quick example), loft all these offsets, and intersect with the tower:
Tower 5 diagrid (1).gh (69.1 KB)
Another way, going back to the diagonal mesh, would be to pull instead of projecting, onto the (exploded) faces of your tower, plus some clean-up:
Tower 5 diagrid-pull.gh (64.7 KB)
As you see it will be a bit naughty though I guess you could adapt the pull method to your lines (discarding the lines from the diagonal mesh).
Cheers
Yes i tried pull but it got ugly very fast + i was trying to project point instead of curve, but the problem is that since the two Diagonals for the diagrid do not intersect, i will have 2 points projected. You can not build a new diagonal from 2 middle-points. Your method above works perfectly! Amazing. I now have middle-points! I can rebuild the Diagrid with those middle-point since organic diagrid are not very stable.
Or maybe i can keep the organic diagrids ? What do you think from an engineering point of view ?
Not an engineer but…*depends on what’s structural and what isn’t? Anything is possible–divide and conquer (parts and pieces)–finite element analysis–kind of thing? $$
Zaha?
I went ahead and implemented the spiral intersection. It doesn’t look great.
Got the python spiral from @martinsiegrist here:
It’s one line of code:
a = rs.AddSpiral(point0, point1, pitch, turns, radius0, radius1)
I highlighted the most important parameters in blue groups:
Spiral intersection:
Fan intersection:
Tower 5_2023Sep20a.gh (548.1 KB)
The irregular shape makes irregular spiral intersections but playing with parameters helps.
This version has the python spiral ‘pitch’ input = 320 and the ArrPolar ‘N’ (Count) input = 32:
The spiral parameters are explained here:
https://developer.rhino3d.com/api/rhinoscript/curve_methods/addspiral.htm
The pitch, or distance between turns.
P.S. I removed the unsatisfactory orange ‘fan shape’ group and replaced one dependency the ‘spiral shape’ had on it. Less is better.
Tower 5_2023Sep20b.gh (531.0 KB)
This is awesome!
It’s a ‘helicoid’
I was concerned the intersecting method is faulty eventually.
Anyway, I love helicoids - I admit it didn’t cross my mind to use it here! 'Love geometry.
Aha! moment - definitely stealing it!
Thanks @Joseph_Oster / @martinsiegrist
However, in my {stubborn} choice to stay away from using scripting (python in this case) I copy the logic staying vanilla with grasshopper just for fun - obviously not exactly the same just inspired by it:
Tower 5 {helicoid} diagrid.gh (78.9 KB)
@Bilan_Gumus - I am not sure you’re going back to the old shape so I applied it to the last geometry/process you were using.
*Edit:
The slider labeled ‘TURN’ should be interpreted as turn/density I guess.
Cheers
I like your method. In the picture below you can see the method we worked on before and yours compared. You can see at the blue arrow how your method is respecting the curvature of the brep by dividing the diagrid into more of them. Something we missed in the previous method and this was the goal from the beginning, respecting esthetics. On the other hand, Osters method is the opposite of yours, you can see on the second picture that he has some ugly geometries, but Osters diagrids are respecting the floors (contours) while your method is not really matching the floors. I will look into it.
Are the breps the same? I don’t think so, eh? Your original brep was… complex.