the end of the workshop Student performance objectives
- Understanding some basic concepts of Grasshopper, such as; Mathematical Function, Geometry, etc.
- Creating a simple parametric design system.
---------------------------------------------------
Schedule :
Deadline for Registration : April 02,2013
Workshop Starts : Thursday, April 02, 2013 - 5:30 pm
The workshop consists of 10 lectures, Each lecture lasts for 3 hours.
3 lectures per week
---------------------------------------------------
Fees :
600 L.E
You have to fill the Registration Form below for place reservation.We only have few places available.
---------------------------------------------------
Prerequisite :
-Basic knowledge of any 3d modeling software “Sketchup, 3dsmax, Rhino, Maya, ...,etc.” is required to attend the workshop.
---------------------------------------------------
Registration Form:
https://docs.google.com/forms/d/1W5CptB7FyU2d37_aqtSaBN_sxPqj7491HUN_NFgGyg8/viewform
---------------------------------------------------
Previous workshop
https://www.facebook.com/events/469048376477647/
https://www.facebook.com/media/set/?set=a.548388031851299.1073741826.470747186282051&type=1
https://www.facebook.com/events/178326265647678/…
t taking part at the Object office in Poznań.
The intention of this event is to provide a relaxed and flexible tutoring experience, with only one goal – getting to know Grasshopper better. We will start with a very exhaustive introduction, then venture into the computational geometry world in whichever direction we like.
Schedule
The long duration of the series (with a possibility of extension) will enable each participant to come up with their own research problems during the learning process. The scope of those problems will have a major influence in setting the direction of each workshop. While a couple of initial meetings will be solely spend on Grasshopper basics, the latter part of the series will have a more open character.
Each meeting day starts at 10 AM and lasts till 5 PM, with an hour long break for lunch (14 hours of tutoring per meeting).
Planned meetings:
02/03 Dec | Intro_01.gh: user interface, geometry types, Rhino/GH connection
16/17 Dec | Intro_02.gh: data flow, paneling, geometry rationalization
06/07 Jan | Intro_03.gh: data I/O, excel, csv, data visualization, preparing geometry for fabrication
20/21 Jan | Intro_04.gh: working with complex definitions, project organization and helpful plugins
10/11 Feb | Intro_05.gh: looping with Anemone, generative design
17/18 Feb | Intro_06.gh: automating tasks with Anemone, scripting introduction
03/04 Mar | Intro_07.gh: scripting
17/18 Mar | Intro_08.gh: Kangaroo
14/15 Apr | Intro_09.gh: user_defined_1 (flexible)
28/29 Apr | Intro_10.gh: user_defined_2 (flexible)
…
ield I had to use some different jumper settings as if I wanted to use the conceptinetics DMX library.
To send a chanel and a value I had to send a string from grasshopper like 001c255w to send the highest DMX value to chanel 1. See description in my code below:
/*jumper setup for Conceptinetics DMX shield:1st jumper to the right: "EN_"2nd jumper to the right: "DE"3rd jumper to the left: "TX-io"4th jumper to the left: "RX-io"
this jumper setup allows the shield to do the following actions without having to change any jumper:- transfer this arduino sketch to the arduino board- receive data from the serial port (grasshopper)- send data to a DMX device
<number>c : Select DMX channel<number>v : Set DMX channel to new value
These can be combined:001c255w002c0w003c0w --> Set channel 1 to value 255 and channel 2 and 3 to value 0.it is important that the channels are being addressed with 3 digits (001c instead of 1c)
http://dmxshield.blogspot.de/ http://playground.arduino.cc/Learning/DMX http://code.google.com/p/tinkerit/wiki/SerialToDmx http://groups.google.com/group/dmxsimple */
#include <DmxSimple.h>
void setup() { Serial.begin(9600); Serial.println("SerialToDmx ready"); Serial.println(); digitalWrite (2, HIGH);}int value = 0;int channel;void loop() { int c; while(!Serial.available()); c = Serial.read(); if ((c>='0') && (c<='9')) { value = 10*value + c - '0'; } else { if (c=='c') channel = value; else if (c=='w') { DmxSimple.write(channel, value); } value = 0; }}
…
w number. If the script is slow you can also double click a number slider to access a panel that lets you slide a value without invoking a recalculation.
You don't need most of the inputs, which are for controlling the transition to the borders of open meshes. No, there's no manual beyond right-click help.
FixC and FixV are to fix and thus retain open borders, mostly, or sharp creases and there is art in them, meaning tricks you just have to blunder into or search for.
Flip is an alternative remeshing strategy worth changing from 0 to 1 to see the effect.
MeshMachine is only giving a nice even curvature-adaptive (Adapt setting 0.8 or so is more reliable than 1) mesh, merely, not thickening mesh wires into struts.
The struts are currently individual capped mesh cylinders. You could also use very slow nurbs cylinders. They may or may more likely not successfully Boolean union together in Rhino. Their diameter is set in the Mesh Pipe component.
There are other plug-ins for thickening the wires of a mesh. Exoskeleton, Intralattice and my favorite, somewhat tweaky Cocoon marching cubes which is however very robust, and I sometimes run the overly fine mesh result into MeshMachine to make it regular and adaptive, since the Cocoon refine component is hard to control. I mostly enter 1s into most inputs though.
If you turn on menu item Display > Canvas Widgets > Profiler and zoom in close enough to the canvas, you'll see timer readouts for how long each component took for a solution, so I can see that the pipes are the slow part, so I'd normally right click disable the chain early on, and right click turn on preview for the earlier mesh step before I make the pipes. The MeshMachine step takes only 2 seconds, and that's with Iter (internal iterations) at 10 instead of a workable 5.
Also turn on Display > Preview Mesh Edges to see the actual MeshMachine mesh.
…
error, but resetting the height to <100m should fix things.
The height of the night boundary reflects the diurnal pattern of the urban boundary layer (image below). During the day the solar shortwave radiation heats up the urban surface, mixes with the air above creating a tall boundary layer. During the night the surface cools down, the boundary layer becomes more stable, and it's height is reduced. So typical heights for daytime is ~ 1000m, and for nightime ~ >100m.
So increasing it by a factor of 8 to 10 is likely what is causing issues with the UWG calculation for you. I started a github issue here: https://github.com/chriswmackey/Dragonfly/issues/11 so that we can fix this typo. Also we should figure out why exactly the calculation is failing so that can potentially put an upper bound to the inputs or a better error message. Thanks for catching it!
Finding some reference data linking weather layers to urban typologies is a good question, I'd like to find some too. Perhaps Chris/Mostapha might be able to provide some? You can check out the following thesis [1],[2] that the UWG algorithm is based on, which references three case studies for Singapore (Punggol), Capitoul and Bubble:
[1] https://dspace.mit.edu/handle/1721.1/107347
[2] https://dspace.mit.edu/handle/1721.1/59107…
tList2) End Sub '<Custom additional code> Function Network(ptList1 As list(Of On3dPoint), ptList2 As List(Of On3dPoint)) As OnLine Dim line2 As New OnLine Dim dist As Double 'variable to store distance between points Dim maxDist As Double Dim minDist As Double maxDist = 20 minDist = 10 Dim count1 As Integer count1 = ptList1.Count()'set length of list for loop Dim count2 As Integer count2 = ptList2.Count() Dim newPtList1 As List(Of On3dPoint) Dim newPtList2 As List(Of On3dPoint) newPtList1 = ptList1 newPtList2 = ptList2 ptList1.RemoveAll ptList2.RemoveAll For i As Integer =0 To count2 - 1 For j As Integer = 0 To count1 - 1 Dim pt2 As On3dPoint pt2 = newPtList2(i) Dim pt1 As On3dPoint pt1 = newPtList1(i) dist = pt2.DistanceTo(pt1) If (dist < maxDist & dist > minDist) Then line2 = New OnLine(pt2, pt1) ptList2.Add(pt1) Else ptList1.Add(pt1) End If Next Next Dim count As Integer count = ptList1.Count() If (count > 0) Then Call Network(ptList1, ptList2, lineNet) End If End FunctionWhat i have as input are two lists of points (the first one having n-items inside while the other one has only one starting point). It s supposed to work as a recursive function always returning one or more lines in the end.The error i m getting is because of the ptList1/ptList2.RemoveAll command.Does anyone have a clue why i can t remove the items from the lists? What i'm basically trying to do is just clean them of all content.I've attached the def with the code as well.Thank you in advance,Tudor…
ace when I start running Galapagos/Octopus (below is "room orientation optimization" shared at http://hydrashare.github.io/hydra/viewer?owner=mostaphaRoudsari&fork=hydra_1&id=Room_Orientation_Optimization&slide=0&scale=1&offset=0,0) It may take quite some time to see some results. That's fine for the above simulation. But my real challenge is, when I am going to optimize room dimension with respect to ASE and sDA calculations, either Galapagos or Octopus goes wildly and never come up with a solution. I believe the time-consuming calculation, especially sDA with higher -ab numbers, trigger the lag a lot? Any suggestion/trick to improve it?
Most importantly, based on your experience, for example to optimize window/exterior shades sizes and achieve ASE<10% and sDA>55% (LEED v.4 requirements), Octopus (due to its capacity of multiple objectives) is the only choice? Any other approaches within grasshopper?
The alternative approach in my mind as a GH beginner is as follows. But I am not sure whether it is doable. Again, your comments will be greatly appreciated.
Since all my room/window/shades dimension are controlled by number sliders, I am thinking whether a component from GH will trigger these number sliders (not necessary to be all of them but one by one) automatically. If this is possible, I can do "data recorder" to record outputs from ASE and sDA. Eventually I will have a database of the input parameters and sDA/ASE results.
Does it make sense? Is there a component which can trigger number slider output at certain step?
Many thank!
Cheney …
8.3.0 ************* IDF Context for following error/warning message: ************* Note -- lines truncated at 300 characters, if necessary... ************* 829 Construction, ************* indicated Name=PELLE001 ************* Only last 10 lines before error line shown.....
************* 832 AIR WALL2, !- - Layer 2 ************* 833 X-LAM, !- - Layer 3 ************* 834 POLYSTYRENE2, !- - Layer 4 ************* 835 PANNELLO VIP, !- - Layer 5 ************* 836 POLYSTYRENE2, !- - Layer 6 ************* 837 X-LAM, !- - Layer 7 ************* 838 LANA DI ROCCIAS, !- - Layer 8 ************* 839 VANO IMPIANTI, !- - Layer 9 ************* 840 LANA DI ROCCIAS, !- - Layer 10 ************* 841 LASTRA IN GESSOFIBRA, !- - Layer 11 ** Severe ** IP: IDF line~841 Error detected for Object=CONSTRUCTION ** ~~~ ** Maximum arguments reached for this object, trying to process ->LASTRA IN GESSOFIBRA<- ************* IDF Context for following error/warning message: ************* Note -- lines truncated at 300 characters, if necessary... ************* 985 Construction, ************* indicated Name=ROOF001 ************* Only last 10 lines before error line shown..... ************* 988 TRAVETTI, !- - Layer 2 ************* 989 TAVOLATO, !- - Layer 3 ************* 990 POLYSTYRENE2, !- - Layer 4 ************* 991 PANNELLO VIP, !- - Layer 5 ************* 992 POLYSTYRENE2, !- - Layer 6 ************* 993 X-LAM, !- - Layer 7 ************* 994 LANA DI ROCCIAS, !- - Layer 8 ************* 995 VANO IMPIANTI, !- - Layer 9 ************* 996 LANA DI ROCCIAS, !- - Layer 10 ************* 997 LASTRA IN GESSOFIBRA, !- - Layer 11 ** Severe ** IP: IDF line~997 Error detected for Object=CONSTRUCTION ** ~~~ ** Maximum arguments reached for this object, trying to process ->LASTRA IN GESSOFIBRA<- ** Warning ** IP: Note -- Some missing fields have been filled with defaults. See the audit output file for details. ** Severe ** IP: Possible incorrect IDD File ** ~~~ ** IDD Version:"IDD_Version 8.3.0" ** ~~~ ** Version in IDF="8.3" not the same as expected="8.3" ** ~~~ ** Possible Invalid Numerics or other problems ** Fatal ** IP: Errors occurred on processing IDF file. Preceding condition(s) cause termination. ...Summary of Errors that led to program termination: ..... Reference severe error count=3 ..... Last severe error=IP: Possible incorrect IDD File ************* Warning: Node connection errors not checked - most system input has not been read (see previous warning). ************* Fatal error -- final processing. Program exited before simulations began. See previous error messages. ************* EnergyPlus Warmup Error Summary. During Warmup: 0 Warning; 0 Severe Errors. ************* EnergyPlus Sizing Error Summary. During Sizing: 0 Warning; 0 Severe Errors. ************* EnergyPlus Terminated--Fatal Error Detected. 1 Warning; 3 Severe Errors; Elapsed Time=00hr 00min 0.34sec
My question is how i can fix it ??? and why it tell me that:
** Severe ** IP: Possible incorrect IDD File** ~~~ ** IDD Version:"IDD_Version 8.3.0"** ~~~ ** Version in IDF="8.3" not the same as expected="8.3"** ~~~ ** Possible Invalid Numerics or other problems** Fatal ** IP: Errors occurred on processing IDF file. Preceding condition(s) cause termination....Summary of Errors that led to program termination:
Help me pleaseeeeeeee
Happy new year!!!!!…