e matching with a dedicated component which creates combinations of items. You can find the [Cross Reference] component in the Sets.List panel.
When Grasshopper iterates over lists of items, it will match the first item in list A with the first item in list B. Then the second item in list A with the second item in list B and so on and so forth. Sometimes however you want all items in list A to combine with all items in list B, the [Cross Reference] component allows you to do this.
Here we have two input lists {A,B,C} and {X,Y,Z}. Normally Grasshopper would iterate over these lists and only consider the combinations {A,X}, {B,Y} and {C,Z}. There are however six more combinations that are not typically considered, to wit: {A,Y}, {A,Z}, {B,X}, {B,Z}, {C,X} and {C,Y}. As you can see the output of the [Cross Reference] component is such that all nine permutations are indeed present.
We can denote the behaviour of data cross referencing using a table. The rows represent the first list of items, the columns the second. If we create all possible permutations, the table will have a dot in every single cell, as every cell represents a unique combination of two source list indices:
Sometimes however you don't want all possible permutations. Sometimes you wish to exclude certain areas because they would result in meaningless or invalid computations. A common exclusion principle is to ignore all cells that are on the diagonal of the table. The image above shows a 'holistic' matching, whereas the 'diagonal' option (available from the [Cross Reference] component menu) has gaps for {0,0}, {1,1}, {2,2} and {3,3}:
If we apply this to our {A,B,C}, {X,Y,Z} example, we should expect to not see the combinations for {A,X}, {B,Y} and {C,Z}:
The rule that is applied to 'diagonal' matching is: "Skip all permutations where all items have the same list index". 'Coincident' matching is the same as 'diagonal' matching in the case of two input lists which is why I won't show an example of it here (since we are only dealing with 2-list examples), but the rule is subtly different: "Skip all permutations where any two items have the same list index".
The four remaining matching algorithms are all variations on the same theme. 'Lower triangle' matching applies the rule: "Skip all permutations where the index of an item is less than the index of the item in the next list", resulting in an empty triangle but with items on the diagonal.
'Lower triangle (strict)' matching goes one step further and also eliminates the items on the diagonal:
'Upper Triangle' and 'Upper Triangle (strict)' are mirror images of the previous two algorithms, resulting in empty triangles on the other side of the diagonal line:
…
p, open to designers worldwide, will explore the parametric mix of new raw materials and the re-use of elements from Carnival floats and costumes, transforming them using generative design processes and new digitally fabricated joint components, to create interventions for micro-venues and urban furniture in the Porto do Rio region.
Taught by AA Staff, recent AA graduates, and computation and fabrication professionals, the studio-based workshop will include extensive instruction in Rhino Grasshopper (including GECO, and Galapagos, to integrate environmental optimization, simulation and parametric control) and digital fabrication processes using laser cutter, CNC-milling and rapid-prototyping machines, sponsored by DS4 and SEACAM, all of which will be used to produce one-to-one design prototypes.
MORE INFORMATION AND APPLICATION: http://rio.aaschool.ac.uk/andhttp://www.aaschool.ac.uk/STUDY/VISITING/rio.php…
ake a modest notice about the two new Ladybug components, one of which creates a 3d terrain shading mask and another one which visualizes and exports horizon angles. A terrain shading mask is essentially a diagram which maps the silhouette of the surrounding terrain (hills, valleys, mountains, tree tops...) around the chosen location, and account for the shading losses from the terrain. It can be used as a context_ input in mountainous or higher latitude regions for any kind of sun related analysis: sunlight hours analysis, solar radiation analysis, view analysis, photovoltaics/solar water heating sunpath shading...
My home town is an example of the shading caused by the terrain. Here is how it looks from the tallest building in the town:
And the created terrain shading mask:
A mask for any land location up to 60 degrees North can be created:
There will also be a support for a few major cities above this limit.
Both Terrain shading mask and Horizon angles components can be downloaded from here. An example .gh file can be found in here.
Component will prompt the user to download and copy certain files in order to be able to run.
It was created with assistance from Dr. Bojan Savric. Support on various issues was further given by: Dr. Graham Dawson, Dr. Alec Bennett, Dr. Ulrich Deuschle, Andrew T. Young, LiMinlu, Jonathan de Ferranti, Michal Migurski, Christopher Crosby, Even Rouault, Tamas Szekeres, Izabela Spasic, Mostapha Sadeghipour Roudsari, Dragan Milenkovic, Chen Weiqing, Menno Deij-van Rijswijk and gis.stackexchange.com community.
I hope somebody might find the components useful.…
st between those two applications. But as soon as every frame is re-calculated I noticed that intersection function is very slow. It is actually so slow, that maximum number of polygons to play with is only 10 or less.
Could you help me to find a faster solution for my script?
calculation of intersection lines;
//////////////////////////////////////////////////////////////////////////////////////////
import ghpythonlib.components as ghcompimport rhinoscriptsyntax as rsdef ctr(crv): pts = ghcomp.Explode(crv)[1] pts = ghcomp.CullDuplicates(pts,0.001)[0] return ghcomp.Average(pts)pts = []lines = []ctr_c1 = ctr(C1)for crv in C2: if ctr(crv) != ctr_c1: int = ghcomp.CurveXCurve(C1, crv)[0] if int: [pts.append(x) for x in int] lines.append(rs.AddLine(int[0],int[1]))
/////////////////////////////////////////////////////////////////////////////////////////////
The overall description of the script:
a)Processing+ghowl is used for moving objects and physics
b)python script (slowest part) calculates intersection lines
c)intersected parts of polygons are rotated in 90 degrees.
I have attached grasshopper and processing files. (processing is not necessary to test the script)
Thank you in advance,
Pereas.
…
ss lots of questions,Hope guys show me some more different ways to figure out thoes kinds of problems,Thanks.
That is a construction project,the balconies should be overhang between 1 to 3 meters.
Program A is a patten consist of increasing balconies as the floors get upper.(In the picture is 29 at the first floor and ended with 2 more balconies for each floor, )Each part for a different floor,the twelfth floor have 29+(12-1)*2=51 balconies.
Questions From A,
A1:How to use the {(series)} to creat this atrium,As the floors increase the number of the balconies change by arithmetic progression.
A2:How to control the angle of the balconies,both the angle with floor and the balconies ending part.
Program B is use line to shape the commercial atrium,program A is more small pieces of rectangles.The {(TweenCrv)} command.
Questions From B,
B1:How to draw random points between the 1 to 3 meters region of the balcony,And those point form a shape also belongs to that region.
B2:Use a curve or other ways to control the changing speed of each floors' balcony.Right now the balcony is a Linear change.
Thanks for your Help.
Q1:Is there a way in Grasshopper to control the model to Modulus,less different unit parts to build such a Atrium.(For Exanple,only use 900mm and 600mm two different width of the Glass railings to bulid the model A OR B)…
elivering their latest workstation and graphics technology.
Intensive computing and exceptional graphics technology will deliver generative modeling and computing to its next level.
Participants will learn the ease of use of Grasshopper within Rhinoceros, so they could start creating their own generative design.
Who should attend:
1. Professionals in design and engineering industry who would like to gain more knowledge and productivity
2. Students who would like to extend their knowledge to the next level
3. Supporting IT who would like to provide even more efficient tools for engineers and designers
4. Engineering and Design Enthusiasts
Participants should send an email to fani@m3kom.co.id, to receive an invitation and its detail.
For further technical information about the event, feel free to ask Rendy (tihe.tihe@gmail.com).
This event will consist of the sneak preview of most anticipated real-time rendering for Rhinoceros: V-Ray RT for Rhino.
Hopefully, this will also initiate the establishment of Indonesia's generative modeling designers community in Indonesia.…
this workshop is to materialize a chair designed with help of generative algorithms via robotic fabrication. To design the form of the chair we will go through an intensive course of generative design techniques, k-means clustering, structural analysis and optimization done with the help of Anemone, Galapagos, Millipede and other plugins. Finally we will employ a 6-axis robot with custom tooling to fabricate the chair via robotic rod bending. No prior experience with Grasshopper or robotic fabrication is required, although basic knowledge in 3d modelling would be an asset. // APPLICATION The deadline for application is 13.03.2017 Apply by sending email titled ‘workshop_chair’ to workshops@aan1.net // INFO If you have any more questions check the www.aan1.net website or contact us with email workshops@aan1.net // FEE We have special pricing for students, as well as an early bird offer. Check the Eventbrite list to get more details. Please bear in mind that a limited amount of seats is available (minimum 8 people, maximum 16). ORGANIZERS: Maria Smigielska, Mateusz Zwierzycki, AAn+1 TUTORS: Maria Smigielska, Mateusz Zwierzycki PRICES: Early Bird Student 280 E Early Bird Pro 320 E Regular Student 300 E Regular Pro 350 E…
p 10 "Scripting Reality – Integrating 3D Point Clouds in parametric design workflows".
This research-based workshop will introduce participants to thegeometrical class of point clouds and ways to handle, manipulate, analyse and script with them. Participants will as well have the chance to get first-hand knowledge in the handling of 3d capturing devices and to link their outputs directly into a design environment.
The workshop poses especially the question of how changes on architectural scale can be tracked over time. Related algorithmic concepts and the Volvox plugin, allow for the first time to directly access and manipulate point clouds in a parametric design environment, will be introduced to the workshop participants. A 1:1 experiment on the ETH campus will provide a testbed. Participants will learn point cloud processing and learn to track objects solely on the base of point cloud analysis, find deviations against the planned and visualise the results.
The workshop is led by Mateusz Zwierzycki, Martin Tamke and Henrik Leander Evers. FARO provides several 3d scanners with helical adapters and acccess to the FARO SDK for the workshop. The workshop is modestly priced with 160CHF.
register now.
http://www.aag2016.ch/workshop-10/
…
d object1. Traceback: line 96, in join, "c:\Program Files\Rhinoceros 5 (64-bit)\Plug-ins\IronPython\Lib\ntpath.py" line 102, in openStudioPath, "C:\Users\Jurrijn\AppData\Roaming\McNeel\Rhinoceros\5.0\scripts\honeybee\config.py" line 247, in <module>, "C:\Users\Jurrijn\AppData\Roaming\McNeel\Rhinoceros\5.0\scripts\honeybee\config.py" line 2, in <module>, "C:\Users\Jurrijn\AppData\Roaming\McNeel\Rhinoceros\5.0\scripts\honeybee\radiance\command\_commandbase.py" line 2, in <module>, "C:\Users\Jurrijn\AppData\Roaming\McNeel\Rhinoceros\5.0\scripts\honeybee\radiance\command\gendaymtx.py" line 3, in <module>, "C:\Users\Jurrijn\AppData\Roaming\McNeel\Rhinoceros\5.0\scripts\honeybee\radiance\command\__init__.py" line 7, in <module>, "C:\Users\Jurrijn\AppData\Roaming\McNeel\Rhinoceros\5.0\scripts\honeybee\radiance\__init__.py" line 3, in <module>, "C:\Users\Jurrijn\AppData\Roaming\McNeel\Rhinoceros\5.0\scripts\honeybee\_hbanalysissurface.py" line 1, in <module>, "C:\Users\Jurrijn\AppData\Roaming\McNeel\Rhinoceros\5.0\scripts\honeybee\hbsurface.py" line 1, in <module>, "C:\Users\Jurrijn\AppData\Roaming\McNeel\Rhinoceros\5.0\scripts\honeybee_grasshopper\hbsurface.py" line 44, in script line 53, in __init__, "C:\Users\Jurrijn\AppData\Roaming\McNeel\Rhinoceros\5.0\scripts\honeybee\config.py"
It seems a problem with python.. Thanks in advance for any help.…
thing that MicroStation does (or doesn't). The eternal debate between us is that they focus to the so called BIM aspect of things (and obviously on interoperability matters - that said IFC2*4 is" implemented" in certain Bentley verticals like BA and others) whilst I'm after assembly/component puzzles (and on that matter ... MS ...hmm... to put it politely is not exactly CATIA and/or NX, he he).
On the other hand this paranoid obsession with Level/Layer driven CAD (I hate it) defines a red thick line between CAD and MCAD - because the most intelligent importer can't emulate the way that Siemens NX/CATIA classifies objects - and without control power means nothing.
On the other hand Microstation V9 (...soon) has interesting scripting capabilities (think Modo rather Generative Components) ... meaning that Grasshopper could work there in a rather nice way. I think that I must talk for that to Ray (he recently ditched the ancient legacy MS render engine in favor for the Luxology/Nexus engine). Ray still is negative to buy Act3D mind (hope that you know the mother of visual scripting - the Quest3D VR thing).
On the other hand - within the broad AEC aspect - things these days are different (especially in fast developing countries the likes of UAE, Saudi Arabia, certain ex USSR "democracies" etc etc). Studies are outsourced even at Preliminary Design stage to various sub-contractors (they undertake the Study completion per discipline as well). This means that N separate groups doing M aspects of the whole ... meaning entropy^(N*M) - that's chaos in plain English.
With this in mind I'm quite (a lot) skeptical about the practical meaning of the whole exchange thing in AEC - at least with regard the countries mentioned (not to mention that several portions of a modern AEC thing are made via MCAD apps - chaos^chaos.
I'll back with more focused issues on that matter.
But the big question is: Grasshopper of Generative Components? Well...let's talk serious SS bikes instead: think a Ducati 1198 and a BMW S1000RR (I have them both): which is "best"? The thing is that not always the best bunny is the fasted bunny and not always the fasted bunny is the best bunny.
Cheers,
Peter
…