shopper later uses but for the life of me cannot see the problem.
Component
using System;using System.Collections.Generic;using Grasshopper.Kernel;using Rhino.Geometry;namespace Load_Take_Down_Tool.Components{ // This componenet takes care of creating ordered lists to pass to the column component // Searches for points within tributary areas public class Column_Organiser : GH_Component { /// <summary> /// Initializes a new instance of the Column_Organiser class. /// </summary> public Column_Organiser() : base("Column Organiser", "CO", "Orders lists of points and areas", "Load Take Down Tool", "Pre-Processing") { } /// <summary> /// Registers all the input parameters for this component. /// </summary> protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddPointParameter("Column", "C", "Unsorted points at location of column (required)", GH_ParamAccess.list); pManager.AddBrepParameter("Tributary Area", "T", "Unsorted tributary areas for column (required)", GH_ParamAccess.list); } /// <summary> /// Registers all the output parameters for this component. /// </summary> protected override void RegisterOutputParams(GH_Component.GH_OutputParamManager pManager) { pManager.AddPointParameter("Column", "C", "Sorted points at location of column", GH_ParamAccess.list); pManager.AddBrepParameter("Tributary Area", "T", "Sorted tributary areas for column", GH_ParamAccess.list); pManager.AddPointParameter("Failing Points", "FP", "Points that are not within any tributary area", GH_ParamAccess.list); } /// <summary> /// This is the method that actually does the work. /// </summary> /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param> protected override void SolveInstance(IGH_DataAccess DA) { //Declare lists to hold data //uo = un-ordered //o = ordered List<Point3d> uocolumnpoints = new List<Point3d>(); List<Brep> uotribareas = new List<Brep>(); List<Point3d> failpoints = new List<Point3d>(); //Get data from inputs if (!DA.GetDataList(0, uocolumnpoints)) return; if (!DA.GetDataList(1, uotribareas)) return; //Error if number of points and areas are not equal if (uocolumnpoints.Count != uotribareas.Count) { AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, "Unequal number of columns and tributary areas"); return; } List<Point3d> ocolumnpoints = new List<Point3d>(); List<Curve> ocurves = new List<Curve>(); List<Brep> otribareas = new List<Brep>(); double m_tol = 0.001; string unitSystem = Rhino.RhinoDoc.ActiveDoc.GetUnitSystemName(true, true, true, true); if (unitSystem == "m") m_tol = 0.000001; if (unitSystem == "mm") m_tol = 0.011; PointsInsideCurves pic = new PointsInsideCurves(); try { pic = new PointsInsideCurves(uocolumnpoints, uotribareas, m_tol); } catch (Exception ex) { AddRuntimeMessage(GH_RuntimeMessageLevel.Remark, ex.Message); } failpoints = pic.FailedPoints; ocurves = pic.OrganisedCurves; if (failpoints.Count > 0) AddRuntimeMessage(GH_RuntimeMessageLevel.Remark, "Some point(s) did not lie within a tributary area, were on the boundary/tolerance limit of of a tributary area, or multiple points were within the same tributary area. See output FP for the points that have failed"); foreach (Curve c in ocurves) { Brep b = Brep.TryConvertBrep(c); otribareas.Add(b); } //Pass data to outputs DA.SetDataList(0, ocolumnpoints); DA.SetDataList(1, otribareas); DA.SetDataList(2, failpoints); } //Grasshopper icon for component protected override System.Drawing.Bitmap Icon { get { return Properties.Resources.ColumnOrganiser; } } /// <summary> /// Gets the unique ID for this component. Do not change this ID after release. /// </summary> public override Guid ComponentGuid { get { return new Guid("{3259e465-5400-48e3-907b-fcb7455b12aa}"); } } }}
Helper class
using System;using System.Collections.Generic;using System.Linq;using System.Text;using Rhino.Geometry;namespace Load_Take_Down_Tool{ class PointsInsideCurves { private List<Point3d> Points { get; set; } private List<Curve> ClosedCurves { get; set; } private double Tolerance { get; set; } public List<Point3d> FailedPoints { get; set; } public List<Curve> OrganisedCurves { get; set; } public PointsInsideCurves() { } public PointsInsideCurves(List<Point3d> Points, List<Curve> ClosedCurves, double Tolerance) { this.Points = Points; this.ClosedCurves = ClosedCurves; this.Tolerance = Tolerance; Evaluate(); } public PointsInsideCurves(List<Point3d> Points, List<Brep> ClosedBreps, double Tolerance) { this.Points = Points; this.Tolerance = Tolerance; List<Curve> Curves = new List<Curve>(); foreach (Brep b in ClosedBreps) { Curve[] c = b.DuplicateEdgeCurves(); c = Curve.JoinCurves(c, Tolerance); Curves.Add(c[0]); } this.ClosedCurves = Curves; Evaluate(); } private void Evaluate() { //Sorts in order of points //Naive implementation //Can update to KD tree if necessary List<Curve> OrderedCurves = new List<Curve>(); List<Point3d> fPoints = new List<Point3d>(); //Have to duplicate the input list of curves to modify as we go List<Curve> CCDup = this.ClosedCurves; foreach (Point3d Point in this.Points) { //Backwards loop to allow removal bool assigned = false; for (int i = CCDup.Count - 1; i >= 0; i--) { if (CCDup[i].IsClosed == false) { throw new Exception("Curve is not closed"); } if (CCDup[i].Contains(Point) == PointContainment.Inside) { OrderedCurves.Add(CCDup[i]); CCDup.RemoveAt(i); assigned = true; break; } } //If point not within any of the given breps put null in the list if (assigned == false) { OrderedCurves.Add(null); fPoints.Add(Point); } } this.FailedPoints = fPoints; this.OrganisedCurves = OrderedCurves; } }}
…
Added by Hugh Groves at 3:43am on September 30, 2014
looked at autodesk simulation cfd 2015 and was optimistic because it had an export plugin from revit, which i use anyway for material takeoffs and etc, but found that it did not take solar radiation into account. This was a downer because I have heard that solar radiation could effect indoor airflow - convection - as much as 50 percent at a time.
Then I searched again and found that Hyperworks, a software by altair technology can be coupled with a radiation software. So I went through the trouble of obtaining an educational license of Hyperworks. However, though some email exchange I have found that the coupling is a one-way. The radiation analysis software was used, I think, for understanding the solar loading for a SOM project called church of light.
The support guy said : "Unfortunately our coupling with Hyperworks is really a one way coupling. We can accept H coefficients from their software in RadTherm, but they will not read in our wall temps. That said, it still can be a useful coupling in the sense that you can run the analysis in Hyperworks, send H coefficients to RadTherm, and run the analysis to better understand radiation and conduction. Most importantly, that analysis can be done for longer transient analysis, but will require much less compute time and resources."
Not only did I not understand what he means by the H coefficients, my wanting to get a CFD understanding coupled with solar radiation was again, unsatisfied. In the mean while I had to finish a presentation so I haven't had the time to try to get some result on the natural ventilation. I would probably need to look into how their solutions work before I can understand if their software would "do the job"
Thank you for letting me know about your work on this. I downloaded the Honeybee_Set EP Natural Ventilation component and made sure that it is allowed, but it does not show up in grasshopper.
You pointed out that "The component (and the corresponding equation) is mostly meant for cases where you have zones with windows that are NOT connected by an air wall (or a larger airflow network)." I wondered if you are suggesting it would be a code violation for zones to be connected by an air wall for fire safety reasons. It would be a violation I guess, like not putting an fiber insulation or some kind of smoke stop between Spandrel panels and the edge of a floor plate would be a code violation for a typical office building.
There is a project by kevin daly architects where you can see a section drawing with what seems like a cfd analysis (could be an illustration)
it was my initial visualization/simulation goals were for a facade design I am working on
1) an average air velocity across a zone at noon, for example, if a passive design strategy like this was used. for this I am guessing cfd is not entirely necessary. probably means that it could be used earlier in a design process, too. This would be more about user comfort.
2) at a later phase, like in detailing facade components, if airflow is indeed as expected for a zone that is connected to an air wall / chimney like feature (and to see if there is a proper mixing of air)
3) and a projection of energy savings, of course.
After seeing a video of simulation cfd I was optimistic, but like I said sim cfd does not take account of solar loading. I think I would probably go ahead start with one zone with sim cfd first, try three zones stacked on top of each other, then try hyperworks and try to factor in solar radiation.
For analyzing multiple zones on different levels, being able to add a chimney would be especially useful, I think. Having said that, I don't have a lot of experience of using honeybee except for the daylight component so it would take some time for me to understand the components.
I hope some of the information here is useful for you. after all, both sim cfd and hyperworks are commercial softwares and somewhat different than the e plus project you are working on, I guess but still trying to address a similar problem.
so.. in cased you missed it I was asking I downloaded the Honeybee_Set EP Natural Ventilation component and made sure that it is allowed and placed in the user object foler, but it does not show up in grasshopper. what could be the reason?
…
surfaces resulting from 'SrfSplit' so they could be sorted to discard the largest one (in cases where a Voronoi curve crossed a surface seam, there are three resulting surfaces, not just two) and
The centroid for each Voronoi curve/surface required for scaling the holes.
So I created a cluster called 'pLen' which returns the perimeter length of a surface (the sum of the lengths of its edges) to be used instead of surface area for sorting (#1). And used another cluster I have called 'PtCloudCntr' that returns the mathematical center of a point cloud (#2). Both of these clusters are extremely fast and worked fine together as a replacement for 'Area'.
But in the process, I discovered and fixed a couple things:
In those cases where Voronoi intersection curves cross a seam in the "Primary Surface", I joined the two pieces together before creating the hole - eliminating the seam from the results!
Somehow the optional 'Bounding Box' used by 'Voronoi³' component got lost (oops) so it was cutting off the results bounded by the random points instead of the "Primary Surface". Fixed that and found later that in some cases (the 'Revolve Srf' in this code), it works much better to double the size of the 'Bounding Box'. Since there is no penalty for this, speed or otherwise, the larger box is used for all surfaces.
The results are MUCH BETTER than before. Surfaces don't lose their edges, holes aren't corrupted by seams and the code runs in roughly 2/3rds the previous times (30 seconds instead of 45 seconds for 438 holes as in prior code). For 100 holes, it takes only six to eight seconds to change the "Primary Surface" and get a new holed surface.
This 'Revolve Srf' is substantially smaller in scale than the other surfaces and due to its apparent complexity(?), it starts to degrade in quality with "large holes", i.e., less than 100 holes:
…
Added by Joseph Oster at 2:14pm on December 22, 2015
bias towards higher-latitude climates where high humidity is less of a issue. The defaults do not include any humidity control, use a differential dry bulb air side economizer, and use the ASHRAE 62.2 ventilation specification, which uses a sum of ventilation/square meter + ventilation/person.
The unfortunate side of these default specs is that there is always some ventilation coming in (because of the ventilationPerArea), which often means that you're bringing in outdoor air in unoccupied hours that have a thermostat setback, minimal heat gains, and no need for cooling. Running the ventilation system without activating the cooling coil can mean that you are bringing in very humid outdoor air sometimes, particularly in evenings. As such, you may want to use only a ventilationPerPerson specification or use a ventilationSchedule to shut off the ventilation during these unoccupied hours (using the "Set EnergyPlus Loads" component or the "Set EnergyPlus Schedules" component respectively). This might mitigate your peak cooling at 9PM as well as your higher humidity in evenings, particularly if your space is not occupied then.
The differential dry bulb economizer might also introduce more outdoor air when it is humid outside, resulting in more "unrealistic" humidity values. As such, switching to a differential enthalpy economizer or removing the economizer altogether can avoid these cases of bringing in more humid outdoor air to cool the zone. You can do this with the "Set Ideal Air Loads Parameters" component.
If both these methods don't give you humidity values that you are happy with, you can always put in humidity control by setting a maxHumidity on the "Set EnergyPlus Zone Thresholds" component.
To be fair to the ideal air system, you would have to consider these ventilation/economizer/humidity control specifications for almost any air-based system that you are designing and I do not see these initially "unrealistic" humidity levels as a limitation of the ideal air system as much as a limitation of typical high-latitude HVAC controls. This said, I will fully admit the limitations of the ideal air system in terms of not giving electricity/fuel values (just loads) and the fact that you don't have a single multi-zone boiler/chiller supply air temperature as you would for a centralized HVAC system.
To get to your questions:
1) The danger of looking at energy balance variables for only a single hour is that you might not get them summing to something close to 0, since you are running a transient simulation. Over a day, you will be more likely to get values summing to 0 and (because of your building's thermal lag) you will also probably get a better representation of the cause of the peak cooling.
2) There was a bug in the code and you are not supposed to get the HVAC outputs with the "Read EP Result" component. You are supposed to use the "Read EP HVAC Result" component like so:
I have fixed this in the attached GH file. In case you were wondering what those units are, they are Joules. All energy results output from EP are in joules and I convert them to kWh inside the HB components since this is what we are typically using in the building industry.
-Chris…
ter the operation, i then mirror and join after operation is done. (bypasse the mirror cut mesh).
It seem that it does the work for now, but im not sure how this might impact me later on down the track.
Here the Results,
---------
I also tried to use the MirrorCutMesh together with the MirrorCutColour components which is not quite successful as the previous one, as it remap the whole mesh colour throughout the whole outcome. (i am wrong on how i interpolate the colour as it require to cull some colour that are cut)It does the mirroring Mapping colour but not from the Initial Geometry, comparing both image you will understand what i mean.
------
Here the grasshopper component i used and i also attached the files in case you want to give it a try.
As per the colour bridging condition, i think it is subjective, as it depend on the design. 1) one condition for this could be by using the colour from the original mesh colour to define the colour of the bridging element (The offset plane colour is apply to the bridge)2) Apply the same Mesh colour in along the bridge (Which might look ugly if their is a huge offset), for instance if it is red colour, it just translate the red colour across, it might be better to take the colour on the vertex of the mesh where it cut the plane to map onto the bridging component than averaging colour of the face
I hope this could be somehow helpful into developing the tool, as for myself i dont have much codding experience yet.
Regards,
Chris
-----FilesMeshColourTest.3dm
Colour%20Test%20Mirroring.gh
…
100)
Dim temPolyCrv As New PolylineCurve() ==> failed here.
temPolyCrv.SetStartPoint(p0)
temPolyCrv.SetPoint(1, p1)
2.
Dim pts As New List(Of Point3d)
Dim p0 As New Point3d(0, 0, 0)
Dim p1 As New Point3d(0, 0, 100)
Dim p2 As New Point3d(0, 100, 100)
pts.add(p0)
pts.add(p1)
pts.add(p2)
Dim temPolyCrv As New PolylineCurve(pts) ==> failed here.
And My visual Studio Error Message is,
" Dll Not Found Exception...."
But
RhinoCommon dll is in the referece list correctly
and I tried both "local copy" true, and false...
hm.....
…
o my python component returning null despite running fine in the standalone python editor (i.e.: not through grasshopper).The original python script is as follows:
import randomimport rhinoscriptsyntax as rsrs.EnableRedraw(False)
def placeBuildings(curve, distance): pts=rs.DivideCurveLength(curve,5) counter=0 for myPoint in pts: counter=counter+1 #get the parmeter f current positision param=rs.CurveClosestPoint(curve,myPoint) #get teh tangent of this parameter tangent=rs.CurveTangent(curve,param) #calculate the angle of the tangent angle=rs.Angle((0,0,0),tangent) randomNumber=random.uniform(1,5) heightOfBuilding=random.uniform(4,40) rect=rs.AddRectangle(rs.WorldXYPlane(),randomNumber,2) rs.MoveObject(rect,(0,randomNumber,0)) hull=rs.ExtrudeCurveStraight(rect,(0,0,0),(0,0,heightOfBuilding)) rs.RotateObject(hull,(0,0,0),angle[0]) rs.MoveObject(hull,myPoint) #if counter%4: #rs.AddCircle(myPoint,3) #selection of curve#curveParameter=rs.GetCurveObject("sel curve")#curve=curveParameter[0]
curves=rs.GetCurveObject("select streets",4)distance=rs.GetInteger("distance?",4)for curve in curves: placeBuildings(curve,distance) rs.ReverseCurve(curve) placeBuildings(curve,distance)
When placed in grasshopper it is the following:
import randomimport rhinoscriptsyntax as rs
#randomNumber=random.uniform(1,5)#rs.AddCircle((0,randomNumber,0), 2)
def placeBuildings(curve, distance): pts=rs.DivideCurveLength(curve, 5) counter=0 for myPoint in pts: counter=counter+1 #get the parmeter f current positision param=rs.CurveClosestPoint(curve,myPoint) #get teh tangent of this parameter tangent=rs.CurveTangent(curve,param) #calculate the angle of the tangent angle=rs.Angle((0,0,0),tangent) randomNumber=random.uniform(1,5) heightOfBuilding=random.uniform(4,40) rect=rs.AddRectangle(rs.WorldXYPlane(),randomNumber,2) rs.MoveObject(rect,(0,randomNumber,0)) hull=rs.ExtrudeCurveStraight(rect,(0,0,0),(0,0,heightOfBuilding)) rs.RotateObject(hull,(0,0,0),angle[0]) rs.MoveObject(hull,myPoint)
#selection of curve#curveParameter=rs.GetCurveObject("sel curve")#curve=curveParameter[0]
curves=xdistance=y
for curve in curves: placeBuildings(curve,distance) rs.ReverseCurve(curve) placeBuildings(curve,distance)
I am unsure why there is no error being returned yet I cannot achieve any result other than null. Maybe someone could look at the script and tell me what is going wrong? I'm hoping to solve this before next Thursday so I might be asking for too much.
Much Appreciated.-A…
Added by Adem O'Byrne at 11:45am on October 9, 2014
ion of both Ladybug and Honeybee. Notable among the new components are 51 new Honeybee components for setting up and running energy simulations and 15 new Ladybug components for running detailed comfort analyses. We are also happy to announce the start of comprehensive tutorial series on how to use the components and the first one on getting started with Ladybug can be found here:
https://www.youtube.com/playlist?list=PLruLh1AdY-Sj_XGz3kzHUoWmpWDXNep1O
A second one on how to use the new Ladybug comfort components can be found here:
https://www.youtube.com/playlist?list=PLruLh1AdY-Sho45_D4BV1HKcIz7oVmZ8v
Here is a short list highlighting some of the capabilities of this current Honeybee release:
1) Run EnergyPlus and OpenStudio Simulations - A couple of components to export your HBZones into IDF or OSM files and run energy simulations right from the grasshopper window! Also included are several components for adjusting the parameters of the simulations and requesting a wide range of possible outputs.
2) Assign EnergyPlus Constructions - A set of components that allow you to assign constructions from the OpenStudio library to your Honeybee objects. This also includes components for searching through the OpenStudio construction/material library and components to create your own constructions and materials.
3) Assign EnergyPlus Schedules and Loads - A set of components for assigning schedules and Loads from the Openstudio library to your Honeybee zones. This includes the ability to auto-assign these based on your program or to tweak individual values. You can even create your own schedules from a stream of 8760 values with the new “Create CSV Schedule” component. Lastly, there is a component for converting any E+ schedule to 8760 values, which you can then visualize with the standard Ladybug components
4) Assign HVAC Systems - A set of components for assigning some basic ASHRAE HVAC systems that can be run with the Export to OpenStudio component. You can even adjust the parameters of these systems right in Grasshopper.
Note: The ASHRAE systems are only available for OpenStudio and can’t be used with Honeybee’s EnergyPlus component. Also, only ideal air, VAV and PTHP systems are currently available but more will be on their way soon!
5) Import And Visualize EnergyPlus Results - A set of components to import numerical EnergyPlus simulation results back into grasshopper such that they can be visualized with any of the standard Ladybug components (ie. the 3D chart or Psychrometric chart). Importers are made for zone-level results as well as surface results and surfaces results can be easily separated based on surface type. This also means that E+ results can be analyzed with the new Ladybug comfort calculator components and used in shade or natural ventilation studies. Lastly, there are a set of components for coloring zone/surface geometry with EnergyPlus results and for coloring the shades around zones with shade desirability.
6) Increased Radiance and Daysim Capabilities - Several updates have also been made to the existing Radiance and Daysim components including parallel Radiance Image-based analysis.
7) Visualize HBObject Attributes - A few components have been added to assist with setting up honeybee objects and ensuing the the correct properties have been assigned. These include components to separate surfaces based on boundary condition and components to label surfaces and zones with virtually any of their EnergyPlus or Radiance attributes.
8) WIP Grizzly Bear gbxml Exporter - Lastly, the release includes an WIP version of the Grizzly Bear gbXML exporter, which will continue to be developed over the next few months.
And here’s a list of the new Ladybug capabilities:
1) Comfort Models - Three comfort models that have been translated to python for your use in GH: PMV, Adaptive, and Outdoor (UTCI). Each of these models has a “Comfort Calculator” component for which you can input parameters like temperature and wind speed to get out comfort metrics. These can be used in conjunction with EPW data or EnergyPlus results to calculate comfort for every hour of the year.
2) Ladybug Psychrometric Chart - A new interactive psychrometric chart that was made possible thanks to the releasing of the Berkely Center for the Built Environment Comfort Tool Code (https://github.com/CenterForTheBuiltEnvironment/comfort-tool). The new psychrometric chart allows you to move the comfort polygon around based on PMV comfort metrics, plot EPW or EnergyPlus results on the psych chart, and see how many hours are made comfortable in each case. The component also allows you to plot polygons representing passive building strategies (like internal heat gain or evaporative cooling), which will adjust dynamically with the comfort polygon and are based on the strategies included in Climate Consultant.
3) Solar Adjusted MRT and Outdoor Shade Evaluator - A component has been added to allow you to account for shortwave solar radiation in comfort studies by adjusting Mean Radiant Temperature. This adjusted MRT can then be factored into outdoor comfort studies and used with an new Ladybug Comfort Shade Benefit Evaluator to design outdoor shades and awnings.
4) Wind Speed - Two new components for visualizing wind profile curves and calculating wind speed at particular heights. These allow users to translate EPW wind speed from the meteorological station to the terrain type and height above ground for their site. They will also help inform the CFD simulations that will be coming in later releases.
5) Sky Color Visualizer - A component has been added that allows you to visualize a clear sky for any hour of the year in order to get a sense of the sky qualities and understand light conditions in periods before or after sunset.
Ready to Start?
Here is what you will need to do:
Download Honeybee and Ladybug from the same link here. Make sure that you remove any old version of Ladybug and Honeybee if you have one, as mentioned on the Ladybug group page.
You will also need to install RADIANCE, DAYSIM and ENERGYPLUS on your system. We already sent a video about how to get RADIANCE and Daysim installed (link). You can download EnergyPlus 8.1 for Windows from the DOE website (http://apps1.eere.energy.gov/buildings/energyplus/?utm_source=EnergyPlus&utm_medium=redirect&utm_campaign=EnergyPlus%2Bredirect%2B1).
“EnergyPlus is a whole building energy simulation program that engineers, architects, and researchers use to model energy and water use in buildings.”
“OpenStudio is a cross-platform (Windows, Mac, and Linux) collection of software tools to support whole building energy modeling using EnergyPlus and advanced daylight analysis using Radiance.”
Make sure that you install ENERGYPLUS in a folder with no spaces in the file path (e.g. “C:\Program Files” has a space between “Program” and “Files”). A good option for each is C:\EnergyPlusV8-1-0, which is usually the default locations when you run the downloaded installer.
New Example Files!
We have put together a large number of new updated example files and you should use these to get yourself started. You can download them from the link on the group page.
New Developers:
Since the last release, we have had several new members join the Ladybug + Honeybee developer team:
Chien Si Harriman - Chien Si has contributed a large amount of code and new components in the OpenStudio workflow including components to add ASHRAE HVAC systems into your energy models and adjust their parameters. He is also the author of the Grizzly Bear gbxml exporter and will be continuing work on this in the following months.
Trygve Wastvedt - Trygve has contributed a core set of functions that were used to make the new Ladybug Colored Sky Visualizer and have also helped sync the Ladybug Sunpath to give sun positions for the current year of 2014
Abraham Yezioro - Abraham has contributed an awesome new bioclimatic chart for comfort analyses, which, despite its presence in the WIP tab, is nearly complete!
Djordje Spasic - Djordje has contributed a number of core functions that were used to make the new Ladybug Wind Speed Calculator and Wind Profile Visualizer components and will be assisting with workflows to process CFD results in the future. He also has some more outdoor comfort metrics in the works.
Andrew Heumann - Andrew contributed an endlessly useful list item selector, which can adjust based on the input list, and has multiple applications throughout Ladybug and Honeybee. One of the best is for selecting zone-level programs after selecting an overall building program.
Alex Jacobson - Alex also assisted with the coding of the wind speed components.
And, as always, a special thanks goes to all of our awesome users who tested the new components through their several iterations. Special thanks goes to Daniel, Michal, Francisco, and Agus for their continuous support. Thanks again for all the support, great suggestions and comments. We really cannot thank you enough.
Enjoy!,
Ladybug + Honeybee Development Team
PS: If you want to be updated about the news about Ladybug and Honeybee like Ladybug’s Facebook page (https://www.facebook.com/LadyBugforGrasshopper) or follow ladybug’s twitter account (@ladybug_tool).
…
gap as for a 20 meter gap, it's not a good argument.
I fully concede that not every single thing may be backed up by logic. There are simply too many design decisions to make and not enough time to make them rigorously. And I do believe there is place for human intuition and art in architecture, but I also think that artistic (or intuitive, or emotional) considerations should clearly be labelled as such.
When Le Corbusier designed the urban layout of the city of Chandigarh he used his intuition to distribute the buildings and clusters. His intuition however was grounded in European climes and it failed him in India. On hot days it becomes almost impossible to walk the distance between them. Would Chandigarh have been a better place if the maximum distance was defined by the largest walkable distance on the hottest day of the year instead of the unjustifiable intuition of the designer? I suspect it would.
Furthermore, I believe that architects - student and professionals alike - regularly make formal decisions according to their aesthetic judgement. To suggest that students aren't qualified to make a design decision during their studies because they think it's formally successful seems exceedingly stingy;
There are plenty of rational decisions which are made by tacit processes. People can become very good at mimicking rational behaviour using intuition. And -as I said- if you are an architect with a distinguished career; if you've already proven yourself to be capable of good design then there comes a point where your intuitions can be trusted (to an extend).
But students whose every design has always been virtual, who have not been able to evaluate their decisions by a follow-up study, I don't see how anybody can trust their instincts. Instincts aren't just sitting in someone's brain, they are cultivated by relentless exercise and trial-and-error. Until you actually build something there is no error, only trial, and virtual trial at that.
I find architects' attempts to justify what are obviously decisions based on formal taste using other means often taking the same form of obfuscation that makes architects appear to be intellectual charlatans to specialists in other fields.
I fully agree here. If there are non-communicable aspects to a design, just say that. There's no shame in it as long as you're honest about it and have considered -however briefly- the consequences in case you're wrong.
I'm by no means advocating that all architects must master every detail in their work. Rather, that architects have at least a generalist's working knowledge of materials and construction systems. Floors don't levitate, and windows require depth; rules of thumb count as vital knowledge.
I think we're on the same page here. If you want to make a physical building, then there's more to it than pure design. Engineering comes into play. I don't mean to imply that engineering doesn't require creativity or even artistic intellect, but it is a different kind of problem-solving.
I fully agree with your fourth point. I just wasn't sure what performance-driven meant.
--
David Rutten
david@mcneel.com
Tirol, Austria…
Added by David Rutten at 4:19pm on August 14, 2013
mponent that calculates view factors from a point or plane to a set of surfaces. The component uses a ray-tracing method that increases with accuracy as you increase the viewResolution (I recommend using a value of 2 to ensure that your view factor error is below 1%). Because of the ray-tracing method, the component should be able to handle any surface geometry that you put into it. Importantly, if you input a point, the view factors will be calculated without a bias in direction but inputting a plane will calculate the view seen by a surface in the plane, which includes the directional bias induced by the direction the surface faces. This image gives you a sense of how the component works showing you the surface temperatures from EnergyPlus mapped onto the sphere of view:
Ladybug_Radiant Asymmetry Discomfort - A component that calculates the percentage of people dissatisfied (PPD) from radiant asymmetry. It uses the formulas that Christian has posted on this discussion, which are also the formulas published in ASHRAE 55:
https://www.scribd.com/doc/194468127/Ashrae-Std-55-2010
And in the CBE comfort tool:
http://comfort.cbe.berkeley.edu/
https://github.com/CenterForTheBuiltEnvironment/comfort_tool/blob/master/static/js/local-discomfort.js#L11-L14
With this component, you can convert the temperature difference across a plane:
... to a percent of people dissatisfied (PPD) from radiant asymmetry:
... and then to a temporal plot of radiant discomfort risk:
If you sync with the github, you can find these components under the WIP section.
Here you can find an example file that shows you how to estimate radiant asymmetry discomfort using these components and the results of an EnergyPlus simulation:
http://hydrashare.github.io/hydra/viewer?owner=chriswmackey&fork=hydra_2&id=Radiant_Asymmetry_Discomfort&slide=0&scale=1.0000000000000004&offset=64.23627386566636,-8.784339845403167
Let me know if you have any feedback, Christian. If you get the chance to ask Olesen the question about the wall asymmetry, please let us know.
Thanks again for all of the info that you have posted here.
-Chris…