ting and learning Grasshopper. The workshop will go over different ways of thinking parametrically and how to execute it on Grasshopper computationally. By the end of the workshop, we would have covered:
- List Items : Different ways to manipulate data trees.
- Cull Patterning : How to create a truss system
- Surface Divisions : Dividing complicated surfaces through U/V values
- Sin/Cos/Tan : Involving math into design with using simple Mathematical equations ( We will be modeling Santiago Calatrava’s Mediopadana Station in Italy
- Curve & Surface Morphing
- Rotating Towers : Will show different possible ways to script a rotating tower
- Different Point Attractors scripts
- Image Sampler
- Data Trees: How to read them, manipulate them and what they mean
The workshop will also show presentations and videos to communicate the ideas even better of what is Grasshopper, Parametric design and how it can be executed and translated from the computer to the real world.…
frame than the input number as it is counting segements not the planes. If you want the number of planes to match the slider just type N-1 into the expression Editor of the N input on the PFrames Component.
I must say I can't explain the align option as in the process of trying to explain this i seemed to have disproved my own theory..Hummm. Maybe David can enlighten Us.
Note is you just want one frame at a set point use the PFrame Component, this can be also used for setting PFrames along a crv by lenght if you use the Divide Lenght Component to get the t values for the PFrame input.
Ok secondly the pComp Component. this component gives the the origin point of the plane and the 3 vectors that denote the plane,the XY that an be seen and the Z which is the planes normal. By default the amplitude of all the vectors is 1, thus the Amp is used to make this a parametric vector lenght for the Move Component.
A quick way to rev the direction of the X/Y/Z vector is just to input -V (if it was going into the Amp component say) Thought for starters you may want to just you the rev vector component so you know what happening quicker at a glace as code is not massive thus not needing to be optimismed.
Hope this helps
Matt…
low for a degree of variation that my previous option was not allowing. There are two problems with this however.
1. i need to restrict the minimum and maximum distance of the curves at 30<100 mm respectively.
2. i also need to repeat the cycle of waves, so i dont think that splitting the curves at the cycle change and doing this method.would be useful because this would cause overlaps right?
3. most annoying constraint that I have is that the length of the elements cannot exceed 1500. :(
so basically there is limited room to play in the extent of the wave but, there is scope in repetition.
thanks for all your help so far man! once this is done I would like to make my definition as neat and communicative as yours and share it with everyone!
…
have a variable grid. sects 1 and 3 are a function of the width of the skewed slab crucially I require points aloneg the edge to the slab which means that U and V maust be equal. For sect 2 I will require to vary this dependent upn the length of the skewed slab.
I am trying to retain the data structue in the form of {0;0;0}(N) to allow what i see as a more simpler line/grillage generation.
I have seen other posts that have attempted to address it, I'm sure there are other ways of doing this. i have included two VB scripts that are close but do provide what I am after.
All help appreciated. this is drving me mental.
rgds kenyon
Hopefyully my sketch will whet someones whistle, the points weer drawn by hand
I should point out that once I have achievd the data tree challenge the plan is to exclude the points on outside of the skewed slab, which i have solved.
…
Added by Kenyon Graham at 6:19pm on January 30, 2016
flat surface. Think of it as subdivisions that I have customized to a desired outcome, rather than subdividing the surface on a constant U/V distance. When I input these values into a point xyz component, the output goes into an iso curve component and returns curves along the whole distance of the surface something like the first image I have attached. Now what I do is create a lofted surface from two U-shaped polylines to get something that looks like a U-shaped trough. I explode the lofted surface into brep components, and take the surfaces into the same function. I assume the script would act the same way and calculate the iso curve for EACH surface. Apparently not. I'm clearly missing something OBVIOUS, but what do I do to return the iso curves across a brep at my specified U values?Even with a point oriented component with the values cross-referenced, it somehow places points in the CENTER of the surface because apparently that is the origin? See image 3. …
Added by arquiteuthis at 7:19pm on September 10, 2010
ers of the last surface in the Brep, however, only the corners of the bounding box of the surface are generated)
It seems the rs.SurfacePoints only returens the control points of a surface rather than the actual corners of the surface. Can you advise if there's a way to do it?
Thank you!
Code:
import rhinoscriptsyntax as rsall_parts = rs.ExplodePolysurfaces(brep)centers = []vectors = []lines = []vertices = []cnt = 0for part in all_parts: center, err = rs.SurfaceAreaCentroid(part) centers.append(center) #rs.AddText(str(cnt), center) uv = rs.SurfaceClosestPoint(part, center) vector = rs.SurfaceNormal(part, uv) vectors.append(vector) N_start = center N_end = rs.VectorAdd(center, vector) line = rs.AddLine(N_start, N_end) lines.append(line) #vertices = rs.SurfacePoints(part) vertices = rs.SurfaceEditPoints(part) cnt +=1#C = centers#N = vectors#L = linesV = vertices#todo:#explore the surface methods in rhinoscript.surface...#import rhinoscript.surface.…
Added by Grasshope at 10:34pm on September 15, 2015
that both the ASHRAE and European Adaptive models were derived from surveys of awake occupants. While the topic has not been investigated as well as it should be, the few adaptive-style surveys of sleeping occupants that have been conducted show that people tend to desire significantly cooler temperatures when they are sleeping as opposed to when they are awake.
Notably, Chapter 8 of Humphrey's recently-published book on Adaptive Comfort (https://books.google.com/books?id=lOZzCgAAQBAJ&printsec=frontcover&dq=Adaptive+Thermal+Comfort+Foundations+and+analysis&hl=en&sa=X&ved=0ahUKEwi6npqSi__KAhUJMj4KHf7SCXMQ6AEIKjAA#v=onepage&q=Adaptive%20Thermal%20Comfort%20Foundations%20and%20analysis&f=false) provides some interesting insights into this. In a 1973 survey, Humphreys found that the quality of sleep started to deteriorate at temperatures above 24-26C regardless of the time of year and that there was no clearly-determinable lower limit to comfortable sleeping temperatures (in other words, people were fine at 12C if they were given enough blankets). He surveyed only British occupants who were sleeping in traditional beds with mattresses and a wide range of blankets. This is important because the nature of the findings is such that the comfort temperatures would be very different if the survey participants had been sleeping in a hammock or in closer contact with the ground (both popular practices for a number of cultures living in warmer climates). Traditional mattresses cut the ability to radiate body heat in half as compared to a standing human body and I would venture a guess that this is a big reason why much cooler temperatures are desired while sleeping on mattresses as opposed to standing awake/uptight.
So for your case, if you want to account for a time of the day that occupants are sleeping on mattresses, I would change the comfort temperature for this these hours down to 24C. Otherwise, if you are trying to show the comfortable hours of awake people in your space, your current 100% comfortable nighttime hours are a better estimate. I have also noticed that nighttime temperatures become comfortable in extreme weeks of hot/dry climates. This is what is happening in this extreme week simulation of Los Angeles' San Fernando Valley here:
https://www.youtube.com/watch?v=WJz1Eojph8E&index=3&list=PLruLh1AdY-Sj3ehUTSfKa1IHPSiuJU52A
I will put in the ability to set custom values for comfort temperatures into the Adaptive Comfort Recipe soon so that you can test out a 'sleeping comfort temperature' if you would like. I have created a github issue for it here:
https://github.com/mostaphaRoudsari/Honeybee/issues/486
I was not so convinced by Nicol's argument about humidity on those pages as I was when I saw the correlations of both operative temperature and effective temperature to surveyed comfort votes in real buildings. Humphreys shows these correlations on page 106 of the book I linked to above. Notably, the correlation of Effective Temperature to comfort votes (0.257) is slightly worse than the correlation of just Operative Temperature (0.265). In other words, trying to account for humidity actually weakened the predictive power of the metric. This difference in correlation is not so great as for me to discount an Adaptive comfort model based on Effective temperature (as deDear once proposed). However, the correlations of PMV (0.213) and SET (0.185) to comfort votes are so poor that I now use the PMV model only with great caution.
This reason for the decreased importance of humidity may be multi-faceted, whether it's Nicol's explanation or another. Still, the data suggests that we are probably better off ignoring humidity when forecasting comfort and should only consider it when evaluating conditions of extreme heat stress where people's primary loss of heat is through sweating.
-Chris…
h 11 returns two values, and the lists with 10 and 6 return one. In any case, I changed the logic a bit.
Check it out in the other vb component. The idea is just to check if the list is odd or even first with the Mod operator. If the lsit is odd, return the middle item in the list as you have set it up. If the list is even, return the mid items also in the same way as you have set it up. I am attaching the edited .gh file, a Class1.cs file which shows in C# how I set up the component (translated vb code will follow), and the .gha I built from it.
The logic should be a bit easier to follow in this version. Check out the edited vb component in the definition for a 'translated version.'
Apologies for the C# ness...I currently do not have Visual Studio Express installed, just Visual C# express. This one is converting just fine to:
Dim list As New List(Of Object)()Dim out_v As New List(Of Object)()Dim out_i As New List(Of Integer)()If Not DA.GetDataList(0, list) Then ReturnEnd IfDim val As Object = list(Convert.ToInt32(Math.Floor(Convert.ToDouble(list.Count / 2))))Dim i As Integer = Convert.ToInt32(Math.Floor(Convert.ToDouble(list.Count / 2)))If (list.Count Mod 2) Then out_v.Add(val) out_i.Add(i)Else out_v.Add(val) out_i.Add(i) out_v.Add(list(i + 1)) out_i.Add(i + 1)End IfDA.SetDataList(0, out_v)DA.SetDataList(1, out_i)…
Added by Luis Fraguada at 11:43am on September 2, 2011
a given with the third set of information (at the 6th minute). From that, it will then match - for the same exact boats - the speed data given at the 4th minute. Finally it will do a matched subtraction of V(4th) from V(6th) for each boat. Those numbers - whether then scaled up / down or somehow manipulated - will act as the Z dimension which will create the topology. Since V2 - V1 can have a minus value, the overall topology will be a mix of mountains and icebergs this time.
Perhaps to be more accurate, we could divide V2-V1 by 120 and let the topology show the change in speed in a second within that two minutes; the XY coordinates belonging to the latter position of the ships, not the first.
Your definition as you say helps for the linear drawing as it continues from it's stopped. I used that in the current sketch as well for again doing the same thing.However when, I tried to use it for what I am trying to do with the acceleration thing, the result was different. I will try to explain this again;
Let's say that until this point 6 sets of data has arrived - so 12 minutes has passed -. Within that 6 sets, the number of of boats for each one differ as not all of them are able to send data every time. Let's assume in total there are 25 boats and 18 of them have always managed to send data in those 12 minutes. So 18 from the beginning until the end, and finally let's say the remaining 7 of them only could manage to come into the picture at the 4th set of data (so 4,5 and 6).
Now, if I were to build a topology of acceleration for the 6th minute which would mean that I would have to subtract V(4th minute) from V(6th minute) of all 18 vessels, I would need index 2 and 1 from all the branches. If I do this only after 6 minutes has passed from the beginning it would probably work, however if I do it later like at the 12th minute, it does not.
And the very reason for that is when the remaining 7 join the crowd at the 8th minute they obtain an index number of 0, and then 1, and then 2 - at the 12th minute. Because of that when I try to match the V2-V1s with Coordinates on the Unary Force component, while there are 18 sets of coordinates, there are 25 different speed values.
Of course this is quite a simplified scenario and perhaps your vessel matching could solve this specific one but there are cases where its more complicated and random.
I do still want to show vessels' position in a specific time with such pipes you have suggested, but I am trying to construct a collective model, in its simplest form being equal to pipes + topology
For the time thing, what I meant was in this version when you click play the mountains just keep on rising and the topology is constantly deformed. I was wondering if we can set up a timer so that it runs the physics engine for couple of seconds and then freezes the topology as it is. Otherwise I would have to press pause manually everytime, which is not that big of a deal tbh, just for the accuracy sake it would be good to run the engine for the same interval for each model.
All the best,
Levent…