ure here: http://www.openfoam.com/download/install-binary-windows.php
This I found by following the instructions here:
https://github.com/ladybug-tools/butterfly/wiki/Getting-started-with-butterfly-in-grasshopper
HOWEVER:
At home here on my newer, faster Windows 10 machine - no such luck. This is becoming quite frustrating as I feel I am failing some obscure intelligence test.
I have attached what I suspect is the likely problem identifier - not that it has helped me identify the fix. What I believe is the salient message is appears in the OF_Env_Create Powershell Window (Running as Administrator) , which is step 3 on the Windows 10 special instructions found here:
https://github.com/ladybug-tools/butterfly/wiki/Windows-10-Installation-Notes
The message (in red as can be seen in the attached picture) states:
Set-ExecutionPolicy : Windows PowerShell updated your execution policy successfully, but the setting is overridden by a policy defined at a more specific scope. Due to the override, your shell will retain its current effective execution policy of "Unrestricted". Type "Get-ExecutionPolicy -List" to view your execution policy settings. For more information , please see "Get-Help Set-ExecutionPolicy." At C:\Users\Michael\AppData\Local\Temp\Quest Software\PowerGUI\18d7ce54-562c-4f2b-b985-3c24b83cae50\of_create_container.ps1:1 char:20 + Set-ExecutionPolicy <<<< bypass + CategoryInfo : PermissionDenied: (:) [Set-ExecutionPolicy], SecurityException + FullyQualifiedErrorId : ExecutionPolicyOverride,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand
M…
mainly grasshopper. (If it were just Rhino it perhaps would have been easier for me). I've been working on it for a while now and I unfortunately am a bit stuck.
Below are some of my concerns:
1) I know the theory of what I'm suppose to do which is to have the rectangular base and scale it then array it up. However I noticed that the thickness of the each lath and support varies. There are 25 laths in all and from the structure diagram I have gathered that there are basically 4 groups of the same thickness from the base going up its the first 9, then 7, then 5 and then the top 3. I just can't seem to figure out how to vary the thickness. I would assume the attached lath and support definition diagrams would help but unfortunately I don't know how to read it. I've tried some formulas which didn't exactly work but I still included them in the file.
2) I also need to figure out how to create the hole in the structure which is the entrance. I know in Rhino I could just Boolean it out but is there a way to do it in grasshopper?
3) I also need helping figuring out the definition for putting the vertical supports in between each row. The diagram says something fancy about "Testing acceptable constraints in flexion and in shear, we find an acceptable eccentricity that varies with each row." Ok maybe it wasn't so fancy but I have no clue how to do that with grasshopper!
4) My lecturer wants a Structure Simulation which I'm going to assume is what number 3 is all about?
I've attached my progress so far and would appreciate any help possible. I'd prefer if anyone could guide me using basic things (without any fancy plug-ins unless it's absolutely necessary).
However, any help is appreciated! Thank you so much in advance.
Cheers!
Jo
…
gh, when I bake, the geometry suddenly exists in rhino.
Second, I can seem to figure out how to set default numeric values in the component.
Protected Overrides Sub RegisterInputParams(pManager As Grasshopper.Kernel.GH_Component.GH_InputParamManager)
pManager.AddPointParameter("Focal Point", "FP", "The focal point", GH_ParamAccess.item)
pManager.AddNumberParameter("Focal Point Horiz Dist", "D", "Focal point distance from performance boundary", GH_ParamAccess.item)
pManager.AddNumberParameter("Focal Point Height", "H", "Focal point height above performance boundary", GH_ParamAccess.item)
pManager.AddPointParameter("First Row Start Point", "FR", "Location of first row in tiered seating", GH_ParamAccess.item)
pManager.AddNumberParameter("First Row Horiz Dist", "FRD", "First row distance from performance boundary", GH_ParamAccess.item)
pManager.AddNumberParameter("First Row Height", "FRH", "First row height above performance boundary", GH_ParamAccess.item)
pManager.AddNumberParameter("C Value", "C", "C value", GH_ParamAccess.item)
pManager.AddNumberParameter("Row Width", "RW", "Row width", GH_ParamAccess.item)
pManager.AddIntegerParameter("Number of Rows", "RN", "Number of Rows", GH_ParamAccess.item)
pManager.AddIntegerParameter("Construction Tolerance", "CT", "Construction Tolerance: 1=1in, 2=1/2in, 4=1/4in, 8=1/8in", GH_ParamAccess.item)
pManager.AddNumberParameter("Max Riser Height", "MR", "Maximum riser height allowed", GH_ParamAccess.item)
pManager.AddGeometryParameter("Spectator", "S", "Seated/Standing spectator", GH_ParamAccess.item)
End Sub
Protected Overrides Sub RegisterOutputParams(pManager As Grasshopper.Kernel.GH_Component.GH_OutputParamManager)
pManager.AddLineParameter("Sightlines", "SL", "Sightlines", GH_ParamAccess.list)
pManager.AddLineParameter("C Value", "CL", "Line represents C value height", GH_ParamAccess.list)
pManager.AddLineParameter("Ground Line", "GL", "Ground Line", GH_ParamAccess.list)
pManager.AddLineParameter("Tier tread", "TR", "Line represents tier treads", GH_ParamAccess.list)
pManager.AddLineParameter("Risers", "RI", "Line represents risers", GH_ParamAccess.list)
pManager.AddGeometryParameter("Spectators", "SP", "Seated Standing Spectators", GH_ParamAccess.list)
End Sub
Protected Overrides Sub SolveInstance(DA As IGH_DataAccess)
Dim newLine As New List(Of Line)
Dim newCValue As New List(Of Line)
Dim rowWidthLineList As New List(Of Line)
Dim floorLineList As New List(Of Line)
Dim riserLineList As New List(Of Line)
Dim leghtList As New List(Of String)
Dim newSeated As New List(Of GeometryBase)
Dim inputPoint As Point3d
If (Not DA.GetData(0, inputPoint)) Then Return
Dim viewPointY As Double
If (Not DA.GetData(1, viewPointY)) Then Return
Dim viewPointZ As Double
If (Not DA.GetData(2, viewPointZ)) Then Return
Dim firstRowPoint As Point3d
If (Not DA.GetData(3, firstRowPoint)) Then Return
Dim firstRowY As Double
If (Not DA.GetData(4, firstRowY)) Then Return
Dim firstRowZ As Double
If (Not DA.GetData(5, firstRowZ)) Then Return
Dim cValue As Double
If (Not DA.GetData(6, cValue)) Then Return
Dim rowWidth As Double
If (Not DA.GetData(7, rowWidth)) Then Return
Dim numberOfRows As Integer
If (Not DA.GetData(8, numberOfRows)) Then Return
Dim M As Integer
If (Not DA.GetData(9, M)) Then Return
Dim maxHeight As Double
If (Not DA.GetData(10, maxHeight)) Then Return
Dim seated As GeometryBase
If (Not DA.GetData(11, seated)) Then Return
Call addNewRow(newLine, newCValue, inputPoint, viewPointY, viewPointZ, firstRowPoint, firstRowY, firstRowZ, cValue, numberOfRows, rowWidth, rowWidthLineList, floorLineList, riserLineList, M, maxHeight, seated, newSeated)
DA.SetDataList(0, newLine)
DA.SetDataList(1, newCValue)
DA.SetDataList(2, rowWidthLineList)
DA.SetDataList(3, floorLineList)
DA.SetDataList(4, riserLineList)
DA.SetDataList(5, newSeated)
End Sub
Public Sub addNewRow(---constructor----)
---additional code----
end Sub…
EP output variables are to calculate outdoorAirEnergy?
Thank you very much!
Output variables on the Read EP Results component:[1] totalThermalEnergy=cooling+heating[2] thermalEnergyBalance=cooling (-)andheating (+)[3] cooling= Zone Ideal Loads Supply Air Total Cooling Energy [J](Hourly)=Zone Ideal Loads Supply Air Sensible Cooling Energy [J](Hourly)+ Zone Ideal Loads Supply Air Latent Cooling Energy [J](Hourly)[4] heating= Zone Ideal Loads Supply Air Total Heating Energy [J](Hourly)= Zone Ideal Loads Supply Air Sensible Heating Energy [J](Hourly) + Zone Ideal Loads Supply Air Latent Heating Energy [J](Hourly)[5] electricLight=Zone Lights Electric Energy [J](Hourly)[6] electricEquip=Electric Equipment Electric Energy [J](Hourly)[7] peopleGains=Zone People Total Heating Energy [J](Hourly)[8] totalSolarGain=Zone Windows Total Transmitted Solar Radiation Energy[9] infiltrationEnergy=Zone Infiltration Total Heat Gain Energy (+)andZone Infiltration Total Heat Loss Energy (-)[10] outdoorAirEnergy= ???[11] natVentEnergy=Zone Ventilation Total Heat Gain Energy (+)andZone Ventilation Total Heat Loss Energy (-)[12] operativeTemperature=Zone Operative Temperature[13] airTemperature=Zone Mean Air Temperature[14] meanRadTemperature=Zone Mean Radiant Temperature[15] relativeHumidity=Zone Air Relative Humidity[16] airFlowVolume=[infiltrationFlow] Zone Infiltration Standard Density Volume Flow Rate+[natVentFlow] Zone Ventilation Standard Density Volume Flow Rate+[mechSysAirFlow] Zone Mechanical Ventilation Standard Density Volume Flow Rate+[earthTubeFlow] Earth Tube Air Flow Volume[17] airHeatGainRate=[surfaceAirGain] Zone Air Heat Balance Surface Convection Rate+[systemAirGain] Zone Air Heat Balance System Air Transfer Rate
Output variables on the Read EP Surface Results component:[1] surfaceIndoorTemp= Surface Inside Face Temperature[2] surfaceOutdoorTemp=Surface Outside Face Temperature[3] surfaceEnergyFlow=[opaqueEnergyFlow] Surface Average Face Conduction Heat Transfer Energy+[glazEnergyFlow] Surface Window Heat Gain Energy[4] opaqueEnergyFlow =Surface Average Face Conduction Heat Transfer Energy[5] glazEnergyFlow= Surface Window Heat Gain Energy[6] windowTotalSolarEnergy=Surface Window Transmitted Solar Radiation Energy[7] windowBeamEnergy=Surface Window Transmitted Beam Solar Radiation Energy[8] windowDiffEnergy=Surface Window Transmitted Diffuse Solar Radiation Energy[9] windowTransmissivity=Surface Window System Solar Transmittance…
ocessed once Grasshopper is done with whatever it's doing now.
3) Grasshopper tells the Slider object that the mouse moved and the slider works out the new value as implied by the new cursor position.
4) The slider then expires itself and its dependencies ([VB Step 1] in this case, but there can be any number of dependent objects).
5) When [VB Step 1] is expired by the slider, it will in turn expire its dependencies (VB Step 2), and so on, recursively until all indirect dependencies of the slider have been expired.
6) When the expiration shockwave has subsided, runtime control is returned to the slider object, which tells the parent document that stuff has changed and that a new solution is much sought after.
7) The Document class then iterates over all its objects (they are stored in View order, not from left to right), solving each one in turn. (Assuming the object needs solving, but since in your example ALL objects will be expired by a slider change, I shall assume that here).
8) It's hard to tell which object will get triggered first. You'd have to superimpose them in order to see which one is visually the bottom-most object, but let's assume for purposes of completeness that it's the [VB Step 1] object which is solved first.
9) [VB Step 1] is triggered by the document, which causes it to collect all the input data.
10) The input parameter [x] is asked to collect all its data, which in turn will trigger the Slider to solve itself (it got expired in step 4 remember?). This is not a tricky operation, it merely copies the slider value into the slider data structure and shouts "DONE!".
11) [x] then collects the number, stores it into its own data structure and returns priority to the [VB Step 1] object.
12) [VB Step 1] now has sufficient data to get started, so it will trigger the script inside of it. When the script completes, the component is all ready and it will tell the parent document it can move on to the next object (the iteration loop from step 7).
13) Let us assume that the slider object is next on the list, but since it has already been solved (it was solved because [VB Step 1] needed the value) it can be skipped right away, which leaves us with the last object in the document which is still unsolved.
14) [VB Step 2] will be triggered by the document in very much the same way as [VB Step 1] was triggered in step 9. It will also start by collecting all input data.
15) Since all the input data for [VB Step 2] is either defined locally or provided by an object which has already been solved, this process is now swift and simple.
16) Upon collecting all data and running the user script, the component will surrender priority and the document becomes active again.
17) The document triggers a redraw of the Grasshopper Canvas and the Rhino viewports and then surrenders priority again and so on and so forth all the way up the hierarchy until Grasshopper becomes idle again.
[end boring]
Pretty involved for a small 3-component setup, but there you have it.
To answer somewhat more directly your questions:
- The order in which objects are solved is the same as the order in which they are drawn. This is only the case at present, this behaviour may change in the future.
- Adding a delay will not solve anything, since the execution of all components is serial, not parallel. Adding a delay simply means putting everything on hold for N milliseconds.
- [VB Step 1] MUST be solved prior to [VB Step 2] because otherwise there'd be no data to travel from [GO] to [Activate]. The only tricky part here is that sometimes [VB Step 1] will be solved as part of the process of [VB Step 2], while at other times it may be solved purely on its own merits. This should not make a difference to you as it does not affect the order in which your scripts are called.
--
The Man from Scene 24…
Added by David Rutten at 4:43pm on December 10, 2009
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!!!!!…
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
Thanks and Happy new year!!!!!…
and I here is what I have to share:
Thanks! Thank you for being awesome! When I released Ladybug two years ago I could never imagine how this project will take over my life! It has been such an invaluable experience for me so far and it wasn’t possible without you - so thank you so much.
What’s next? Recently I get this question more and more and here is my fairly long answer! Chris is pushing the boundaries with comfort tools. Chien Si is working on HVAC systems integration. Chris, Anton and Alejandra will figure out how to effectively get natural ventilation to be modeled. Patrick, Sandeep, Michal and Boris are working on their developments. I’m working on getting 3 Phase method integrated, and Butterfly will be out at some point, but... they are not going to be what makes the next step. The next step is up to you. It is what you will do with the development. So go ahead and let us know what’s next!
If you can help someone on the group please do! Doing so you are not only helping another person (and potentially yourself) but also the developers. The more you can help each other here the more we will have time for development and documentation.
Best place to send your questions is this group. If you are using the latest version from github then you may want to sent it to github. Please consider emails as the last option. Go back to number 3 again! Thanks.
Don’t be nice to us! Well, I mean don’t just be nice to us. I love your nice comments like anybody else and please keep them coming ;) but what we also need next to nice comments is your critiques, wishes and insight. I feel that recently we are getting less wishes and critiques than what it used to be. You can post them here in the group or on github and either way we will know about it. Thank you to all of you who has already done this.
Thanks again! Before I let you go I want to specially thank all of you who contributed to the project by your development, thoughts and support. You are great and I can’t thank you enough.
David Weinberger in his book “Too Big to Know” says: “When an expert network is functioning as its best, the smartest person in the room is the room itself.” Reading some of the discussions on the group gives me the feeling of staying inside a smart room. Thank you and let’s keep the room growing!
Cheers,
Mostapha
PS: To avoid sending another post, I just post the updates about the two upcoming workshops here:
I will lead a workshop in LA next Friday (Feb. 6) and there is still few seats left. If you want to learn more about energy and daylighting simulation with Honeybee here is your chance. Here is more information who to register: (http://www.facadesplus.com/technology-workshops/).
Chris will lead a 3 days intense and comprehensive Ladybug and Honeybee workshop in Mexico City this March. You have probably watched Chris’s tutorials and already know what you can expect from a workshop with Chris so I don’t have to speak for that! I would take this workshop if I was around that area. If you are around Mexico City or know a friend who might be interested please let them know. Here is more information about the workshop: (https://www.facebook.com/LadyBugforGrasshopper/photos/a.442320969114095.107084.413910668621792/919318878080966).
…
, but at the lowest level computers only manipulate ones-and-zeros according to exact and unambiguous rules. As a result of this it is actually impossible to generate true random numbers using a computer. Computers use algorithms that create sequences of pseudo random numbers, numbers that appear to be random, but in fact are created by the application of a deterministic algorithm.
One of the major benefits of pseudo random numbers over actual random numbers is that it's easy to reproduce a sequence of numbers. If you generate the first 50 numbers in the pseudo-random sequence with seed=5 they will be exactly the same as when you did it last week. If you want different random numbers, you have to use a different seed. In Grasshopper I thought it important that the same random numbers are always generated, as that minimizes the 'surprise'. However, since the default numbers might not be to your liking, you can always play around with the seed value until you find a pseudo random sequence that suits you.
If you generate 8 random numbers between 1 and 10, you might get a sequence like this:
{5, 8, 2, 4, 2, 7, 3, 10}
The pseudo random number generator guarantees that the spread of the numbers in the sequence is equal everywhere, but only when you generate an infinite amount of numbers. Since every sequence you care to generate in one human lifetime will not be infinite, there will always be some 'clumping' of values. A small stretch along the number line that is somewhat more densely populated by random numbers than the adjacent stretch.
There is also absolutely no guarantee that you won't get the same number more than once. Obviously this is impossible if you were to generate 50 values between 1 and 10 (there are only 10 possible unique numbers), but even if you generate only 2 values between 1 and 10 you might still get the same number twice.
Indeed in my example above the value 2 occurs twice, whereas the value 1 doesn't occur at all. If you want a range of numbers without overlaps, it's better to not use the Random component, but instead generate all the numbers using a Range or Series component and then Jitter the list, thus randomizing the order of the values, but not the values themselves.
--
David Rutten
david@mcneel.com
Poprad, Slovakia…