I am trying to use grasshopper to parametrically create a skyscraper resembling a pixelated cathedral. From the outside, it will look like a series of poles. I laid out the general arrangement of the foot print. I just need help extruding these circles where they gradually increase in height towards the center of the field. The max height should be around 1100 ft. I want to do it this way so it is easier to adjust the heights as I progress on this project for midterms.
Hi, you could extrude all your circles to one height and create a solid that represents the volume of your building. Then use a boolean intersection between the solid and the extrusions to shorten the extrusions.
Thanks, David. I appreciate your help but Iâm looking for a more parametric solution that would allow me to quickly adjust heights as I work through this design considering I am in school so the form will change constantly.
I derived the center points of your circles and used them to make random height square Domain Box âcolumnsâ, taller near the center, shorter near the perimeter. SUnion is still grinding away at joining them all into a single âClosed Brepâ, we shall see how that goes⌠Beware of wiring that SUnion!
This isnât fully parametric because the point grid (internalized) is given (from the .3dm file), not adjustable. Itâs actually not a grid because the rows âdriftâ with the curved edge, so the rectangles overlap inconsistently.
Yes. A wire between the Box component and the SUnion will attempt to join all the boxes (each a âClosed Brepâ) into a single âClosed Brepâ with a large open interior. But it takes a very long time and may well fail. Still waiting for it to complete on my copy. This might have gone faster if the grid of points (from circles) were not a skewed grid, which is visible in top view.
You can increase the height, of course, by extending the range of the slider now set to â300â.
SUnion is still lost in space working on my original version with 14,182 âcolumnsâ, and aside from the huge number, itâs easy to see why itâs complicated. The skewed grid is caused by the fact that the two longest edges of the perimeter are not exactly square to each other. The grid points (circles) are parallel to both of those edges, leaving small rectangular gaps at each columnâs corners.
I parameterized the grid so âpixel_sizeâ (a slider) can now be increased from 2 in the .3dm file to 30+, as shown below. SUnion is quite fast with only 71 boxes instead of 14K. With some of the side panels removed, those little gaps become tiny artifact columns in what ideally would be open space.
Thank you so much. Last question, is there a way to invert the heights of the original file you sent?
I had the idea of using the extrusions as screens from the surrounding traffic creating an interior bowl-like shape. The heights of the perimeter cylinders correspond to the speed of the traffic
This version implements a square grid, which I think works better. SUnion failed completely though with all the co-planar faces, so I added a âFudge Factorâ (yellow group) of 0.01 to the âpixel_sizeâ value, which is just enough to make SUnion happy.
Something I see now but didnât notice before is that while my âtaller in the middleâ strategy sorta works on âH_maxâ, it fails to adjust âH_minâ which should also be greater, eh? As is, there are some columns that get quite low in the middle of the interior space.
Yeah, if you swap the inputs for the first Construct Domain component, like this:
Itâs a multiply factor, based on distance of each grid point from the center (Average), for the Random height values defined by the other Construct Domain component (âH_minâ To âH_maxâ). But as I said, it really isnât implemented correctly because it doesnât affect the minimum values near the center, only the max values. This allows the bottom of some columns near the center to be lower than what Iâd like to see.
Earlier today when you first shared the initial script, you said you derived the center of the circles I provided for the point container. What do you mean by derive and how do you do it?