s, the participants will focus on the key advantages of Grasshopper’s capabilities through a range of design challenges in order to aid designers in both their drafting tasks and modelling capabilities.
The workshop covers many concepts such as Object Attributes/Parameters, Data Types, Data Structures, and Designing with Algorithms. Specifically, this course will focus on understanding both Lists and Data Trees, as well as the best practices for integrating Grasshopper into your Professional Design Workflow. The workshop offers guided curriculum and continuous support, based on in-depth and professional learning experiences.
Workshop outcomes:Teach the participants how to:-
+ be proficient in parametric logics learning the key benefits of parametric techniques in architecture design workflow (when to use it & how to use it)+ Correctly communicate with different 3D and BIM packages in order to keep the geometry clean and light while preserving all NURBS information.+ Develop architecture design based on mathematical equations to create non-standard free form building skin.+ Create a pattern that changes dynamically based on specific inputs which can be applied over the building façade, interior walls or ceiling or even floor pattern.+ Automate and Optimize design variables to achieve the optimum solution for the design problem.
Program Outline:
DAY 1:-Introduction to Parametric Design -Introduction to Grasshopper & Rhino (technical tools).
DAY 2:-Exploring the parametric workflow. -Setup the design algorithm & generating a list of data.
DAY 3:-Introducing the new ways of generating parametric curves and surfaces.-Parametric form generation in-dept
DAY 4:-Introducing Data Tree logic and parametric transformations.-Creating Associative techniques – Attractors (points, curves and vectors).
DAY 5:-Working with advanced form generation with dynamic pattern.-Parametric optimization based on environmental analysis -featuring the Performance-Driven Design possibilities
DURATION:6 – 8 hours per day [50 - 60 hours Total]Every Saturday [9.00 Am : 1.00 Pm & 2.30 Pm : 6.00 Pm]
PREREQUISITES:No need of any specific knowledge of Rhinoceros or Grasshopper.
REGISTRATION:In order to register, you will need to fill the Registration Form .https://docs.google.com/forms/d/1PckdW1hrWs9fJAHWBZlVsuhH8K0PfDuMWIpXHT_4FYw/viewform
REGISTRATION DEADLINE:23th October 2014.…
Added by ayman wagdy at 7:48am on October 19, 2014
sible for the archaic rendering engines used by Microstation (and go to bed with Luxology). Plan succeeded 50% : Now Microstation uses the Luxo rendering engine (best around, bar none) ... and ... er... hmm ... animations are still archaic. The amusing thing is that at that time some Bentley gurus said to me that I'm entirely off-topic by supporting a weird thing that is based on a weird "visual programming" thing - but what do I know from things? he he.
Enjoy me searching the truth out there (it's the usual exe stuff made via Quest3D in nanoseconds). KPOD was my nickname at Bentley Systems (Known Prince Of Darkness, that is - see my avatar).
2. As regards the Loft chaos > get this very old Loft test as well > adjust seams false ( = good things), true (= chaos).
Moral: we all live in a yellow submarine.…
T) of matching index in the text list.
1) I have input lists of numbers before using the Number component and "Set[ting] mulltiple numbers...", but what tool would I use to input a list of letters?
2) Can I use Dispatch based on an arbitrary list like this?
3) I could make 6 different Cull Patterns: "if (item) = A, true, false", "if (item) = B, true, false"... but that seems so clunky and won't scale if I add new letters into my list.
How can I make a key and use it to split my list of points?
Thanks,
Richman…
am to find the coverage for various public-transport stations and is interested under what conditions that coverage will poorly represent reality, then that would fit perfectly within your proposed forum, but the SO people will close it as off-topic before you can say directed-infrastructure-networks.
Or discussing which properties of a transport network would be sufficient to encode into a graph in order to give a model accurate enough for early design iterations.
Or discussing the fabrication costs under various manufacturing methods of elements (a, b, c, ...) with amounts (K, L, M, ...). ie. is it cheaper to manufacture façade panels using manual welding if I have 50*a + 50*b + 25*c or would it be cheaper to have 120*a + 3*b + 2*c?
Or discussing the visual aspects of various types of geometry. Do Bezier or Akima splines look more natural? What about them makes them look natural/unnatural? Can people tell the difference between a perfect circle and a circularish Nurbs curve with 12 points? Does it matter whether the Nurbs curve is small or big? Next to a perfect circle or not? Horizontal or vertical?
What equation would better describe experienced time by humans travelling from A to B rather than measured time?
How can I find out under what wind conditions this sharp edge on my building will start whistling?
How much might the potentially bad smell of this cheaper material lower the value of my building?…
alculates the centre of gravity where parts of the route between the object and target are pre-defined. So the gravity object is always located at one end of the curve and does not move, the force must always travel through all the curve (and the curve is fixed), at the other end of the curve the route of the force can be direct from the end of the curve to the centre of the object.
Imagine an elastic band between 2 objects where 50% of the band is forced into a particular path. I think I explained it badly before.
…
Added by John Everist at 6:54am on January 20, 2017
Here's a processing routine I used in grad to create a particle swarm to randomly zing around. You can freeze it and use those points for your bus stops!
A(+50): A voronoi diagram could help here. Here's an example of a similar problem that I solved using a grasshopper definition.
Q: My fabricator has told me that manual welding will cost me $x/in. How could I optimize a panelization of my facade to maximize surface area of the panels while minimizing edge length?
A(-5): Just use a robot. Robots are awesome and they make everything cheaper.
A(+10): I worked on a problem like this in Catia a while back. Here's an image of the problem, and the vbscript that I used to solve it.
A(+20): Here's a dynamo definition and an adaptive component that do exactly this. The layout is done using points on a surface, and the surface area calculation is done in the component.
Q: I have a large quantity of a material known as Swampgasium. It's incredibly durable, and has wonderful surface properties, but emits a potent sulfuric odor. How can I calculate the benefit of the reduced maintenance cost against tenant retention.
A: (Closed as off topic).…
the problem with 25 sliders (3 possible positions each), galapagos send me an error when it's running for long time.
I've uploaded a screenshot with the error. Galapagos and Ecotect run and calculate 100 values and then the errors appear ( I guees that 100 values are 50pop*boost).
Using old Galapagos, Geco and Grasshopper there is no problem at all running definition.
Galapagos conf:
Using evolutionary solver.
Max.Stagnant: 40
Population: 50.
Boost: x2
Manintain: 5%
Inbreeding: 75%
25 sliders with 3 possible values: 0.01, 0.09, 0.018
Best Regards.
Ángel.…
Added by Ángel Linares at 11:50am on September 6, 2011
思った感じになりません。
balls の代わりにplanarカーブを直接入れてみましたがエラーが出ます。
ファンクションにしてみたところ、forループので作った数値が反映されていません。
ファンクションのインスタンス?を出力していないと思い上記のようにしましたがエラーが出てしまいます。
以上の事から自分の認識が正しいのかよくわからなくなりました・・・
python自体の深いところをわかっているわけではないので余計こんがらがりました。
そこで、for b in ballsはどのような条件または使い方であれば使えるのでしょうか?
そして、上記のように別のオブジェクトに対しての使い方はどのようにすればできるのでしょうか?
2:同じファンクション内のdist = rs.Distance(self.pos,b.pos)についてですが
この文章も for b in balls によってbはBallのインスタンスであると定義?されたためb.posがbの位置であると分かるのでしょうか?
pythonは定義しなくても動いてしまうのでどのような時に使えるのか文章見ただけではよくわかりません・・・
大変細かいことかもしれませんが、よりpythonをしっかりと理解するためにも、どなたかわかる方ご教授いただけると幸いです。…
omplished i decide to post my version anyway (mine only works on Points though)...
tPts (total Points) are the total number of points to work from
intS (integer Split) is the value to split the list around. so if tPts is 50 and intS is 2 then the final returned value are 2 objects containing list of 25 points.
oh, and the "item sel" node is a utiltiy node i wrote that lets me scrub through and look at individual values in an index.
if you're game feel free to give me feedback about my coding style... im still trying to get hang of this.
M
…
he start point.
Generation (2) i have 4 points + (3*3points) = 13 points.
Generation (3) i have 13 points + (9*3points) = 50 points.
But when i bake the python component i have 157 points ? Why ?
What's the logic behind this ?
Also how can i have in a, lists of points according to generations and for exemple in b lines according to generations too ??
Here's the code:
import rhinoscriptsyntax as rsimport random as rr.seed(seed)
def Main():....allGenerations = []....allGenerations.append(startPt)....curGeneration = []....curGeneration.append(startPt)....for i in range(gens):........newGeneration = []........for pt in curGeneration:............ang1 = r.randint(-30,30) ............ang2 = r.randint(90,150) ............ang3 = r.randint(210,270) ............dist1 = r.randint(10,40) ............dist2 = r.randint(10,40) ............dist3 = r.randint(10,40) ............zV = -1 ............newPoints = branch(pt, ang1, ang2, ang3, dist1/(i+1), dist2/(i+1), dist3/(i+1), zV) ............newGeneration.extend(newPoints) ............curGeneration = newGeneration ............allGenerations.extend(newGeneration)....return allGenerations
def branch(pt, ang1, ang2, ang3, dist1, dist2, dist3, zV):....ptP1 = rs.Polar(pt, ang1, dist1)....ptP2 = rs.Polar(pt, ang2, dist2) ....ptP3 = rs.Polar(pt, ang3, dist3) ....ptA1 = rs.AddPoint(ptP1)....ptA2 = rs.AddPoint(ptP2)....ptA3 = rs.AddPoint(ptP3) ....pt1 = rs.MoveObject(ptA1, [0,0,zV])....pt2 = rs.MoveObject(ptA2, [0,0,zV])....pt3 = rs.MoveObject(ptA3, [0,0,zV]) ....ln1 = rs.AddLine(pt, pt1)....ln2 = rs.AddLine(pt, pt2)....ln3 = rs.AddLine(pt, pt3) ....return [pt1, pt2, pt3]
a = Main()
Thanks for you replies and sorry for my noob questions...
…