Introduction to Grasshopper Videos by David Rutten.
Wondering how to get started with Grasshopper? Look no further. Spend an some time with the creator of Grasshopper, David Rutten, to learn the
ay how many valid permutations exist.
But allow me to guesstimate a number for 20 components (no more, no less). Here are my starting assumptions:
Let's say the average input and output parameter count of any component is 2. So we have 20 components, each with 2 inputs and 2 outputs.
There are roughly 35 types of parameter, so the odds of connecting two parameters at random that have the same type are roughly 3%. However there are many conversions defined and often you want a parameter of type A to seed a parameter of type B. So let's say that 10% of random connections are in fact valid. (This assumption ignores the obvious fact that certain parameters (number, point, vector) are far more common than others, so the odds of connecting identical types are actually much higher than 3%)
Now even when data can be shared between two parameters, that doesn't mean that hooking them up will result in a valid operation (let's ignore for the time being that the far majority of combinations that are valid are also bullshit). So let's say that even when we manage to pick two parameters that can communicate, the odds of us ending up with a valid component combo are still only 1 in 2.
We will limit ourselves to only single connections between parameters. At no point will a single parameter seed more than one recipient and at no point will any parameter have more than one source. We do allow for parameters which do not share or receive data.
So let's start by creating the total number of permutations that are possible simply by positioning all 20 components from left to right. This is important because we're not allowed to make wires go from right to left. The left most component can be any one of 20. So we have 20 possible permutations for the first one. Then for each of those we have 19 options to fill the second-left-most slot. 20×19×18×17×...×3×2×1 = 20! ~2.5×1018.
We can now start drawing wires from the output of component #1 to the inputs of any of the other components. We can choose to share no outputs, output #1, output #2 or both with any of the downstream components (19 of them, with two inputs each). That's 2×(19×2) + (19×2)×(19×2-1) ~ 1500 possible connections we can make for the outputs of the first component. The second component is very similar, but it only has 18 possible targets and some of the inputs will already have been used. So now we have 2×(18×2-1) + (18×2-1)×(18×2-1) ~1300. If we very roughly (not to mention very incorrectly, but I'm too tired to do the math properly) extrapolate to the other 18 components where the number of possible connections decreases in a similar fashion thoughout, we end up with a total number of 1500×1300×1140×1007×891×789×697×...×83×51×24×1 which is roughly 6.5×1050. However note that only 10% of these wires connect compatible parameters and only 50% of those will connect compatible components. So the number of valid connections we can make is roughly 3×1049.
All we have to do now is multiply the total number of valid connection per permutation with the total number of possible permutations; 20! × 3×1049 which comes to 7×1067 or 72 unvigintillion as Wolfram|Alpha tells me.
Impressive as these numbers sound, remember that by far the most of these permutations result in utter nonsense. Nonsense that produces a result, but not a meaningful one.
EDIT: This computation is way off, see this response for an improved estimate.
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
Added by David Rutten at 12:06pm on March 15, 2013
current designers and for future practitioners to follow. One of the strongest aspect that is prominent from this style is ‘geometry’. Arguably, there is nothing new about geometry and aesthetics forming the most prominent aspect of any style or era. The language of any style, in the long history of architecture, is visually defined by geometry or shape, beyond the principles that define the core of the style. In the distinguishable style of parametric architecture, geometry has played and is continuing to play an integral role. And with this fairly young style, there are many strings of myths and false notions associated.
The workshop aims to provide a detailed insight to ‘parametric design’ and embedded logics behind it through a series of design explorations using Rhinoceros & Grasshopper platforms. An insight to Computational Design and its subsets of Parametric Design, Algorithmic Design, Generative Design and Evolutionary Design will be provided through presentations, technical sessions & studio work. A strong focus will be made on ‘geometry’ and ‘matter’ and embedding data-driven intelligence to geometrical & material systems.
All rat[LAB]EDUCATION Workshops are tied up with a larger agenda of a buildable project for New Delhi, INDIA (Proposed for late 2015) & a publication scheduled for 2016. All participants will become a part of the growing EDUCATION network and will be exclusively invited for future events & studio activities.
// Methodology
Workshop has been structured to teach participants the use of Grasshopper® (Generative modelling plug-in for Rhinoceros) as a generative tool, and ways to integrate it with architectural processes. A strong agenda on ‘geometry’ and ‘matter’ will form the focus of the studio with design experimentation through computational & parametric techniques. Previous knowledge of Grasshopper is preferred, as this will be a design intensive workshop.
For further details: www.rat-lab.org…
:
Julia Koerner
Vincenzo Reale Filippo Nassetti
Kais Al-Rawi
Marie Boltenstern
Mohamad Makkouk
APPLY:
Limited Spaces are Available, Application form accessible here
CONNECT:
You can Visit our website http://jordan.aaschool.ac.uk
or email us at jordan@aaschool.ac.uk
PAST WORKS AND PARTICIPANTS:
…
walls and place the point(s) on the curves used to create the walls, but it's not absolutely necessary.
Basically what's happening behind the scenes is Lyrebird places a small family with a cube geometry and looks for a wall that intersects it and uses that wall as its host. This may require some refinement as different situations come up that I didn't run into during my testing.
Slabs with Holes:
I'll preface this by saying that there's some odd gaps in the Revit API that prevent some things from happening. For instance you can create Floors and Roofs via the API, but you can't create a Ceiling which functions almost identically to either of those. Another omission is Floors accepting multiple curves to create holes. Roofs and Walls that are created via profile can accept multiple curves and use the interior ones to create holes, but floors cannot. A workaround would be to place openings based on the other curves, but I wasn't happy with that so I thought I'd wait and see what the Revit 2015 release has.
So when you're creating a floor, roof, or wall with a custom profile, you don't want to explode and graft the curves. They should be closed planar curves and if it's a roof or wall by profile, you can feed multiple curves per branch and create elements with holes. With floors you can only have one closed curve per branch because it can't create holes yet.
Preview:
The preview I show int he video may come back to haunt me, but I wasn't trying to imply there was a function that retrieved the Revit geometry to generate a preview in GH. It was just trying to show that using the same data you can construct similar things with both Revit and GH to show that you're making as close of a translation as possible between two completely different platforms. I didn't show that part of the sketch because it was really messy and I didn't want to take the time to clean it up before making the video. It's all just off to the side in a tangle of wires.
Sorry for the confusion on that one.
I've attached another file that shows basically what was happening in the video by creating a small revit building with walls, a door, a floor, and a roof with a hole. The Lyrebird components are referencing Revit data from the default.rte template that ships with Revit 2014 if you want to test it as is, otherwise you may have to reset what family types these are set to.
…
Added by lmnts to Lyrebird at 9:04am on March 7, 2014
electric car. While architectural manufacturing has more recently implemented this technology, the conventional means for programming robotic motion have proven ill-suited to the architectural design process for two primary reasons:
They are better suited for mass production than mass customization
They are not directly linked to the CAD model, meaning variation and iteration must be performed manually through an export/import process
Historically it’s been critical for designers to maintain open lines of communication with construction personnel and fabricators to successfully realize their collective vision. This course will seek to improve these lines of communications while rectifying the architecture-specific issues outlined above through a data-driven parametric design workflow which integrates upstream analysis, geometric modeling, and downstream robotic toolpathing into a single live definition, allowing for a direct relationship between initial data inputs and robotic motion.
A mass-customized architectural assembly will be proposed, simulated, and prototyped using HAL-generated ABB RAPID code to drive the ABB IRB 140 industrial robotic arm’s IRC5 controller. This assembly will be a series of vaulted shell structures constructed from thin plastics such as high impact polystyrene (HIPS) sheets. In order for such a thin material to span the structure, stiffness (or an improved resistance to deflection under load) must be considered at both the local level of the panel’s shape and the global level of the shell’s form and panel-to-panel connections. Stiffness will be added to the HIPS panels by testing heat-based deformation of the plastic, such as creasing and stretching to create depth along the spanning axis and induce double-curvature.
Each robotic technique may require its own end-of-arm tooling as well as custom molds and jigs, which is very costly. Clustering methods and genetic optimization algorithms will be implemented in the panel rationalization process to control variation.
…
Added by Brian Ringley at 12:53pm on August 25, 2015
ed pygeoj.py It must be in your script's folder by Karim Bahgat https://github.com/karimbahgat ----------------------------------- TODO : use something like : https://github.com/karimbahgat/PyCRS ----------------------------------- Copyright (c) 2015, Guillaume Meunier <alliages@gmail.com> GEOJSON_export is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. GEOJSON_export is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. GNU General Public License <http://www.gnu.org/licenses/>. @license GPL-3.0+ <http://spdx.org/licenses/GPL-3.0+> - Args: path: path where to export filename: filename of your JSON without its extension (GEOJSON added) using_keys: which key attributes to export, 'id' by default s_names: values of 'id' key s_keys: normally each surfaces user attributes' keys s_values: normally each surfaces user attributes' values s_vertex: vertex of each surfaces run: do the export Returns: out: various information coordiantes: coordinates in JSON format properties: properties in JSON format
VER 1.3
few bugfixes
31_5_2016
VER 1.2
create multipolygon (with holes and multiple objects)
23_3_2016
-----
VER 1.1
resolved problem with geometry check in qgis by closing completely polygon
5_1_2016
---
VER 1.0
3_12_2015
In Extra category
code is here : https://gist.github.com/Alliages/8dbfce7cdd24383342b0
…
e HelloWorld function should need no argument but return the string “Hello World”.
Help on method-descriptor HelloWorld
| HelloWorld(...)
| HelloWorld(self: MyClassLibrary) -> str
Can anybody help?
Sourcecode MyClassLibrary.vb:
Simple Class Library Project in Visual Studio 2015
Function has no parameters and Returns String „Hello World“
Compiled *.dll works fine in other Visual Studio Projects as reference
Project Properties
Checkbox „COM Interop“ has no impact
…
looked at autodesk simulation cfd 2015 and was optimistic because it had an export plugin from revit, which i use anyway for material takeoffs and etc, but found that it did not take solar radiation into account. This was a downer because I have heard that solar radiation could effect indoor airflow - convection - as much as 50 percent at a time.
Then I searched again and found that Hyperworks, a software by altair technology can be coupled with a radiation software. So I went through the trouble of obtaining an educational license of Hyperworks. However, though some email exchange I have found that the coupling is a one-way. The radiation analysis software was used, I think, for understanding the solar loading for a SOM project called church of light.
The support guy said : "Unfortunately our coupling with Hyperworks is really a one way coupling. We can accept H coefficients from their software in RadTherm, but they will not read in our wall temps. That said, it still can be a useful coupling in the sense that you can run the analysis in Hyperworks, send H coefficients to RadTherm, and run the analysis to better understand radiation and conduction. Most importantly, that analysis can be done for longer transient analysis, but will require much less compute time and resources."
Not only did I not understand what he means by the H coefficients, my wanting to get a CFD understanding coupled with solar radiation was again, unsatisfied. In the mean while I had to finish a presentation so I haven't had the time to try to get some result on the natural ventilation. I would probably need to look into how their solutions work before I can understand if their software would "do the job"
Thank you for letting me know about your work on this. I downloaded the Honeybee_Set EP Natural Ventilation component and made sure that it is allowed, but it does not show up in grasshopper.
You pointed out that "The component (and the corresponding equation) is mostly meant for cases where you have zones with windows that are NOT connected by an air wall (or a larger airflow network)." I wondered if you are suggesting it would be a code violation for zones to be connected by an air wall for fire safety reasons. It would be a violation I guess, like not putting an fiber insulation or some kind of smoke stop between Spandrel panels and the edge of a floor plate would be a code violation for a typical office building.
There is a project by kevin daly architects where you can see a section drawing with what seems like a cfd analysis (could be an illustration)
it was my initial visualization/simulation goals were for a facade design I am working on
1) an average air velocity across a zone at noon, for example, if a passive design strategy like this was used. for this I am guessing cfd is not entirely necessary. probably means that it could be used earlier in a design process, too. This would be more about user comfort.
2) at a later phase, like in detailing facade components, if airflow is indeed as expected for a zone that is connected to an air wall / chimney like feature (and to see if there is a proper mixing of air)
3) and a projection of energy savings, of course.
After seeing a video of simulation cfd I was optimistic, but like I said sim cfd does not take account of solar loading. I think I would probably go ahead start with one zone with sim cfd first, try three zones stacked on top of each other, then try hyperworks and try to factor in solar radiation.
For analyzing multiple zones on different levels, being able to add a chimney would be especially useful, I think. Having said that, I don't have a lot of experience of using honeybee except for the daylight component so it would take some time for me to understand the components.
I hope some of the information here is useful for you. after all, both sim cfd and hyperworks are commercial softwares and somewhat different than the e plus project you are working on, I guess but still trying to address a similar problem.
so.. in cased you missed it I was asking I downloaded the Honeybee_Set EP Natural Ventilation component and made sure that it is allowed and placed in the user object foler, but it does not show up in grasshopper. what could be the reason?
…
option, after downloading check if .ghuser files are blocked (right click -> "Properties" and select "Unblock"). Then paste them in File->Special Folders->User Object Folder. You can download the example files from here. They act in similar way, Ladybug Photovoltaics components do: we pick a surface, and get an answer to a question: "How much thermal energy, for a certain number of persons can my roof, building facade... generate if I would populate them with Solar Water Heating collectors"? This information can then be used to cover domestic hot water, space heating or space cooling loads:
Components enable setting specific details of the system, or using simplified ones. They cover analysis of domestic hot water load, final performance of the SWH system, its embodied energy, energy value, consumption, emissions... And finding optimal system and storage size. By Dr. Chengchu Yan and Djordje Spasic, with invaluable support of Dr. Willian Beckman, Dr. Jason M. Keith, Jeff Maguire, Nicolas DiOrio, Niraj Palsule, Sargon George Ishaya and Craig Christensen. Hope you will enjoy using the components! References: 1) Calculation of delivered energy: Solar Engineering of Thermal Processes, John Wiley and Sons, J. Duffie, W. Beckman, 4th ed., 2013. Technical Manual for the SAM Solar Water Heating Model, NREL, N. DiOrio, C. Christensen, J. Burch, A. Dobos, 2014. A simplified method for optimal design of solar water heating systems based on life-cycle energy analysis, Renewable Energy journal, Yan, Wang, Ma, Shi, Vol 74, Feb 2015
2) Domestic hot water load: Modeling patterns of hot water use in households, Ernest Orlando Lawrence Berkeley National Laboratory; Lutz, Liu, McMahon, Dunham, Shown, McGrue; Nov 1996. ASHRAE 2003 Applications Handbook (SI), Chapter 49, Service water heating
3) Mains water temperature Residential alternative calculation method reference manual, California energy commission, June 2013. Development of an Energy Savings Benchmark for All Residential End-Uses, NREL, August 2004. Solar water heating project analysis chapter, Minister of Natural Resources Canada, 2004.
4) Pipe diameters and pump power: Planning & Installing Solar Thermal Systems, Earthscan, 2nd edition
5) Sun postion and POA irradiance, the same as for Ladybug Photovoltaics (Michalsky (1988), diffuse irradiance by Perez (1990), ground reflected irradiance by Liu, Jordan (1963))
6) Optimal system and storage tank size: A simplified method for optimal design of solar water heating systems based on life-cycle energy analysis, Renewable Energy journal, Yan, Wang, Ma, Shi, Vol 74, Feb 2015.…