Grasshopper

algorithmic modeling for Rhino

Hello guys,

Question here, it would be glad if anyone could help me out.

I’m currently working on my project, I’m trying to stack 2 house together while keeping the amount of open space on one single site.

I came out with 3 possibilities. One being just addition, the other is by stacking, and the third one is reducing site and adding open space on the building.

For the third one, I would like to undergo a process of carving.

The carving would allow me to keep a certain amount of open space in the building that was taken off from the site.

House A + House B = a certain amount of site removed, building taller, open area is kept in the building.

Are there any technique/definition of doing it here? At the moment I was just doing it manually. :(

Attached file

Views: 1828

Attachments:

Replies to This Discussion

Not sure if this is what you want. Basically set each group of your house+site to a different Brep component, entwine them. Then you ll get a stack based on your input order. Location is where you want your stack to be, the default is (0,0,0).

Attachments:

Hi Loos, I still dont really get the script here, does the script only do the first generation?

I was browsing on the net a little bit, i found there is this formula (permutation & combination) is something that i got to input?

Q1: If im right, you want to input some cubes then stack them, not the script generates some cubes by itself. Am i right?

Q2: Does every cube go with a site?

Q3: You want something like the seed func to shuffle the position of these cubes?

Q4: When the cubes are stacked together, do you want to keep their sites?

Q5: For what i understood, the difference between gen1 and genN is that you added more cubes to the thing... Now i know its not what you want, then whas it?

Hi Loos,

So sorry for the confusion.

for

Q1: yes, for the new problem here, i wanted to input some cubes to stack them. then the script will generate more cubes as it becomes more intense. like gen 1: 4 cubes  gen 2: 8 cubes   gen 3:16 cubes

**more generations will eventually go higher.

Q2: Every cubes are taken from the site and it will go in to a total site.

Q3: Yes, the seed func will shuffle the position of these cubes. (under a condition where they do not overlap)

Q4: When the cubes are stacked, i want to keep the site cover (just amount of area) not the surface. And they will be sitting with the cubes.

Q5: I think i should show you the transition from gen 1 to gen n here.

wait a minute

When its permutation, (3,3,3) is possible, but impossible for combination, if you re picking 3 numbers from the list [1,2,3]

For example your list is [houseA,houseB,houseC] (to simplify the thing lets forget the site for the moment.)

So what you want to achieve is like permutation which means you allowed the same thing appear more than once in the same floor

[houseB,houseB,houseB] for Floor0

[houseB,houseA,houseA] for Floor1

[houseA,houseB,houseC] for Floor2...

or combination, everything only being used once for each floor.

[houseA,houseB,houseC] for Floor0

[houseA,houseB,houseC] for Floor1

[houseA,houseB,houseC] for Floor2...

In my script the different sets of Breps could be considered as the thing you called "merge" in your pic, then what it does is stacking this merged houses... So you want it also to merge all the initial houses<lets call this step1>, then to stack evert result of step1? 

Yes! that is right Loos! your script here is named transition step 1.

and then transition step 2 will have more houses to play around with + (under the condition of equal amount of site cover.) this can come after. :)

For the moment this is what i have, you can control how many floors you want to generate, and the houses positions are different on every floor. CheckIntersection not yet implemented. Just wondering about one thing, in the pic the 2 houses changed positions, but they are always sharing the same floor, do you want to remove this constraint, let one of them or both flow to another floor? (in the meantime, the sum of houses for each type remains the same) 

Attachments:

hello Loos,

this is getting amazing! yes yes, it would be good to remove the constraint here, so they could flow to one another. (but the sum house has got to remain the same as per generation.)

like 2 generation 4 houses.

Hi 

A brief explication:

For checking if a newly generated bloc is overlapped with an existing one, there re 2 ways to do this: 

1. Use iteration to check it with all the existing blocs on the same floor, if any overlap is found, regenerate the bloc and check again. The accuracy of this method depends all on your luck, and time...

2. Use a fake random method to prevent overlapping from the very beginning: for this case, we need to redefine your site into a new coordinates system, whose X interval would be the largest width value of your 2 houses, and Y would be the length. Then we can move your houses from house.Center to newCoordiantesys.Point, and remove this point from list. So when you do the same thing for the next block, its 100% sure that these 2 blocks wont be overlapped. But this method has its own disvantage, your turn to find out... 

Hope i made it clear, but HERE COMES THE POINT(ha...):

I dont why i took method 1 from the beginning, and im too lazy to redo it... so in the attached ghfile, you have Gens to control how many floors you want to create, Iteration will reduce overlapping, but will cost more time to calculate, if you set it to a very high value. and Recompute=F5. 

But anyway, tell me if it needs any further modification.

there's one line caused an error in the precedent script, i didnt notice it...

Attachments:

and yeah, for the cantilever thing, i ll try to make it this Sunday, so much stuff to deal with now. :P

thank you for your time loos. really do appreciate it. :))

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service