he Summer in the City program, part of the Portland School of Architecture and Allied Arts (an extension to University of Oregon).
Using both Grasshopper and the Firefly plug-in, this workshop will focus on the design of innovative facade prototypes that are configurable, sensate, and active. Students will become familiar with the terminology used in interactive facade design including an overview of hardware (ie.sensors, actuators, and programmable microcontrollers) as well as software interfaces terminology. We'll learn new prototyping techniques and develop digital and physical models which can respond to a plurality of environmental and user driven forces. This workshop will take a hands-on approach, and you will walk away with the ability to build your own custom electronic circuits (using the Arduino), as well as create interactive simulations and models.
This course will primarily focus on physical computing techniques. Unfortunately, given the time constraints of the workshop, I will not be able to provide an extensive overview of the Grasshopper interface (it is suggested that participants have some familiarity with the Rhino/Grasshopper environment). There are many great online resources to get you up to speed relatively quickly if you are new to this software. This is a good place to start.
The course will be held at the School of Architecture and Allied Arts in Portland, OR. The date/times of the workshop are as follows:
Friday July 19, 5:00-7:50 P.M.
Saturday July 20, 9:00 A.M.-3:50 P.M.
Sunday July 21, 1:00-3:50 P.M.
If you are a designer, architect, or anyone who is interested in learning about the digital tools and technology trends that are revolutionizing design today, this workshop is for you. Make sure to click here to find out more about registration and enrollment in this exciting new workshop.…
() Sub Main()
' user input
Dim intHowManyTrees : intHowManyTrees = Rhino.GetInteger("how many trees is a forest",20,1,50) Dim intHowManyGenerations : intHowManyGenerations = Rhino.GetInteger("how many generations is a tree?",6,1,10) Dim dblForestLength : dblForestLength = Rhino.GetReal("was is the desired length of your forest",50) Dim dblForestWidth : dblForestWidth = Rhino.GetReal("was is the desired width of your forest",50) Dim dblInitLength : dblInitLength = Rhino.GetReal("was is the desired length of the first main Branch?",10) Dim ang : ang = Rhino.GetReal("angle of rotation", 30, 1, 180) Dim scale : scale = Rhino.GetReal("scale of branch", 0.9) 'loop for number of generations i 'ReDim arrgenerations (Ubound (intHowManyGenerations)) Dim layer_0 : layer_0 = Rhino.AddLayer("0") Dim i For i=0 To intHowManyTrees Dim arrSeed : arrSeed = Array(Rnd*dblForestLength, Rnd*dblForestWidth,0) Dim strLine : strLine = Rhino.AddLine(Array (arrSeed(0), arrSeed (1), arrSeed (2)+Rnd*3), Array(arrSeed(0), arrSeed(1),arrSeed(2)+Rnd*dblInitLength+3))
Call Rhino.ObjectLayer (strLine, "0" ) Call Rhino.ObjectName (strLine, i) Next Dim j,vec ReDim arrbranch (intHowManyGenerations) For i=1 To intHowManyGenerations 'select the elements arrbranch (i) = Rhino.ObjectsByLayer (i-1) Dim strBranch For j=0 To Ubound(arrBranch(i)) strBranch = arrBranch(i)(j) Dim strParentName : strParentName = Rhino.ObjectName(strBranch) ' get start and end points Dim arrStartPt : arrStartPt = Rhino.CurveStartPoint(strBranch) Dim arrEndPt : arrEndPt = Rhino.CurveEndPoint(strBranch)
' get a vector between start and end vec = Rhino.VectorCreate(arrEndPt, arrStartPt) ''''' vec(x,y,z)
' scale vector vec = Rhino.VectorScale(vec, scale)
' rotate vectors Dim arrPlane : arrPlane = Rhino.CurvePerpFrame (strBranch, Rhino.CurveDomain(strBranch)(1))
Dim arrRotAxis Dim layer layer = Rhino.AddLayer ( i )
arrRotAxis = arrPlane(Int(Rnd*3)) Dim vec1 : vec1 = Rhino.VectorRotate(vec, ang, arrRotAxis) ' add the vector to the end point Dim newEndPt : newEndPt = Rhino.VectorAdd(arrEndPt, vec1)
Dim line1: line1 = Rhino.AddLine(arrEndPt, newEndPt) Call Rhino.ObjectLayer (line1, i) Call Rhino.ObjectName(line1, strParentName)
If rnd<0.8 Then arrRotAxis = arrPlane(Int(Rnd*3)) Dim vec2 : vec2 = Rhino.VectorRotate(vec, -ang, arrRotAxis) Dim newEndPt2 : newEndPt2 = Rhino.VectorAdd(arrEndPt, vec2)
Dim line2: line2 = Rhino.AddLine(arrEndPt, newEndPt2) Call Rhino.ObjectLayer (line2, i) Call Rhino.ObjectName(line2, strParentName) End If
If rnd<0.2 Then arrRotAxis = arrPlane(Int(Rnd*3)) Dim vec3 : vec3 = Rhino.VectorRotate(vec, ang*(rnd-0.5)*2, arrRotAxis) Dim newEndPt3 : newEndPt3 = Rhino.VectorAdd(arrEndPt, vec3)
Dim line3: line3 = Rhino.AddLine(arrEndPt, newEndPt3) Call Rhino.ObjectLayer (line3, i) Call Rhino.ObjectName(line3, strParentName) End If Next Next End Sub
Any kind of help would be highly appreciated…
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?…
imply lets you communicate with the chip in real time with other peripherals. In my case, I'm using the Xbox Kinect to read visual movements, assign a point ID to something like the left and right hand, translate its x-coordinate into a number, and have that number move a robotic arm servo. Sorry if this sounds like your upcoming robotic apocalypse.
My problem is that because my hand is always moving, it is continually reading the data in real time and crashing Arduino because it is continually processing the rotational distance (in degrees between 0-179). For example, if my hand was moving from 1 to 50 degrees, it's computing 1, 2, 3, 4, 5, 6, ..etc instead of 1 and 50 as two separate states.
Is there a way to have a component refresh its value in a certain interval? This would mean it could read my hand at different intervals and print a value at timed increments instead of doing it all in real time. A simple practice exercise would be to create a random component and have the component refresh so that every 1 second or so it would produce a different number. The app is essentially refreshing. I thought the Timer component worked, but I misunderstood what it's used for, and I don't think it does what I intend it to do.
I've attached some pictures to show what I'm attempting.
And a file to recreate the problem with a different instance.
Thanks so much for your help! …
a part of it,,,, plz find the file attached and tell me if there's a problem i can't recognize ?
the energy plus Icon tells me to update honey bee & I updated it but no results .
for the simulation results I need for my study :
- air temperature in side the building
- thermal comfort analysis
In 3 cases " when the kinetic facade is closed , 50% open & 100% open " then I need to make optimization to get the optimum movement of the facade .
so I need to know what's the problem with my file !!! and if there are advises for the next steps of my study will be great .
and I have a question , honey bee can deal with windows , but what about doors ? how to have a correct results with no doors in the building ?
thank you in advance
Mona rezq
…
odules; one has 50 curves, the other has 25. Some of the objects in each set overlap and are essentially duplicates of each other (but not every curve - The only thing that may vary is the color of the object but the coordinates are exactly the same). I'm looking for a way to isolate only the ones that overlap.
When this problem came up with points I had to do a really annoying process of creating cylinders and intersecting them with another line - basically a really convoluted process that didn't work exactly and was hyper-specific to this situation of points. Now I have the same general problem, just with curves. I feel like if there is not an easy way of doing this in grasshopper (I've searched all over, so I'm not sure if there is) it seems like it would be an extremely simple VB.NET operation.
Can anyone help me out?…
u can display:
1. All angles
2. Angles that are smaller than a number(chose number from the CONTROLS group)
3. Only the angles around a specific node (chose node from the CONTROLS group)
Can you please explain a little better what you are trying to do?
Do you want to create pipes around all the mesh edges?
If so, what is the rule for the pipe's radius?
If it starts or ends on a node that has at least one angle<50 then its radius is 100?
And if not?…
Added by nikos tzar at 10:10am on September 8, 2014
summer because of the relative humidity of outdoor air will be over 80%.
I want to set the schedule like this
1) cooling setpoint to be 27C degree and max humidity to be 50%.
2) when the outdoor air temperature is lower than 27C, open the windows and ventilation naturally.
3) Air conditioning and dehumidification are needed only when the occupancies are at home (almost at night) and Natural ventilation is not to be.
4) Accept the indoor air relative humidity to be almost 100% when dry bulb temperature is lower than 27C.
Now, I set the air conditioning schedule as cooling setpoint schedule, but there are no components to set a dehumidification setpoint schedule.
The dehumidifier keeps working all day whichever the windows are opening or not.
How can I stop the dehumidifier during the windows open?
thank you.…
.0004. [1 of 7] Writing simulation parameters...5. [2 of 6] No context surfaces...6. [3 of 6] Writing geometry...7. [4 of 6] Writing materials and constructions...8. [5 of 7] Writing schedules...9. [6 of 7] Writing loads and ideal air system...10. [7 of 7] Writing outputs...11. ...... idf file is successfully written to : c:\ladybug\unnamed\EnergyPlus\unnamed.idf12. 13. Analysis is running!...14. c:\ladybug\unnamed\EnergyPlus\eplusout.csv15. ......
Done! Read below for errors and warnings:
16. 17. Program Version,EnergyPlus, Version 8.2.7-777c1f8d79, YMD=2015.02.28 16:09,IDD_Version 8.2.718. 19. ** Warning ** IP: Note -- Some missing fields have been filled with defaults. See the audit output file for details.20. 21. ** Warning ** Version: in IDF="'8.2.7'" not the same as expected="8.2"22. 23. ** Warning ** ManageSizing: For a zone sizing run, there must be at least 1 Sizing:Zone input object. SimulationControl Zone Sizing option ignored.24. 25. ** Warning ** ManageSizing: For a plant sizing run, there must be at least 1 Sizing:Plant object input. SimulationControl Plant Sizing option ignored.26. 27. ** Severe ** GetHTSubSurfaceData: Surface Openings have too much area for base surface=F73533B3C6894C67936B_GLZP_1228. 29. ** ~~~ ** Opening Surface creating error=F73533B3C6894C67936B_GLZP_12_GLZ_1230. 31. ** Severe ** GetHTSubSurfaceData: Surface Openings have too much area for base surface=F73533B3C6894C67936B_GLZP_2532. 33. ** ~~~ ** Opening Surface creating error=F73533B3C6894C67936B_GLZP_25_GLZ_2534. 35. ** Severe ** GetHTSubSurfaceData: Surface Openings have too much area for base surface=F73533B3C6894C67936B_GLZP_2836. 37. ** ~~~ ** Opening Surface creating error=F73533B3C6894C67936B_GLZP_28_GLZ_2838. 39. ** Severe ** GetHTSubSurfaceData: Surface Openings have too much area for base surface=4BDFD67E6D0E486796CC_GLZP_940. 41. ** ~~~ ** Opening Surface creating error=4BDFD67E6D0E486796CC_GLZP_9_GLZ_942. 43. ** Severe ** GetHTSubSurfaceData: Surface Openings have too much area for base surface=4BDFD67E6D0E486796CC_GLZP_1044. 45. ** ~~~ ** Opening Surface creating error=4BDFD67E6D0E486796CC_GLZP_10_GLZ_1046. 47. ** Severe ** GetHTSubSurfaceData: Surface Openings have too much area for base surface=4BDFD67E6D0E486796CC_GLZP_1148. 49. ** ~~~ ** Opening Surface creating error=4BDFD67E6D0E486796CC_GLZP_11_GLZ_1150. 51. ** Severe ** GetHTSubSurfaceData: Surface Openings have too much area for base surface=4BDFD67E6D0E486796CC_GLZP_1552. 53. ** ~~~ ** Opening Surface creating error=4BDFD67E6D0E486796CC_GLZP_15_GLZ_1554. 55. ** Severe ** GetHTSubSurfaceData: Surface Openings have too much area for base surface=4BDFD67E6D0E486796CC_GLZP_2456. 57. ** ~~~ ** Opening Surface creating error=4BDFD67E6D0E486796CC_GLZP_24_GLZ_2458. 59. ** Severe ** GetHTSubSurfaceData: Surface Openings have too much area for base surface=4BDFD67E6D0E486796CC_GLZP_2560. 61. ** ~~~ ** Opening Surface creating error=4BDFD67E6D0E486796CC_GLZP_25_GLZ_2562. 63. ** Severe ** GetHTSubSurfaceData: Surface Openings have too much area for base surface=4BDFD67E6D0E486796CC_GLZP_3064. 65. ** ~~~ ** Opening Surface creating error=4BDFD67E6D0E486796CC_GLZP_30_GLZ_3066. 67. ** Severe ** GetHTSubSurfaceData: Surface Openings have too much area for base surface=4BDFD67E6D0E486796CC_GLZP_3268. 69. ** ~~~ ** Opening Surface creating error=4BDFD67E6D0E486796CC_GLZP_32_GLZ_3270. 71. ** Severe ** GetHTSubSurfaceData: Surface Openings have too much area for base surface=4BDFD67E6D0E486796CC_GLZP_3472. 73. ** ~~~ ** Opening Surface creating error=4BDFD67E6D0E486796CC_GLZP_34_GLZ_3474. 75. ** Warning ** GetSurfaceData: Very small surface area[2.94495E-004], Surface=F73533B3C6894C67936B_GLZP_076. 77. ** Warning ** GetSurfaceData: Very small surface area[3.84753E-004], Surface=F73533B3C6894C67936B_GLZP_178. 79. ** Warning ** GetSurfaceData: Very small surface area[9.16905E-004], Surface=F73533B3C6894C67936B_GLZP_380. 81. ** Warning ** GetSurfaceData: Very small surface area[4.96186E-004], Surface=F73533B3C6894C67936B_GLZP_482. 83. ** Warning ** GetSurfaceData: Very small surface area[2.37373E-005], Surface=F73533B3C6894C67936B_GLZP_684. 85. ** Warning ** GetSurfaceData: Very small surface area[6.35824E-004], Surface=F73533B3C6894C67936B_GLZP_786. 87. ** Warning ** GetSurfaceData: Very small surface area[5.86549E-004], Surface=F73533B3C6894C67936B_GLZP_888. 89. ** Warning ** GetSurfaceData: Very small surface area[7.63765E-004], Surface=F73533B3C6894C67936B_GLZP_1090. 91. ** Severe ** GetSurfaceData: Zero or negative surface area[-8.09566E-004], Surface=F73533B3C6894C67936B_GLZP_1292. 93. ** Warning ** GetSurfaceData: Very small surface area[1.51701E-004], Surface=F73533B3C6894C67936B_GLZP_1394. 95. ** Warning ** GetSurfaceData: Very small surface area[9.29917E-004], Surface=F73533B3C6894C67936B_GLZP_1596. 97. ** Warning ** GetSurfaceData: Very small surface area[2.94451E-004], Surface=F73533B3C6894C67936B_GLZP_1698. 99. ** Warning ** GetSurfaceData: Very small surface area[8.03294E-004], Surface=F73533B3C6894C67936B_GLZP_17100. 101. ** Warning ** GetSurfaceData: Very small surface area[6.83026E-004], Surface=F73533B3C6894C67936B_GLZP_18102. 103. ** Warning ** GetSurfaceData: Very small surface area[9.29917E-004], Surface=F73533B3C6894C67936B_GLZP_20104. 105. ** Warning ** GetSurfaceData: Very small surface area[3.19851E-005], Surface=F73533B3C6894C67936B_GLZP_21106. 107. ** Warning ** GetSurfaceData: Very small surface area[7.63765E-004], Surface=F73533B3C6894C67936B_GLZP_23108. 109. ** Severe ** GetSurfaceData: Zero or negative surface area[-4.05899E-004], Surface=F73533B3C6894C67936B_GLZP_25110. 111. ** Warning ** GetSurfaceData: Very small surface area[6.35824E-004], Surface=F73533B3C6894C67936B_GLZP_27112. 113. ** Severe ** GetSurfaceData: Zero or negative surface area[-9.91146E-004], Surface=F73533B3C6894C67936B_GLZP_28114. 115. ** Warning ** GetSurfaceData: Very small surface area[2.70158E-004], Surface=F73533B3C6894C67936B_GLZP_29116. 117. ** Warning ** GetSurfaceData: Very small surface area[3.22781E-004], Surface=F73533B3C6894C67936B_GLZP_30118. 119. ** Warning ** GetSurfaceData: Very small surface area[4.67821E-004], Surface=F73533B3C6894C67936B_GLZP_33120. 121. ** Warning ** GetSurfaceData: Very small surface area[3.22737E-004], Surface=F73533B3C6894C67936B_GLZP_34122. 123. ** Warning ** GetSurfaceData: Very small surface area[2.65634E-004], Surface=4BDFD67E6D0E486796CC_GLZP_0124. 125. ** Warning ** GetSurfaceData: Very small surface area[4.70736E-004], Surface=4BDFD67E6D0E486796CC_GLZP_1126. 127. ** Warning ** GetSurfaceData: Very small surface area[3.42507E-004], Surface=4BDFD67E6D0E486796CC_GLZP_3128. 129. ** Warning ** GetSurfaceData: Very small surface area[5.89276E-004], Surface=4BDFD67E6D0E486796CC_GLZP_4130. 131. ** Warning ** GetSurfaceData: Very small surface area[1.91146E-004], Surface=4BDFD67E6D0E486796CC_GLZP_6132. 133. ** Warning ** GetSurfaceData: Very small surface area[9.71205E-004], Surface=4BDFD67E6D0E486796CC_GLZP_7134. 135. ** Warning ** GetSurfaceData: Very small surface area[4.34494E-004], Surface=4BDFD67E6D0E486796CC_GLZP_8136. 137. ** Severe ** GetSurfaceData: Zero or negative surface area[-3.60159E-004], Surface=4BDFD67E6D0E486796CC_GLZP_9138. 139. ** Severe ** GetSurfaceData: Zero or negative surface area[-1.11946E-004], Surface=4BDFD67E6D0E486796CC_GLZP_10140. 141. ** Severe ** GetSurfaceData: Zero or negative surface area[-3.41257E-004], Surface=4BDFD67E6D0E486796CC_GLZP_11142. 143. ** Severe ** GetSurfaceData: Zero or negative surface area[-8.21483E-005], Surface=4BDFD67E6D0E486796CC_GLZP_15144. 145. ** Warning ** GetSurfaceData: Very small surface area[2.65716E-004], Surface=4BDFD67E6D0E486796CC_GLZP_16146. 147. ** Warning ** GetSurfaceData: Very small surface area[4.84044E-004], Surface=4BDFD67E6D0E486796CC_GLZP_17148. 149. ** Warning ** GetSurfaceData: Very small surface area[7.12297E-004], Surface=4BDFD67E6D0E486796CC_GLZP_19150. 151. ** Warning ** GetSurfaceData: Very small surface area[6.14324E-004], Surface=4BDFD67E6D0E486796CC_GLZP_22152. 153. ** Warning ** GetSurfaceData: Very small surface area[8.88887E-004], Surface=4BDFD67E6D0E486796CC_GLZP_23154. 155. ** Severe ** GetSurfaceData: Zero or negative surface area[-9.89060E-004], Surface=4BDFD67E6D0E486796CC_GLZP_24156. 157. ** Severe ** GetSurfaceData: Zero or negative surface area[-1.14849E-003], Surface=4BDFD67E6D0E486796CC_GLZP_25158. 159. ** Warning ** GetSurfaceData: Very small surface area[4.00479E-004], Surface=4BDFD67E6D0E486796CC_GLZP_27160. 161. ** Warning ** GetSurfaceData: Very small surface area[6.63061E-005], Surface=4BDFD67E6D0E486796CC_GLZP_28162. 163. ** Warning ** GetSurfaceData: Very small surface area[1.09018E-004], Surface=4BDFD67E6D0E486796CC_GLZP_29164. 165. ** Severe ** GetSurfaceData: Zero or negative surface area[-2.49326E-005], Surface=4BDFD67E6D0E486796CC_GLZP_30166. 167. ** Severe ** GetSurfaceData: Zero or negative surface area[-3.17446E-004], Surface=4BDFD67E6D0E486796CC_GLZP_32168. 169. ** Warning ** GetSurfaceData: Very small surface area[8.60686E-004], Surface=4BDFD67E6D0E486796CC_GLZP_33170. 171. ** Severe ** GetSurfaceData: Zero or negative surface area[-2.48515E-005], Surface=4BDFD67E6D0E486796CC_GLZP_34172. 173. ** Fatal ** GetSurfaceData: Errors discovered, program terminates.174. 175. ...Summary of Errors that led to program termination:176. 177. ..... Reference severe error count=24178. 179. ..... Last severe error=GetSurfaceData: Zero or negative surface area[-2.48515E-005], Surface=4BDFD67E6D0E486796CC_GLZP_34180. 181. ************* Warning: Node connection errors not checked - most system input has not been read (see previous warning).182. 183. ************* Fatal error -- final processing. Program exited before simulations began. See previous error messages.184. 185. ************* EnergyPlus Warmup Error Summary. During Warmup: 0 Warning; 0 Severe Errors.186. 187. ************* EnergyPlus Sizing Error Summary. During Sizing: 2 Warning; 0 Severe Errors.188. 189. ************* EnergyPlus Terminated--Fatal Error Detected. 41 Warning; 24 Severe Errors; Elapsed Time=00hr 00min 1.51sec190.…
bounding box wont work because it will seldom be square shaped. this square bounding surface should always be larger than the open or closed curve
2. dividing the curve into then testing its closest point to the center of the bounding sqaure plane.
3. creating rectangles with the same size as the divisions of the bounding plane.
this works perfectly, but there is one last problem that needs attention.
it generates the same amount of closest points than what is specified for the curve divide. e.g. the curve can be closed for instance with 35 squares , but the curve was divided into let say 50 points. the curve will be closed with the 35 squares but there are an additional 15 squares ontop of the 35 squares.
SO if someone can tell us how to remove duplicate data from a list of points(the points with the same coordinates), then the final solution will have no duplicate data.
the duplicate data can be seen in the second image
Gordon
…