value=WINTERDESIGNDAY, in SIZINGPERIOD:DESIGNDAY=SINGAPORE ANN HTG 99.6% CONDNS DB ************* IDF Context for following error/warning message: ************* Note -- lines truncated at 300 characters, if necessary... ************* 53 SizingPeriod:DesignDay, ************* indicated Name=SINGAPORE Ann Htg 99% Condns DB ************* Only last 10 lines before error line shown..... ************* 57 23.5, !- Humidity Indicating Conditions at Maximum Dry-Bulb ************* 58 101133., !- Barometric Pressure {Pa} ************* 59 2, !- Wind Speed {m/s} design conditions vs. traditional 6.71 m/s (15 mph) ************* 60 320, !- Wind Direction {Degrees; N=0, S=180} ************* 61 0.00, !- Clearness {0.0 to 1.1} ************* 62 0, !- Rain {0-no,1-yes} ************* 63 0, !- Snow on ground {0-no,1-yes} ************* 64 21, !- Day of Month ************* 65 12, !- Month ************* 66 WinterDesignDay,!- Day Type
The relevant lines in the IDF file is shown below:
SizingPeriod:DesignDay, SINGAPORE Ann Htg 99.6% Condns DB, !- Name 23, !- Maximum Dry-Bulb Temperature {C} 0.0, !- Daily Temp Range {C} 23, !- Humidity Indicating Conditions at Maximum Dry-Bulb 101133., !- Barometric Pressure {Pa} 2, !- Wind Speed {m/s} design conditions vs. traditional 6.71 m/s (15 mph) 320, !- Wind Direction {Degrees; N=0, S=180} 0.00, !- Clearness {0.0 to 1.1} 0, !- Rain {0-no,1-yes} 0, !- Snow on ground {0-no,1-yes} 21, !- Day of Month 12, !- Month WinterDesignDay,!- Day Type 0, !- Daylight Savings Time Indicator WetBulb; !- Humidity Indicating Type ! SINGAPORE_SGP Annual Heating 99%, MaxDB=23.5°C SizingPeriod:DesignDay, SINGAPORE Ann Htg 99% Condns DB, !- Name 23.5, !- Maximum Dry-Bulb Temperature {C} 0.0, !- Daily Temp Range {C} 23.5, !- Humidity Indicating Conditions at Maximum Dry-Bulb 101133., !- Barometric Pressure {Pa} 2, !- Wind Speed {m/s} design conditions vs. traditional 6.71 m/s (15 mph) 320, !- Wind Direction {Degrees; N=0, S=180} 0.00, !- Clearness {0.0 to 1.1} 0, !- Rain {0-no,1-yes} 0, !- Snow on ground {0-no,1-yes} 21, !- Day of Month 12, !- Month WinterDesignDay,!- Day Type 0, !- Daylight Savings Time Indicator WetBulb; !- Humidity Indicating Type
It seems that there is an empty line after the line for "!- Humidity Indicating Type" field, and nothing is specified for "! SINGAPORE_SGP Annual Heating 99%, MaxDB=23.5°C" field.
May I ask why this happens and how to correct the error?
Thank you very much!…
workshop setting. The workshops are open to the public. Register: http://2012.acadia.org/workshops.html Date: Sunday, Oct 21 (8:30am - 5:30pm) Workshop Location: CCA San Francisco
01. "ALGORITHMS & MATHEMATICS"
Instructors: Edmund Harriss with David Celento, Brian Lockyear Synopsis: This workshop will be collaboratively taught by both mathematicians and architects exploring what happens when "Form Follows Functions". (Grasshopper)
02. "5 AXIS ROBOTIC FABRICATION"
Instructors: Brandon Kruysman and Jonathan Proto (SCI-Arc) Synopsis: Instructors will be bringing their 5-axis Staubli TX60L robot up from the SCI-Arc Robot House. They will lead a hands-on workshop focused on its technical and creative applications. (Maya based)
03. "CASE STUDIES IN PARAMETRIC DESIGN"
Instructors: Andrew Kudless (Matsys) and Andrew Heumann (NBBJ) Synopsis: Case Studies in Parametric Design - The use of precedents in the design process has been driven by their transformative potential. (Grasshopper based)
04. "ROBOTIC PROTOTYPES"
Instructors: Michael Shiloh, Ripon DeLeon and Jason Kelly Johnson (Future Cities Lab) Synopsis: The Robotic Prototypes workshop will explore the use of Grasshopper, Firefly and Arduino as creative and technical tools in the design, simulation and prototyping of intelligent building skins.
05. "COMPUTATIONAL DESIGN STRATEGIES WITH DESIGNSCRIPT"
Synopsis: The objective of this workshop is to help participants develop appropriate design strategies using advanced computational tools based on the DesignScript language.
06. "PYTHON SCRIPTING WITH REVIT / VASARI"
Instructors: Nathan Miller (C.A.S.E.) Synopsis: The workshop will introduce users to Python-based automation and generative techniques for Conceptual Modeling in Revit and Vasari.
07. "GIS DRIVEN PARAMETRIC DESIGN"
Instructors: Sandoval, Faichney, de Monchaux (UC Berkeley) Synopsis: This workshop will introduce a design process that implements Finches and the LocalCode components, a suite of tools for working with GIS data in Rhino/Grasshopper.…
ts attached one next to the other which all together make the self-sustined structure.
Honestly, I've no idea about how I can create such algorithm..but maybe it easier than I expect.
Could you suggest me sth? The main problem is the variable section of each plastic element.
Thanks in advance for your help!!
I attached 3 reference images of the pavilion.
…
1 of 8] Writing simulation parameters...[2 of 8] No context surfaces...[3 of 8] Writing geometry...[4 of 8] Writing Electric Load Center - Generator specifications ...[5 of 8] Writing materials and constructions...[6 of 8] Writing schedules...[7 of 8] Writing loads and ideal air system...[8 of 8] Writing outputs......... idf file is successfully written to : c:\ladybug\unnamed\EnergyPlus\unnamed.idfAnalysis is running!...c:\ladybug\unnamed\EnergyPlus\eplusout.csv......Done! Read below for errors and warnings:Program Version,EnergyPlus, Version 8.4.0-09f5359d8a, YMD=2016.05.27 21:14,IDD_Version 8.4.0 ** Warning ** IP: Note -- Some missing fields have been filled with defaults. See the audit output file for details. ************* Beginning Zone Sizing Calculations ** Warning ** ManageSizing: For a plant sizing run, there must be at least 1 Sizing:Plant object input. SimulationControl Plant Sizing option ignored. ************* Testing Individual Branch Integrity ************* All Branches passed integrity testing ************* Testing Individual Supply Air Path Integrity ************* All Supply Air Paths passed integrity testing ************* Testing Individual Return Air Path Integrity ************* All Return Air Paths passed integrity testing ************* No node connection errors were found. ************* Beginning Simulation ************* Simulation Error Summary ************* ** Warning ** The following Report Variables were requested but not generated ** ~~~ ** because IDF did not contain these elements or misspelled variable name -- check .rdd file ************* Key=*, VarName=ZONE PACKAGED TERMINAL HEAT PUMP TOTAL COOLING ENERGY, Frequency=Hourly ************* Key=*, VarName=ZONE PACKAGED TERMINAL HEAT PUMP TOTAL HEATING ENERGY, Frequency=Hourly ************* Key=*, VarName=CHILLER ELECTRIC ENERGY, Frequency=Hourly ************* Key=*, VarName=BOILER HEATING ENERGY, Frequency=Hourly ************* Key=*, VarName=FAN ELECTRIC ENERGY, Frequency=Hourly ************* Key=*, VarName=ZONE VENTILATION FAN ELECTRIC ENERGY, Frequency=Hourly ************* Key=*, VarName=EARTH TUBE FAN ELECTRIC ENERGY, Frequency=Hourly ************* Key=*, VarName=PUMP ELECTRIC ENERGY, Frequency=Hourly ************* Key=*, VarName=ZONE VENTILATION TOTAL HEAT LOSS ENERGY, Frequency=Hourly ************* Key=*, VarName=ZONE VENTILATION TOTAL HEAT GAIN ENERGY, Frequency=Hourly ************* There are 1 unused schedules in input. ************* There are 1 unused week schedules in input. ************* There are 3 unused day schedules in input. ************* Use Output:Diagnostics,DisplayUnusedSchedules; to see them. ************* EnergyPlus Warmup Error Summary. During Warmup: 0 Warning; 0 Severe Errors. ************* EnergyPlus Sizing Error Summary. During Sizing: 1 Warning; 0 Severe Errors. ************* EnergyPlus Completed Successfully-- 3 Warning; 0 Severe Errors; Elapsed Time=00hr 00min 1.19sec
…
ly works on points but other types should work in theory. The VB script is uses alot of loops and i am sure that is far from optimzed.Check out the K-Means Page on wikipedia
And the general page on data clustering...
The code goes like this:
Private Sub RunScript(ByVal P As DataTree(Of Point3d), ByVal N As DataTree(Of Integer), ByVal D As Double, ByRef G As Object) 'your code goes here… Dim t As Integer = 0 Dim i As Integer = 0
Dim j As Integer = 0
Dim k As Integer = 0
Dim numGroups As Integer
Dim groupNum As Integer
Dim X As Double
Dim Y As Double
Dim Z As Double
Dim minDist As Double
Dim dist As Double
'Dim cluster As Integer
'initialize random number generator
Dim r As New Random(System.DateTime.Now.Millisecond)
Dim goupings As New List(Of List(Of Integer))
Dim oldCentroids As New List(Of Point3d)
Dim newCentroids As New List(Of Point3d)
Dim pathList As New List(Of GH_Path)
Dim newCentroid As Point3d
Dim pt As Point3d
Dim isStillMoving As Boolean
Dim groupingsTree As New DataTree(Of Point3d)
Dim inputpts As New List(Of Point3d)
For t = 0 To P.BranchCount - 1
'this mess dose data matching for inputs P and N
'this if is ture is the input branches are equal
If N.BranchCount >= P.BranchCount Then
'check to see if, in the case the branches are equal, that there is only one item in each branch of N
If N.Branch(t).Count = 1 Then
numGroups = N.Branch(t)(0)
'I don't know what to do if the above statment isn't true so let's exit the program
Else
Print("Error: data missmatch between inputs P and N, Please reformat inputs")
Exit Sub
End If
'here we check if it is a simple list...
Else If N.Branch(0).Count = P.BranchCount
numGroups = N.Branch(0)(t)
'here we check if it is a simple list but is shorter or longer than the tree P
Else If N.Branch(0).Count < P.BranchCount Then
If t <= N.Branch(0).Count - 1 Then
numGroups = N.Branch(0)(t)
Else
numGroups = N.Branch(0)(N.Branch(0).Count - 1)
End If
'if all else fails exit the program!
Else
Print("Error: data missmatch between inputs P and N, Please reformat inputs")
Exit Sub
End If
inputpts = P.Branch(t)
print("--------Accessing Branch " & t & "--------")
'***************** Initialize K-Means Algorithm ****************************
print("--------Initializing " & numGroups & " groupings-------")
For i = 0 To numGroups - 1
'Dim pt As Point3d
'Dim group As New List(Of Integer)
Dim tempPath As New GH_Path
goupings.Add(New List(Of Integer))
newCentroids.add(pt)
oldCentroids.Add(pt)
tempPath.FromString(t & ";" & i)
pathList.Add(tempPath)
print("creating grouping " & i)
Next
'radomly assign points from the input list (intialze the k-mean groups)
print("--------Initializing group assinments (random)-------")
For j = 0 To inputpts.Count - 1
groupNum = RandomNumber(r, numGroups - 1)
goupings(groupNum).Add(j)
print("Adding index value " & goupings(groupNum)(goupings(groupNum).Count - 1) & " to group " & groupNum & ".")
Next
'***************** Do K-Means Algorithm ************************************
print("--------entering main k-means loop--------")
isStillMoving = True
Do While isStillMoving
isStillMoving = False
'find new centroids
print(".....finding new centroids")
For i = 0 To numGroups - 1
oldCentroids(i) = newCentroids(i)
For j = 0 To goupings(i).Count - 1
pt = inputpts(goupings(i)(j))
X = X + pt.X
Y = Y + pt.Y
Z = Z + pt.Z
Next
X = X / (j + 1)
Y = Y / (j + 1)
Z = Z / (j + 1)
newCentroid.X = X
newCentroid.Y = Y
newCentroid.Z = Z
newCentroids(i) = newCentroid
print("new centroid for group " & i & " is " & newCentroids(i).ToString)
goupings(i).Clear
dist = newCentroid.DistanceTo(oldCentroids(i))
'print("dist = " & dist)
If dist > D Then
print("need to do more work")
isStillMoving = True
End If
Next
'create new groupings
print(".....creating new groupings")
For j = 0 To inputpts.Count - 1
pt = inputpts(j)
minDist = pt.DistanceTo(newCentroids(0))
For i = 0 To numGroups - 1
dist = pt.DistanceTo(newCentroids(i))
If minDist >= dist Then
groupNum = i
minDist = dist
'print(minDist)
End If
Next
'Print("Adding index value " & j & " to group " & groupNum & ".")
goupings(groupNum).Add(j)
If isStillMoving = False Then
groupingsTree.Add(pt, pathList(groupNum))
End If
Next
If isStillMoving = False Then
print("***************all groups setled exiting loop********************")
print("***************total loop count is " & k & "************************")
End If
'a hard limit on the number of loops to execute....
If k > 1000 Then
isStillMoving = False
End If
k = k + 1
Loop
goupings.Clear
newCentroids.Clear
oldCentroids.Clear
pathList.Clear
Next
G = groupingsTree
End Sub
'<Custom additional code>
'function taken from http://www.freevbcode.com/ShowCode.Asp?ID=4451 (and slightly modified)
Public Function RandomNumber(ByVal r As Random, ByVal MaxNumber As Integer, Optional ByVal MinNumber As Integer = 0) As Integer
'if passed incorrect arguments, swap them
'can also throw exception or return 0
If MinNumber > MaxNumber Then
Dim t As Integer = MinNumber
MinNumber = MaxNumber
MaxNumber = t
End If
Return r.Next(MinNumber, MaxNumber)
End Function
... So any thoughts?
…
using some simple vector math and RhinoCommon (basically, to check if a point is above a plane: Calculate the dotproduct between the plane Z-Axis and a vector from the plane origin to the point. If this is negative you're below, else above the plane).2) The cost of inputting/outputting large lists of objects can be very expensive (see this thread for tips). Best way to get around this is to encapsulate the logic inside your GHPython components as much as needed and not input/output more than you have to. Alternatively you can wrap the data from one component to the next in something which won't expose the data to GH. A third option is to use the PointCloud class or even the Volvox pointcloud. Both should severely speed this up.3) Of course multithread it once it you find the best solution for you (if it's still too slow ;)Attached a file exemplifying some of this..Edit: Didn't see Daniel's answer, using Plane.ValueAt(pt) method will be even faster than calculating it yourself via Python.…
h a surface reference that doesn’t exist anymore. Could you give me any advice to get the same result with the actual version or a solution to download the component.
Of course with the new component there is a big distortion.
attached the pictures to help understanding
Many thanks in advance for your help.
Michèle
1 the tutorial reference
2 the component you use
3 the current component in PT for grasshopper
…
enting a single solid (a tetrahedron) into multiple locations around it.
The only problem is that I now want to truncate the tetrahedra such that the level of truncation gradually varies along the sphere from left to right... I've managed to use the remapping function to specify each distance from a pt to the centroid of each solid.
My question now is whether there is a way to orient a single trimming plane in exactly the same positions as all the tetrahedra (I've managed this also) but also force each plane to trim only its corresponding tetrahedron rather than any adjacent ones. ie. for example to link plane 1 to tetrahedron 1 only, plane 2 to tetrahedron 2 only etc.
Would greatly appreciate any help on this matter :).
Pls note that in the image the truncated tetrahedra were trimmed from the original solid and NOT after orientation around the sphere.
…
r spatial studies farther down the road, but I digress; on to my Grasshopper script:
I've built a Grasshopper script that will display a point field for a given topography map (curves extracted from contour lines). The idea here is to display higher levels of density where the highest slopes are within a given topo map.
The file works, but I'm wondering if there is a simpler way of going about this, since my file contains so much redundant info (open the cluster "Pt:50" to see what I mean). My Grasshopper Kung-Fu skills aren't anywhere near expert yet, so I defer to the experts out there for a simpler solution. Here's my breakdown:
1. Start at curve start point, and find closest point within the group of curves.
2. Get distance to that closest point, and find second point along said curve at that distance.
3. Repeat process along curve starting at each new point at each new process.
Thanks in advance for any suggestions/comments!
Cheers,
cb…
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.…