ger work.
Be aware, this release breaks file-forwards compatibility. You will not be able to open gh and ghx files saved with 0.8.0050 on previous versions, though of course you should be able to open old files without problems. If this is not the case, please yell loudly.
If you're having trouble loading Grasshopper, note that you must have the latest Microsoft C++ Runtimes installed on your machine. They can be downloaded from the microsoft website.
The new release can be downloaded from the usual location.
Here's a list of changes, additions and fixes since 0.8.0013:
File format forwards compatibility has been broken. You will not be able to open files saved with 0.8.0050 on earlier versions.
This release contains many breaking changes and GHA libraries compiled for older version may not work anymore.
Grasshopper Binary files (*.gh) are now saved as compressed data.
Grasshopper Binary files (*.gh) are now the default format.
Support for ancient versions of the Text Panel (still called Post-It from back then) has been removed.
Support for ancient versions of the Path Mapper (still called Path Lexer from back then) has been removed.
Placeholders for ancient versions of the Graph Mapper have been removed.
Gradient input parameters now show state tag icons (Reversed, Flatten etc.).
Geometry Cache name changes are now updated on every key press.
Geometry Cache name changes can now be cancelled with Escape.
Geometry Cache name changes can now be undone.
Mesh|Mesh intersection component now uses a different algorithm. The old behaviour is still available from the component menu.
Warning and Error balloons are now drawn as part of a Canvas Widget and will no longer show up in the Hi-Res image export.
Galapagos now accepts multiple fitness values. The true fitness will be the average of the collection.
Galapagos wires are drawn much fainter when the Galapagos object is unselected.
Medium fast redraw mode in Galapagos now immediately redraws instead of at the end of each generation.
Redesigned all Grasshopper file format icons and added larger size icons for high-dpi explorer views.
Redesigned the Most Recently Used files menu, it should now display much quicker.
Compass widget has been rewritten in an attempt to increase display performance.
Added preferences section for Compass widget.
Added preferences section for Align widget.
Added preferences section for Default Preview colours.
Added preferences section for Document Preview colours.
Added preferences section for the Most Recently Used files menu.
The Area component now accepts Breps, Meshes and Planar Closed Curves.
The Area Centroid component now accepts Breps, Meshes and Planar Closed Curves.
The Volume component now accepts Breps and Meshes.
The Volume Centroid component now accepts Breps and Meshes.
Added Merge Faces component (Surface.Util panel).
Added a Mesh Smooth component (Mesh.Util panel).
Added a Curve Seam component (Curve.Util panel).
Added Interpolate Curve With Tangents component (Curve.Spline dropdown).
Added GrasshopperFolders command to open Settings, Components and UserObject folders without loading the core plugin.
The window that reports on certain Loading Errors now has a Copy button.
Added Simplify post-process filter to parameters (in addition to Reverse, Flatten and Graft).
Parameter post processes (Reverse, Flatten, Graft & Simplify) can now also be assigned to output parameters.
Version History window now has formatting (not happy with this, I'm working on something better).
The Process Info window is gone.
Main menu has been redesigned.
Canvas toolbar has been redesigned.
Canvas context menu has been replaced by a Radial Menu.
Canvas now has a radial menu which will pop up on Middle Mouse Button clicks.
It's possible to switch between Radial and Legacy menus in the Preferences (Interface.Canvas section).
'Save As Copy' feature has been replaced by 'Save Backup' which is a GUI-less save including date+time stamp.
Added a 'Show in Folder' item to the File menu.
AutoSave settings are no longer available from the File menu, you now need to use the Preferences.
Selection shifts now also modify the view so you can use Ctrl+Left and Ctrl+Right to navigate up and downstream.
Mesh Edge display can now be toggled with Ctrl+M.
Preview modes now have shortcuts (Ctrl+1 = no preview, Ctrl+2 = wireframe, Ctrl+3 = shaded).
Solution States now have a default name.
Data Viewer window now responds to all required events.
Data Viewer window can now handle input and output parameters as well.
Canvas Navigation pane can now be dragged using the icon in the upper left corner.
The Persistent Data Editor has been redesigned.
It's now possible to select multiple items in the Persistent Data Editor list and edit their properties.
It's now possible to drag multiple items at the same time in the Persistent Data Editor list.
Item addition to the Persistent Data Editor is much improved.
The Persistent Data Editor is now non-modal.
The Canvas would remain black upon maximizing the Rhino window, this is fixed.
Sliders would cause multiple updates under certain conditions, this is fixed.
Digit Scrollers would cause multiple updates under certain conditions, this is fixed.
Pipes were inside out. This is fixed.
The curve component would not adjust invalid nurbs degrees, this is fixed.
Curves referencing Brep edges failed to load, this is fixed.
Points referencing Brep edges failed to load, this is fixed.
Referenced dlls in the VB/C# components sometimes resulted in invalid imports statements, this is fixed.
Pasting geometry in Rhino would cause a recompute of the Grasshopper solution, this is fixed.
Importing a file into the Rhino document would cause a recompute of the Grasshopper solution, this is fixed.
Galapagos would trigger superfluous solutions, this is fixed.
Mesh Solid Difference had a wrong name and description, this is fixed.
Several menu items were not greyed out despite not being usable, this is fixed.
The position and size of the Grasshopper window failed to get stored on Rhino shutdown, this is fixed.
The Persistent Data Editor would crash on parameters that did not support data proxies, this is fixed.
I'll add some additional information regarding some of the new UI features in subsequent posts.
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
the data structure of the input.
I'll create a component that aims to write all the GH_Paths inside the input data structure into separate output parameters. I'll add a menu item to the component that allows users to synch the number of outputs with the current data.
Note that there are some bugs I found related to Undo here, but I'll attempt to fix those asap. The mechanisms employed in this example are correct.
Let's start with the Component class definition and the constructor:
Public Class GH_ExampleComponent_VarOutput
Inherits GH_Component
Public Sub New()
MyBase.New("Extract Paths", "ExPath", "Extract all the paths from a tree", "Sets", "Tree")
End Sub
End Class
Now, the RegisterXXXXParams methods:
Protected Overrides Sub RegisterInputParams(ByVal pManager As GH_Component.GH_InputParamManager)
pManager.Register_GenericParam("Tree", "T", "Data tree to examine", GH_ParamAccess.tree)
End Sub
Protected Overrides Sub RegisterOutputParams(ByVal pManager As GH_Component.GH_OutputParamManager)
'We'll add one output parameter, just to not have a jagged output.
pManager.Register_PathParam("Path 1", "1", "1st path in tree")
End Sub
SolveInstance() is somewhat special, but not very complicated:
Protected Overrides Sub SolveInstance(ByVal DA As IGH_DataAccess)
'We have only one input parameter and it is set to Tree,
'so SolveInstance will only be called once for every solution.
'We don't actually need the data inside the input, we're only interested in the paths.
'So we don't actually need to call DA.GetDataTree, we can just go in and extract the
'paths directly:
Dim paths As IList(Of GH_Path) = Params.Input(0).VolatileData.Paths
'Abort if there is no tree.
If (paths.Count = 0) Then Return
'Post a warning if the number of output parameters does not
'equal the number of paths in the tree.
If (paths.Count < Params.Output.Count) Then
AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, "There are more outputs than paths in the tree.")
ElseIf (paths.Count > Params.Output.Count) Then
AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, "There are fewer outputs than paths in the tree.")
End If
'Iterate over all paths and assign to output parameters.
For i As Int32 = 0 To Math.Min(Params.Output.Count, paths.Count) - 1
DA.SetData(i, paths(i))
Next
End Sub
Adding a menu item to the component menu is relatively straightforward, however handling the menu command requires a fair bit of logic:
Protected Overrides Sub Menu_AppendCustomComponentItems(ByVal iMenu As System.Windows.Forms.ToolStripDropDown)
'Add a single item to the component menu.
Menu_AppendGenericMenuItem(iMenu, "Synch outputs", AddressOf Menu_SynchOutputClicked)
End Sub
Private Sub Menu_SynchOutputClicked(ByVal sender As Object, ByVal e As EventArgs)
'Here we have to synch the number of output parameters with the number
'of paths in the volatile data tree in the input parameter.
'This requires a few steps:
'1. Determine whether something needs to happen at all.
'2. Record an undo event.
'3. Remove excess outputs or add missing outputs.
Dim paths As IList(Of GH_Path) = Params.Input(0).VolatileData.Paths
If (paths.Count = Params.Output.Count) Then Return 'yay, nothing needs to be done.
'Something needs to be done, record an undo state.
RecordUndoEvent("Synch output")
'We either have too few or too many outputs, determine which is the case.
If (paths.Count > Params.Output.Count) Then
'Add the missing outputs
For i As Int32 = Params.Output.Count + 1 To paths.Count
Dim param As New Grasshopper.Kernel.Parameters.Param_GenericObject()
param.Name = "Path " & i.ToString()
param.NickName = i.ToString()
If (i.ToString.EndsWith("1")) Then
param.Description = i.ToString() & "st path in tree"
ElseIf (i.ToString.EndsWith("2")) Then
param.Description = i.ToString() & "nd path in tree"
ElseIf (i.ToString.EndsWith("3")) Then
param.Description = i.ToString() & "rd path in tree"
Else
param.Description = i.ToString() & "th path in tree"
End If
Params.RegisterOutputParam(param)
Next
Else
'Remove excessive outputs
Do
If (Params.Output.Count <= paths.Count) Then Exit Do
Dim param As IGH_Param = Params.Output(Params.Output.Count - 1)
Params.UnregisterOutputParameter(param)
Loop
End If
Params.OnParametersChanged()
ExpireSolution(True)
End Sub
Finally, we must make sure that the component properly (de)serializes. This means we have to override the Write and Read methods and add additional information to the GHX archive:
Public Overrides Function Write(ByVal writer As GH_IO.Serialization.GH_IWriter) As Boolean
'We must make sure that the number of output parameters is correctly stored.
'We'll use a special function on the GH_ComponentParamServer to accompish this
'without too much sweat.
Params.WriteParameterTypeData(writer)
Return MyBase.Write(writer)
End Function
Public Overrides Function Read(ByVal reader As GH_IO.Serialization.GH_IReader) As Boolean
'Very important, we must make sure all parameters exist before we
'start with the main deserialization.
Params.Clear()
Params.ReadParameterTypeData(reader)
Return MyBase.Read(reader)
End Function
I attached a VB file that contains the code outlined above.
--
David Rutten
david@mcneel.com
Seattle, WA…
Added by David Rutten at 11:43pm on October 27, 2010
me of course!So I'll try to be as clear as possible.I have two problems.The form we have is a shade. I would like to close the shape of the top so she cancling to a bulb socket. For this, I want to keep a planar surface (the same surface asthe top of the basic shape without distortion but reduced (scale)), then connect themodified form (with the attractors points) to this surface. However, it must be dividethis surface on triangle to succeed have flat surface (because the shade is made of paper and then cut out of planar sheets).I managed to do it but very complicated and non-automatic by taking each point oneby one through lists items.Do you know a way to do it automatically and it still works even if we increase the number of facets of the form?I also have a problem with attractors points to 2 different places, to distort the basic shape and create the holes.
I could wish to create as many attractors points what I want in my program but it is limited.Do you think it is possible to group all attractors points in only component (point) to make this automatic?In my program, I have managed to use several (3) points attractors to distort the basic shape using dispatch order if I want attractors for example 24 points, I wouldcreate 24 pieces of program which is quite disturb!For holes, the problem IS exactly the same.Do you have any ideas? (If you have time).
Thanks a lot.Ines
…
n common tasks like updating GH definitions, viewing images on the GH canvass, and augmenting existing study-types. Most of the improvements to Honeybee have been in the making for a while and are just getting into the spotlight with this release. Notably, a number of improvements have been made to support large-scale full building energy models, including fixes to memory issues with large models, better components for splitting building masses into zones, and the ability to store HBZones in external files. Additionally, the THERM workflows have gotten a boost and these simulations can now be run directly from the Grasshopper canvass.
As always you can download the new release from Food4Rhino. Make sure to remove the older version of Ladybug and Honeybee before you do so and update your scripts. So, without further adieu, here is the list of the new capabilities added with this release:
LADYBUG
Better Method for Updating Old Grasshopper Files - As many of you have come to realize, Ladybug + Honeybee is updated on a fairly regular basis, with a stable release roughly every 6 months and a github version that never ceases to improve itself on a weekly basis. For this reason, we realize that updating old Grasshopper definitions to use recent components is a challenge for many of us. While we’ve had some methods for this in the past, there were always hiccups, particularly when it came to components that had new inputs/outputs since the previous version. Accordingly, Mostapha has added a new “Ladybug_Update File” component that will automatically update any Grasshopper Definition to be synchronized with the version of Ladybug+Honeybee that is currently in your toolbar (aka. the components in your userobjects folder). If there is a component that has new inputs/outputs since the time you built the definition, it will be automatically circled in red in your GH definition and a newer version of the component will be automatically added right next to this component:
While you still have to do some manual connecting of inputs to the newer component in this case, it should be much faster than our older methods and will hopefully help your old definitions survive long into the future!
EPWmap Now includes OneBuilding Files - Mostapha has added a number of new features to the EPWmap web interface that the “Download Ladybug” component connects to. Among the improvements are a color wheel that quickly shows you how hot, cold, and comfortable a given climate is and, perhaps more importantly, there is now support for EPW files sourced from OneBuilding. With the addition of many more weather files, you should now be able to use Ladybug with ease for more locations across the planet. We should also note that the “Open EPW and STAT” component that downloads/unzips files from a URL now supports OneBuilding URLs.
New Image Viewer Component - Mingbo Peng has graced Ladybug with a fantastic new “Image Viewer” component that takes a given image file on one’s machine and displays it on the Grasshopper canvas. It also enables one to pull color data off of the image with ease by simply clicking on the pixel of the image one is interested in. This new component is useful for a wide variety of cases, including the viewing of screenshots after they have been taken with the “Ladybug_Capture View” or “Ladybug_Render View” components. However, many of you will likely recognize it as most immediately useful in workflows involving image-based Honeybee Daylight (Radiance) simulations. This is particularly true as Migbo has built-in the capability to read many image file types, including PNG, JPEG, GIF, TIFF and the High Dynamic Range (.HDR) image files that Radiance Outputs:
The following video gives a quick overview of the Image Viewer’s capabilities:
The new component can be found under the Ladybug_Extra tab and I think I speak for us all in saying thank you Mingbo for this great component!
New Sun Shades Calculator Released Under WIP - After over a year of software development and nearly a career's worth of geometric math development, a joint effort between Abraham Yezioro and Antonello Di Nunzio has produced a new sun shade design component that can be described as nothing short of “magical.” Based on a similar principle to the current “Ladybug_Shading Designer,” the new component takes an input of sun vectors and produces shade geometries that can block the vectors. However, in comparison to the shading designer, the range of shade options that are available in this new component is truly staggering, ranging from classic overhangs, louvers and fins to pergolas and custom shade surfaces. Perhaps more importantly, the calculation methods used by this new component are faster and more reliable. It can currently can be found under the WIP section of Ladybug and it will continue to evolve in new versions of Ladybug.
Renewable Component Now Support Sandia and CEC Photovoltaics Modules - Polishing off his many contributions to the “Renewables” section of Ladybug, Djordje Spasic has added support for a couple more ways of defining Photovoltaic modules for renewables estimation. Specifically, the Ladybug WIP section now includes components to import modules defined with the California Energy Commission (CEC) and Sandia Labs.
HONEYBEE
Support for OpenStudio 2.x - A few months ago, the National Renewable Energy Lab (NREL) released a stable version of OpenStudio version 2, which included a number of improvements in stability and available features. This stable release of Honeybee is built to work with the new version of OpenStudio and, in the coming months, Honeybee will be adding a few more capabilities to its OpenStudio workflows to support v2.x’s new capabilities. Most notable among these will be support for OpenStudio measures. Measures are short scripts written in Ruby using OpenStudio’s SDK to quickly edit and change OpenStudio models. They are fundamental to visions of OpenStudio as a flexible energy modeling interface and to Honeybee’s goals of being a collaborative interface between the architectural and engineering industries. Stay tuned for the next release for many of these new capabilities!
Critical Memory Issue Fixed for Large Energy Models - A number of you wonderful members of our community have been aware of computer memory issues with large Honeybee models for some time (examples: 1, 2, 3, 4). Namely, a model that is larger than 50 zones could quickly eat up 16 GBs of memory and change Honeybee from a fast-flying insect to something more reminiscent of a snail. We are happy to say that, after a much longer time than it should have taken us, we finally identified and fixed the issue. In this version of Honeybee, such large models can now be created using less than 2% of the memory and time previously. Thanks to all of you who made us aware of this and hopefully you will now reap the rewards of your struggle.
Split Building Mass Component Getting a Makeover - Many of you veteran Ladybug users will recognize Saeran Vasathakumar as one of the original contributors of Ladybug who added components for solar fans and envelopes years ago. Now he’s back with new components to split a building mass into zones that are truly revolutionary in their speed and methodology. Saeran has divided the new capabilities into two components (one for floor-by-floor subdivision and another for core-perimeter subdivision) and they both can be found under the WIP section of this release. In this WIP version, core-perimeter thermal zones can only be generated for all convex and very simple concave geometries. Most concave geometries and geometries with holes (or courtyards) in them will fail. However it can handle even very complex convex geometries with speed and ease. You can expect the component to start accommodating concave/courtyard geometries very soon.
Load / Dump HB Objects to File - Keeping in line with the support of large, full building energy models, this release includes full support for two components that can dump and load any HBObjects to a standalone file. All information about HBzones can go into this file including custom constructions, schedules, loads, natural ventilation, shading devices, etc. You can then send the resulting .HB file to someone else and they can load up the same exact zones in another definition. This also makes it possible to have one Grasshopper file for generating the zones and running the simulation and another GH definition to import results and color zones/surfaces with those results, make energy balance graphics, etc.
Write ViewFactorInfo to File - After many of you asked for it, the _viewFactorInfo that is output from the “Honeybee_View Factor” component can now be written out to an external file using the same Load / Dump HB Objects components cited above. For those of you who have worked with the comfort map workflows, you probably already know that calculating these view factors is one of the most time consuming portions of building a microclimate map. Having to re-run this calculation each time you want to open up the Grasshopper script is a nuisance and, thanks to this new capability, you should only have to run it once and then store your results in an external .HB file.
Transform Honeybee Components Modified for Large Model Creation - Many large buildings today are made up of copies of the same rooms repeated over and over again across multiple floors, or along a street, etc. Accordingly, one can imagine that the fastest way to create a full building energy model of such buildings is to simply move and copy the same zones several times. This is what a new set of edits to the Honeybee Transform components is aimed at supporting by allowing one to build a custom set of zones, translate them several times with a Honeybee_Transform component, then solve adjacencies on all zones to make a complete energy model.
Central Plants Available on HVAC Systems - While Honeybee has historically supported the assigning of separate HVAC systems to different groups of zones, each HVAC was always an entirely new system from the ground up. So a building with separate VAV systems for each floor would be modeled with a different chiller and boiler for each floor. While this can be the case sometimes, it is more common to have only one chiller and boiler per building but separate air systems for each floor. The new ‘centralPlant_’ options on the Honeybee coolingDetails and heatingDetails enable you to create this HVAC structure by making a single boiler and chiller for any HVAC systems that have this option toggled on. Furthermore, in the case of VRF systems, you can also centralize the ventilation system, using the grouping of zones around a given HVAC to assign which zone terminals are connected to a given heat pump.
More HVAC Templates Added - As the profession continues to push the industry standard towards lower-energy HVAC systems, Honeybee intends to keep up. In this release, we have included a few more templates for modeling advanced HVAC systems including Radiant Ceilings, Radiant Heated Floors + VAV Cooling, and Two Ground Source Heat Pump (GSHP) systems. Variable Refrigerant Flow (VRF) systems have also gotten a large boost as it is now possible to model these systems with more efficient water-source loops. The next release will include the ability to model central ground source systems that use hydronics for heating cooling delivery.
Run THERM Simulations Directly from Grasshopper - Anyone who has used the THERM workflow in the past likely realized that, while Honeybee can write the THERM file, you would still have to open model in THERM yourself and hit “simulate” to get results. Now that LBNL has started a transition to becoming more open, they have graciously allowed free access for everyone to run THERM from a command line. What this means for Honeybee is that you no longer need to open THERM at all in order to get results and you can now work entirely in Rhino/Grasshopper. This also opens up the possibility of long parametric runs with THERM models since you can now automatically run simulations and collect results as you animate sliders, use galapagos, etc. A special thanks is due to the LBNL team for exposing this feature, including Setphen Selkowitz, Christian Kohler, Charlie Curcija, Eleanor Lee, and Robin Mitchell.
All Options Exposed for THERM Boundary Conditions - To finish off the full implementation of THERM in Honeybee, a final component has been added called “Honeybee_Custom Radiant Environment.” This component completes the access to all boundary condition options that THERM offers, including separate radiant and air temperatures, different view factor models, and the specification of additional heat flux (which is typically used to account for solar radiation).
Improvements to Schedule-Generating Components - Many of you who have watched the Honeybee energy modeling video tutorials have likely gotten in the habit of using CSV schedules for everything. While this is definitely one valid way to work, it is not always the most efficient since simple schedules can be specified much more cleanly to EnergyPlus/OpenStudio and the use of CSVs can also make it difficult to share your energy models (since you have to send CSV files along with the schedules themselves). This release adds two new schedule components that should take care of a lot of cases where CSV schedules were unnecessary. The new “Constant Schedule” component allow you to quickly make a schedule that is set at a single value or a set of constantly repeating 24-hour values. The second component allows you to create “Seasonal Schedules” by connecting “week schedules” from the other schedule components along with analysis periods in which these seek schedules operate. Together, these will hopefully make our schedule-generating habit a bit better as a community.
Lastly, many of you may know Mingbo Peng as the current maintainer of the Design Explorer web interface and the Colibri components under TTToolbox. Both of these tools have been revolutionary in enabling “brute force” studies of design spaces (aka. Grasshopper scripts where one runs all combinations of a set of sliders). Now, Mingbo has graced Ladybug with the aforementioned image viewer component and it is with pride that we welcome Mingbo Peng to the development team!
As always let us know your comments and suggestions.Cheers!
The Ladybug Tools Development Team
…
These sometimes take weeks or even months. One of these is usually followed by a flurry of revisions (0.8.0001, 0.8.0002, 08.0003) where reported bugs are fixed.
Current version 0.8.0066 and was released on January 22, 2012 (yes, a long time ago).
The next version will be 0.9.0001 and will hopefully be released in late May or Early June. I pasted the release notes below, as they were on May 18th:
Changes:
Data Trees are now constructed differently in some cases, this may break files that depend on specific data tree layouts.
File format forwards compatibility has been broken. You may not be able to open files saved with 0.9.0001 on earlier versions.
Parts of the Grasshopper SDK have been broken. You may not be able to load GHA files compiled for earlier versions.
Component Data Matching menu items are no longer available, please use the dedicated Shortest-List/Longest-List components.
New features:
Grasshopper will now load GHA files that are part of RHI installer packages.
Moved a lot of components into the dropdown panels, reducing the default tab layout.
Added Preview Mesh quality settings to the Canvas Toolbar and Solution menu.
Shift+Click on a tab component icon now starts a component aggregate.
Clicking on the canvas instantiates the oldest component in an aggregate.
Shift+Clicking on the canvas instantiates all components in an aggregate.
Press Escape to destroy a component aggregate.
Alt+LeftClick on the canvas now starts the Split tool which pushes apart the objects on either side of the mouse.
MultiSave exit dialog now closes automatically when all documents have been saved.
Added Data Dam object to delay data across a network (Params.Special dropdown).
Added Sift Pattern component for splitting data without messing with the item index (Sets.List panel).
Added Combine Data component for merging multiple streams with nulls (Sets.List panel).
Added Partition List component for breaking up lists into smaller lists (Sets.List dropdown).
Added Match String component for comparing strings against patterns (Sets.String dropdown).
Added String Distance component for computing Levenshtein distances between strings (Sets.Strings dropdown).
Added Format component for creating formatted strings (Sets.Strings dropdown).
Added Cloud Display component for displaying point data as fuzzy clouds (Vector.Point dropdown).
Added Sort Along Curve component for sorting points using curves as guides (Vector.Point dropdown).
Added Barycentric Point component for creating points using barycentric coordinates (Vector.Point dropdown).
Added Point Groups component for finding proximal clusters in point collections (Vector.Point dropdown).
Added Populate Geometry component for distributing points on different shapes (Vector.Grid dropdown).
All Population components now use a faster algorithm.
Added Project Point component (Vector.Point dropdown).
Added Blend Curve component for G0~G2 blends (Curve.Spline panel).
Added Connect Curves component for blending multiple curves into one (Curve.Spline dropdown).
Added Curve Length Domain component for measuring lengths of sub-domains (Curve.Analysis panel).
Added Curve Length Parameter component for measuring lengths to and from parameters (Curve.Analysis dropdown).
Added Containment Ex component for testing a point against multiple regions (Curve.Analysis dropdown).
Evaluate Curve component has been replaced with another one that outputs kink angles rather than lengths (Curve.Analysis panel).
Curve Derivatives component has been replaced with another one that has variable output parameters (Curve.Analysis dropdown).
Curve Derivatives component now displays the derivative vectors in the Rhino viewport.
Added Pull Curve component for pulling curves onto surfaces (Curve.Util dropdown).
Added Intersect Multiple Curves component (Intersect.Physical dropdown).
Added Matrix Data Type and Matrix Parameter (Params.Primitive dropdown).
Added Field Data Type and Field Parameter (Params.Geometry dropdown).
Added Point Charge component (Vector.Field panel).
Added Line Charge component (Vector.Field panel).
Added Vector Force component (Vector.Field dropdown).
Added Spin Force component (Vector.Field dropdown).
Added Merge Fields component (Vector.Field panel).
Added Break Field component (Vector.Field panel).
Added Evaluate Field component (Vector.Field panel).
Added Field Line component (Vector.Field panel).
Added Field Direction Display component (Vector.Field dropdown).
Added Field Perpendicular Display component (Vector.Field dropdown).
Added Field Scalar Display component (Vector.Field dropdown).
Added Field Tensor Display component (Vector.Field dropdown).
Added Adjust Plane component for modifying plane z-axes (Vector.Plane dropdown).
Added Evaluate component to replace all old expression components (Math.Script panel).
Added Expression component which evaluates an internal expression (Math.Script panel).
Added Short List component for equalizing list lengths (Sets.List dropdown).
Added Long List component for equalizing list lengths (Sets.List dropdown).
Added Inside Multiple component for testing point inclusion with multiple breps (Surface.Analysis dropdown).
Added Collision component for testing one-to-many collisions (Intersect.Physical dropdown).
Added Collision component for testing many-to-many collisions (Intersect.Physical dropdown).
Added Mesh Inclusion component for testing point|mesh inclusion (Mesh.Analysis panel).
Added Mesh Closest Point component for finding the point on a mesh closest to another point (Mesh.Analysis panel).
Added Evaluate Mesh component for sampling position, normal and colour at a mesh parameter (Mesh.Analysis panel).
Added Face Boundaries component for converting mesh faces into polylines (Mesh.Analysis panel).
Added Mesh Edges component for extracting mesh edge lines (Mesh.Analysis panel).
Replaced Mesh Plane component with one that takes a rectangle (Mesh.Primitive panel).
Added Blur Mesh component for averaging mesh vertex colours (Math.Util dropdown).
Added Simple Mesh component for creating a minimal Brep representation (Mesh.Util dropdown).
Added Knot Style input for the Interpolate Curve component.
Added Knot Style input for the Interpolate Tangents Curve component.
Added four different display styles to the Legend object (accessible via the component menu).
Double clicking the Legend object toggles discrete vs. smooth display styles.
Added an extra input to the legend component which allows legend drawing in 3D.
Replaced Containment component with more sensible values for inside/coincident/outside.
Replaced the Recursive Voronoi component with a better one.
Convex Hull component will now solve for 2 points.
MultiDimensional Sliders can now be part of states.
Geometry Pipeline object now has a Locked filter, available via the popup menu.
Geometry Pipeline object now has a Hidden filter, available via the popup menu.
Geometry Pipeline object now has a 'Group By Layer' option, available via the popup menu.
Geometry Pipeline object now has a 'Group By Type' option, available via the popup menu.
In Rhino5, the Zoom Extents command will now include Grasshopper geometry.
Expression input parameters can now have names like "Name (n)", where the text in brackets becomes the variable name.
Script input parameters can now have names like "Name (n)", where the text in brackets becomes the variable name.
Script output parameters can now have names like "Name (n)", where the text in brackets becomes the variable name.
VB/C# script components now have tooltip override fields in the context menu.
Parameter nicknames that collide with language keywords are now automatically modified in Script components.
Added Wrap option to Text Panel entries. When Wrap is off, items will be trimmed using ellipses.
Added NickName support to Knobs.
Added a grip region for Knob tuning.
Added a specific window for changing Knob settings.
Copy to Windows Clipboard now tries a total of 10 times if there's an access failure.
Copy to Windows Clipboard now copies to internal Grasshopper clipboard on prolonged failure.
Aborted solutions now clear whatever data is stored inside whatever component was solving when the Escape key went down.
The state of the Escape key is now also monitored during data conversions, making Escape behaviour more reliable.
Rearranged the Params.Special panel into Input and Util panels.
Rearranged the Sets.String panel.
File Reader component now reads per line files in a more efficient manner.
Parameter modifier icons are now drawn as vectors rather than bitmaps.
Bug fixes:
Components with Preview=Off would not display in selected only mode, this is fixed.
Instantiating number sliders via the popup box would not work if the first number was negative, this is fixed.
Copy to Windows Clipboard would not fail gracefully on error, this is fixed.
Interpolate Curve component would not warn on invalid degrees, this is fixed.
Knob menu control was not correctly initialized, this is fixed.
Knob menu control did not correctly respond to Limit On/Off, this is fixed.
Curve Discontinuity component would sometimes return invalid results for C1 discontinuities, this is fixed.
Certain exotic cases of Data Matching and Input Access would yield faulty output data trees, this is fixed.
Expressions in Point parameters would affect shared instances of points, this is fixed.
Editor window would not reflect saved/unsaved state of the loaded document, this is fixed.
MultiDimensional Slider would not undo on grip drags, this is fixed.
Image Sampler would not behave nicely when an image file went missing sometimes, this is fixed.
Upgrader for Null Item component generated an invalid result, this is fixed.
Text Panels would not display a scrollbar for local text, this is fixed.
Vector Display component would remain visible after disconnecting, this is fixed.
Vector Display Ex component would remain visible after disconnecting, this is fixed.
Adding or removing output parameters from VB/C# script would not update the script, this is fixed.
A CCX overlap intersection would sometimes result in erroneous parameters, this is fixed.
The tooltip over the abort icon would not show, this is fixed.
The canvas wouldn't always redraw when the solver was locked, this is fixed.
Transform Parameter Set menu items did nothing, they are now greyed out.
Occlusion Component would always return a null topology, this is fixed.
Group crossing selection would fail on concave group outlines, this is fixed.
Transform input parameters on components would have an empty transform by default, this is fixed.
Sweeps sometimes outputted surfaces with internal kinks, this is fixed.
Output parameters that output lists now have tooltip suffixes indicating them as such.
The main focus of 0.9+ is to improve cluster GUI and implementation.
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
Analysis Tools (LAT). Our plugin has come a long way in the last 4 years and, while the legacy version will still include some small updates and contributions, we are confident in saying that the changes will be far fewer and the plugin more stable in the following months as we switch gears into the LAT effort. I can say personally that (save for a couple of small capabilities) I have made it through my list of critical features and I will hereafter be working on making these features cross-platform, cleanly-implemented, and well-documented in the new Ladybug Analysis Tools software package. As always, you can download the new release from Food4Rhino. Make sure to remove the older version of Ladybug and Honeybee and update your scripts.
The majority of changes with this release represent “icing on the cake” after a long, multi-year effort to connect to the major open source engines and datasets. So, without further adieu, here is the list of the new capabilities added with this release:
LADYBUG
Stereographic Sky Projections - Thanks to several code contributions from Byron Mardas, all Ladybug sky visualizations now support stereographic projections! Such projections are useful for understanding the hemispherical visualizations in a 2D format and they also make it easier to overlay different sky datasets on top of one another. Check here for an example file showing the sun path overlaid with helpful/harmful parts of the sky and see here for an example file using shading masks representing strategies (like an overhang) on top of the helpful / harmful portions of the sun path.
Wind Rose Upgrades - Devang Chauhan has added several new features to the Ladybug wind rose including both visual and numerical outputs of average wind velocity and frequency for each petal of the rose. Not only does this enhance the usefulness of the rose but it also paves the way for the use of the wind rose to set up CFD simulations once Butterfly is released in the near future. The new features of the wind rose can be seen in this hydra example file.
Complete Set of Local Thermal Discomfort Models - After the last release included components to evaluate radiant asymmetry discomfort (which can be modeled using these example files: 1, 2), today’s release completes Ladybug’s suite of local discomfort models from ASHRAE and the ISO by adding components to account for discomfort from cold draft. Specifically, two draft models have been added for different types of situations. The first is an older model published by P.O. Fanger, which was developed through experiments where subjects had cold air blown on the back of their neck (the most sensitive part of the body to draft). While this is useful for understanding a worst-case scenario, it can greatly overestimate the discomfort for cases of draft at ankle level - a more common occurrence that typically results from the tendency of cold air to sink. For this situation, a second draft discomfort model has been included, which is specifically meant to forecast ankle draft discomfort. The model is currently undergoing review for integration into ASHRAE-55 and a publication outlining the derivation of this model can be found here:
Liu, S., Schiavon, S., Kabanshi, A. and Nazaroff, W. (2016), Predicted Percentage Dissatisfied with Ankle Draft. Indoor Air. Accepted Author Manuscript. doi:10.1111/ina.12364 (http://escholarship.org/uc/item/9076254n).
Special thanks is due to Shichao Liu, Toby Cheung and Stefano Schiavon for sharing the model and the results of their study with the development team. The integration of draft models completes the full integration of ASHRAE-55 and EN-15251 with Ladybug. Now, you can rest assured that, if there is a certain thermal comfort standard that you need to fulfill for a given project, you can model it with the ‘bug!
Window-Based Draft Model - With the integration of draft models, the first question that one might ask is “how should these models be applied to typical design cases?” While the (soon-to-be-released) Butterfly plugin for OpenFOAM should open up a Pandora’s box of possible situations, this release of Ladybug includes a simplified downdraft model from cold vertical surfaces, which helps model several typical cases of draft discomfort. The model has been validated across several papers:
Heiselberg, P. (1994). Draught Risk From Cold Vertical Surfaces. Building and Environment, Vol 29, No. 3, 297-301
Manz, H. and Frank, T. (2003). Analysis of Thermal Comfort near Cold Vertical Surfaces by Means of Computational Fluid Dynamics. Indoor Built Environment. 13: 233-242
It has been built into the “Ladybug_Downdraft Velocity” component and has been included in an example file illustrating discomfort from cold windows in winter. The example is intended to show when glazing ratio and window U-Values are small enough to eliminate perimeter heating - a practice that is aesthetically unpleasing, costly to maintain and wasteful in its energy use.
Operative Temperature on the Psychrometric Chart - This is a feature that should have been added a long time ago but we are finally happy to say that the Ladybug_Psychrometric Chart can draw a comfort polygon assuming that the air temperature and radiant temperature are the same value (aka. an operative temperature psychrometric chart). This operative temperature chart is the format that is needed to use the ASHRAE-55 graphical method and is generally a better representation of the range of comfort in cases where one does not intend to hold the radiant temperature constant. This operative temperature capability is now set as the default on the component but you can, of course, still bring back the older comfort polygon by simply plugging in a value for meanRadiantTemperature_.
Contour Map Visualizations - Using the same inputs as the Ladybug_Recolor Mesh component, the new Ladybug_Contour Mesh component allows you to generate contoured color graphics from the results of any analysis. Now, you to maximize the use of your high-resolution studies with contours that highlight thresholds and gradients!
Image Texture Mapping for Colored Meshes - Antonello DiNunzio has added the very useful Ladybug_Texture Maker component, which allows you to bake Ladybug colored meshes with image texture maps (as opposed to the classic method that used colored vertices). This enables the creation of transparent Ladybug meshes, making it even easier to overlay Ladybug graphics with one another and with Rhino geometry:
This component also adds the ability to render Ladybug + Honeybee meshes with other rendering programs like V-Ray and 3ds Max. So you can produce Ladybug graphics like this!
Finally, image-mapped textures are also the format required for gaming and Virtual Reality software like Unity and Augmented Reality programs like Augment. So now you can export your Ladybug meshes all of the way to the virtual world!
Rhino Sun Component - If you have ever had to set up the sun for a rendering plugin and wished that you could just take your Ladybug sun and use that, then you are in luck! Byron Mardas has contributed a component that lets you set the Rhino sun based on your EPW location data, your north direction (if different from the Y-Axis) and any time of day that you want. Not only does this make it easier to coordinate the Rhino sun with your Ladybug visualizations, but you can also use it for real time shadow previews by setting your Rhino view to “Rendered” and scrolling through a slider.
Rendered Ladybug Animations - With both the image texture mapping and the Rhino sun components released, your first thought might be “it would be great if I could use this all in a rendered animation!” Thankfully, Ladybug has added a new component to help you here. The Ladybug_Render View component works in essentially the same way as the Capture View component, allowing you to make a series of images as you animate through a slider. The major benefit here is that it works with both Rhino Render and V-Ray so that animations like this can be produced effortlessly:
Cone of Vision Added - Antonello Di Nunzio has added a component that allows you to visualize various cones of vision in order to help inform your view studies. You can fine tune parameters to include just text-readable or full peripheral vision and use the resulting view cone to constrict the results of your “Ladybug_View Analysis” studies.
Terrain WIP Components Released as the Gismo Plugin - Our friend Djordje has released a new plugin Gismo - a plugin for GIS environmental analysis. As a result the following 5 terrain components: Horizon Angles, Flow Paths, Terrain Shading Mask, Terrain Generator 2, Terrain Analysis, have been removed from Ladybug+Honeybee's WIP section and are added to Gismo.
HONEYBEE
Search, Select, and Import the Hundreds Outputs from EnergyPlus/OpenStudio - Many of the power users in our community know that EnergyPlus is capable of writing several hundred different outputs from the simulation (well beyond what the basic Honeybee result readers can import). While Honeybee has always allowed one to request these outputs by adding them to the simulationOutputs_ of the component, there has not been an official workflow for searching through all of the possible outputs or importing their specific results… until now! We have added the "Honeybee_Read Result Dictionary" component, which allows you to parse the Result Data Dictionary (or .rrd file) that EnergyPlus outputs during every run of a given model. This allows you to see all of the outputs that are available for the model and you can even search through this list to find a particular output that you are interested in. Once you find what you are looking for, simply copy the text output from the component into a panel and and plug this into simulationOutputs_. Then you can use the "Honeybee_Read EP Custom Result" component to bring your custom results into GH after rerunning the simulation. The example file of an evaporative cooling tower shows how to use the workflow to request and import in the energy removed by the tower.
OpenStudio HVAC System Sizing Results - After the full integration of HVAC in the last release, we realized that a number of people wanted to run EnergyPlus models simply to evaluate the size of the Heating/Cooling system in the model (obtained from the EnergyPlus autosize calculation that is run at the start of every simulation). Such a sizing calculation can be a great way to quantify the anticipated savings from a given strategy (like shading) on the size/cost of the building’s HVAC system. To get the results of the sizing calculation, all that one needs to do is connect the output eioFile from the OpenStudio component to the Honeybee_Read HVAC Sizing component. The outputs will indicate the peak heating/cooling loads of each zone (in Watts) as well as the size of each piece of HVAC equipment in the model. The next time that you are on a project that is about to value-engineer out an exterior shading system, use the workflow in the following example file to show that the client will probably end up paying for it with a more expensive HVAC system: Quantifying HVAC Sizing Impact of Shade.
Improved Memory Usage When Building Large Energy Models - As we take the capabilities of Honeybee to larger and larger models, many of us have begun to run up against a particular limitation of our machines: memory. After upgrading our machines to have 32 GBs of RAM, there was only one way left to alleviate the problem: restructure some of the code. Honeybee now uses an enhanced approach that ensures all the previous iterations of Honeybee objects will be removed from the memory once there is a change. In any case, the considerations of memory are definitely something that we intend to improve with the future Honeybee[+] plugin.
Workflow to Import gbXML Files - While GrizzlyBear has been around for several years, enabling us to export Honeybee zones to gbXML, we have gone for quite some time without a workflow to import gbXML files to Honeybee. The new Honeybee_gbXML to Honeybee component addresses this and establishes an easier path to import models from Revit into honeybee. You can read more about the component in this post.
Window Frame Capabilities Added to OpenStudio - After the implementation of LBNL THERM / WINDOW capabilities in the last two releases, there was one final bridge to build in the Honeybee workflow - fully connecting LBNL WINDOW to Honeybee’s OpenStudio workflow. This release of Honeybee will now write all FrameAndDivider objects exported from LBNL WINDOW glazing systems into the energy simulation, enabling you to account for the frame’s thermal bridging effects. As long as the construction is brought in with the Honeybee_Import WINDOW IDF Report component, the frames associated with the construction will be assigned to all windows that have the construction. Finally, it is worth noting that the current Honeybee will also write all glass spectral data as well as gas (or gas mixture) materials into the simulation. This means that essentially all properties of any IDF export that one makes from LBNL WINDOW can be factored into the OpenStudio energy simulation (with the only exception being BSDF materials).
OpenStudio Daylight Sensors Added - In our previous releases of Honeybee, the only means of correctly account for daylight sensors in an energy simulation was to run an annual daylight simulation and use the resulting schedules for the lighting in the energy simulation. However, this can take a lot of time and work to set up and run, particularly if the daylight control (at the end of the day) will be driven by just one sensor per room. Now, we have added another option, which uses OpenStudio/EnergyPlus’s built-in daylight controls. You can assign just a point and an illuminance target on the “Set Zone Thresholds” component and the lighting will be automatically adjusted in the course of the simulation. It should also be noted that the addition of daylight sensors has also coincided with the addition of blind/shade control based on glare. The same sensor point for daylight can be used to drive dynamic shades in the energy simulation based on glare experienced at this point. This example file shows how to set up daylight controls on the EnergyPlus model and check the lighting power results to see the effect.
Better Defaults for Natural Ventilation - After many good people wrote to me informing me that Honeybee overestimates natural ventilation airflow and I wrote back showing the way that I intended natural ventilation to be set up with the component, it dawned on me that I had selected some poor component defaults. Accordingly, this release includes a window-based natural ventilation option on the Set EP Airflow component that corrects for some of the common issues that I have seen. Insect screens are included by default and the component runs a general check to see if wind-driven cross ventilation is possible before auto-assigning it. The component will air on the side of more-conservative, lower airflow rates unless the user overrides the defaults. Finally, it’s worth noting that all of these changes have not affected the freedom of the Custom WindAndStack option on the component. The new defaults can be viewed in this example file.
CFD Results Can be Plugged into Microclimate Maps - In preparation for the (very soon) release of the Butterfly that connects to the OpenFOAM CFD platform, we just wanted to note that all of the microclimate map recipes can now take an input of a csv file with a matrix of CFD results for wind speed. For the time being, we have used these to produce very high-accuracy, high resolution maps of outdoor comfort. There will be more to follow soon!
We should also note that, in the last release I mentioned that we would be phasing out the EnergyPlus component so that all efforts are focused on the OpenStudio component. While I reiterate that all of the features of the EnergyPlus component are available in the OpenStudio component and I encourage everyone to use the OpenStudio component in order to take advantage of its HVAC capabilities, I have come to realize that many prefer to use the EnergyPlus component out of habit and have not yet gotten the time to understand why the OpenStudio component is an improvement over the EnergyPlus component. As a result, we have decided to leave the EnergyPlus component in place for the time being so that everyone has more time to understand this. The future Ladybug Analysis Tools platform will only interact with EnergyPlus through OpenStudio and so it is recommended that everyone use these two components in the Honeybee plugin will serve as an educational resource to understand our current path moving forward with OpenStudio.
Lastly, it is with great pleasure that we welcome Devang Chauhan and Byron Mardas to the developer team! As mentioned previously Devang has contributed several updates to the Ladybug Wind Rose in addition to finding and solving a multitude of bugs in other components. Byron has contributed code that has enabled the previously-mentioned stereographic sky projections along with a better method for running the Ladybug Sky Mask. Finally, Byron has contributed the Rhino Sun component, which allows you to coordinate your Rhino renders with your Ladybug data. Welcome to the Ladybug team, gentlemen!
As always let us know your comments and suggestions. Cheers!
Ladybug Analysis Tools Development Team…
significant step towards Grasshopper 1.0
Since there is so much new stuff in 0.9 I feel I ought to caution you to not switch to the new version without carefully considering the pros and cons. There will most likely be serious bugs that our internal round of testing did not find, some of these bugs may prove so crippling to your work that you will not be able to use 0.9 until they are straightened out. You can of course always download the previous version, but you may not be able to open files made with 0.9 on earlier versions. So be careful to not overwrite old files unless you're certain that the new release is something you're happy with.
Grasshopper 0.9.0005 can be downloaded from the usual place. Note that you must have a recent version of the Microsoft C++ runtimes on your machine. See this FAQ post for more details.
Since 0.8 there have been three major changes, hopefully all for the better:
Clusters
AutoSave
DataMatching
Clusters have been rewritten. They are not done yet but done enough for initial testing. I wrote down some useful details about what's new, you can read them here.
AutoSave has been rewritten and works in a fundamentally different fashion. The goal was both to remove autosave files from visible locations and to provide a more robust recovery system in case things go awry. If you want to know more, some details are available here.
Data Matching has been tuned a bit. Some bugs have been solved and hopefully no new bugs have been introduced. Datatrees should now grow complex less rapidly in certain cases. Again, some nitty-gritty details can be found here. Due to the changes it is quite likely that a lot of old files that rely on a specific data-tree layout will no longer work. This is a necessary evil in my opinion, but be warned that this may cause significant delays while switching over to 0.9
Here follows a (not exhaustive) list of changes since 0.8.0066.
Important Changes:
Data Trees are now constructed differently in some cases, this may break files that depend on specific data tree layouts.
File format forwards compatibility has been broken. You may not be able to open files saved with 0.9.0005 on earlier versions.
Parts of the Grasshopper SDK have been broken. You may not be able to load GHA files compiled for earlier versions.
Component Data Matching menu items are no longer available, please use the dedicated matching components.
Components with one-shot option input parameters have almost all been replaced with components that have options in the menu.
AutoSaving behaviour has been redesigned to hopefully provide less fragile protection against data-loss.
We've had some serious crashes with the [Cloud Display] component. In some cases even Blue-screen crashes. Be sure all your work is saved (not just in Rhino) when you use [Cloud Display] component.
New features:
2600+ LolCats, but I stopped adding them as ICanHasCheezBurger is no longer fun.
Standard windows tooltips will be on screen for a longer period than the Windows default of five seconds.
Grasshopper will now load GHA files that are part of RHI installer packages.
Internal parameter data (aka 'persistent data') now supports data trees.
Set Multiple XXXX menu items that used a multi-line textbox now support data path lines.
Manage XXXX collection window now supports data path entries.
Moved a lot of components into the dropdown panels, reducing the default tab layout.
Ctrl+Alt and Shift+Ctrl+Alt Info modes now also highlight components on ribbon dropdowns.
It is now possible to create multiple new wires with a right-mouse-click during the new wire tool.
Added Preview Mesh quality settings to the Canvas Toolbar and Display menu.
Added AutoSave folder item to the File->Special Folders menu.
AutoSave settings now have buttons for deleting autosave files.
When a file is opened and a matching AutoSave file exists, options will be displayed.
Removed the Data Matching event checkbox from the AutoSave settings.
Added AutoSave folder options to the AutoSave settings.
Added Point Preview flavour menu item to the Display menu.
Shift+Click on a tab component icon now starts a component aggregate.
Clicking on the canvas instantiates the oldest component in an aggregate.
Shift+Clicking on the canvas instantiates all components in an aggregate.
Press Escape to destroy a component aggregate.
Alt+LeftClick on the canvas now starts the Split tool which pushes apart the objects on either side of the mouse.
MultiSave exit dialog now closes automatically when all documents have been saved.
Added Zooming widgets settings to the preferences Widget category for controlling ZUI display thresholds.
Added Context Menus settings to the preferences GUI category for enabled component cascading submenus.
Moved AutoSave and MRU preferences into a single category called Files.
Improved scrolling on the Preferences window.
Clusters can now be password protected.
Cluster data is now encrypted when a password has been set.
Clusters now have an option to include preview geometry of their content.
Clusters can now be edited properly.
Cluster hooks inherit data from the parent cluster during editing.
Copied clusters in the same file will update when one of them is changed (they are 'entangled').
Cluster tooltips now show information about entangled instances of a cluster in the document.
Cluster tooltips now show Author information.
Cluster tooltips now show whether a password has been set.
Cluster tooltips now have blurred content previews when a password has been set.
Clusters can now reference gh/ghx files.
Clusters can now reference ghcluster files.
Added *.ghcluster file type for cluster storage. *.ghcluster files retain author information and password protection.
Components with no runtime warnings or errors no longer have a "No message" entry in their menu.
Brep|Line intersection component no longer has a Limit First input param, this is now a component menu option.
Curve|Line intersection component no longer has a Limit First input param, this is now a component menu option.
Surface|Line intersection component no longer has a Limit First input param, this is now a component menu option.
Random component no longer has an Integers input param, this is now a component menu option.
Tree Branch component now has a 'Maintain Paths' component menu option.
BoundingBox component no longer has a Union input param, this is now a component menu option.
When connecting a Param Viewer to a new parameter, it will automatically resize if the size change isn't large.
Added Data Dam object to delay data across a network (Params.Special dropdown).
Added Interpolate Data component for sub-sampling collections of data (Math.Util dropdown).
Added Sift Pattern component for splitting data without messing with the item index (Sets.List panel).
Added Combine Data component for merging multiple streams with nulls (Sets.List panel).
Added Partition List component for breaking up lists into smaller lists (Sets.List dropdown).
Added Match String component for comparing strings against patterns (Sets.String dropdown).
Added String Distance component for computing Levenshtein distances between strings (Sets.Strings dropdown).
Added Format component for creating formatted strings (Sets.Strings dropdown).
Graft component has been replaced with a new one with additional component menu options (Sets.Tree panel).
Added To Polar component for transcribing XYZ points to plane Phi/Theta/R coordinates (Vector.Point dropdown).
Added Cloud Display component for displaying point data as fuzzy clouds (Vector.Point dropdown).
Added Sort Along Curve component for sorting points using curves as guides (Vector.Point dropdown).
Added Barycentric Point component for creating points using barycentric coordinates (Vector.Point dropdown).
Added Point Groups component for finding proximal clusters in point collections (Vector.Point dropdown).
Added Populate Geometry component for distributing points on different shapes (Vector.Grid dropdown).
All Population components now use a faster algorithm.
Added Project Point component (Vector.Point dropdown).
Added Blend Curve component for G0~G2 blends (Curve.Spline panel).
Added Connect Curves component for blending multiple curves into one (Curve.Spline dropdown).
Added Curve Length Domain component for measuring lengths of sub-domains (Curve.Analysis panel).
Added Curve Length Parameter component for measuring lengths to and from parameters (Curve.Analysis dropdown).
Added Segment Lengths component for finding shortest and longest segments in a curve (Curve.Analysis dropdown).
Added Containment Ex component for testing a point against multiple regions (Curve.Analysis dropdown).
Evaluate Curve component has been replaced with another one that outputs kink angles rather than lengths (Curve.Analysis panel).
Curve Derivatives component has been replaced with another one that has variable output parameters (Curve.Analysis dropdown).
Curve Derivatives component now displays the derivative vectors in the Rhino viewport.
Added Pull Curve component for pulling curves onto surfaces (Curve.Util dropdown).
Added Intersect Multiple Curves component (Intersect.Physical dropdown).
Added Matrix Data Type and Matrix Parameter (Params.Primitive dropdown).
Added Field Data Type and Field Parameter (Params.Geometry dropdown).
Replaced Boolean Toggle object with a new one (Params.Input panel).
Added a Button object for temporarily toggling a value (Params.Input dropdown).
Added Point Charge component (Vector.Field panel).
Added Line Charge component (Vector.Field panel).
Added Vector Force component (Vector.Field dropdown).
Added Spin Force component (Vector.Field dropdown).
Added Merge Fields component (Vector.Field panel).
Added Break Field component (Vector.Field panel).
Added Evaluate Field component (Vector.Field panel).
Added Field Line component (note: this one is unfinished) (Vector.Field panel).
Added Field Direction Display component (Vector.Field dropdown).
Added Field Perpendicular Display component (Vector.Field dropdown).
Added Field Scalar Display component (Vector.Field dropdown).
Added Field Tensor Display component (Vector.Field dropdown).
Added Adjust Plane component for modifying plane z-axes (Vector.Plane dropdown).
Added Cull Duplicate Points component (Vector.Point dropdown).
Added Evaluate component to replace all old expression components (Math.Script panel).
Added Expression component which evaluates an internal expression (Math.Script panel).
Added Short List component for equalizing list lengths (Sets.List panel).
Added Long List component for equalizing list lengths (Sets.List dropdown).
Added Cross Reference component for creating combinations of data (Sets.List panel).
Added Replace Nulls component for replacing null and invalid data (Sets.List dropdown).
Added Inside Multiple component for testing point inclusion with multiple breps (Surface.Analysis dropdown).
Added Collision component for testing one-to-many collisions (Intersect.Physical dropdown).
Added Collision component for testing many-to-many collisions (Intersect.Physical dropdown).
Added Mesh Inclusion component for testing point|mesh inclusion (Mesh.Analysis panel).
Added Mesh Closest Point component for finding the point on a mesh closest to another point (Mesh.Analysis panel).
Added Evaluate Mesh component for sampling position, normal and colour at a mesh parameter (Mesh.Analysis panel).
Added Face Boundaries component for converting mesh faces into polylines (Mesh.Analysis panel).
Added Mesh Edges component for extracting mesh edge lines (Mesh.Analysis panel).
Replaced Mesh Plane component with one that takes a rectangle (Mesh.Primitive panel).
Added Blur Mesh component for averaging mesh vertex colours (Math.Util dropdown).
Added Simple Mesh component for creating a minimal Brep representation (Mesh.Util dropdown).
Added Knot Style input for the Interpolate Curve component.
Added Knot Style input for the Interpolate Tangents Curve component.
Added four different display styles to the Legend object (accessible via the component menu).
Double clicking the Legend object toggles discrete vs. smooth display styles.
Added an extra input to the legend component which allows legend drawing in 3D.
Replaced Containment component with more sensible values for inside/coincident/outside.
Replaced the Recursive Voronoi component with a better one.
Convex Hull component will now solve for 2 points.
MultiDimensional Sliders can now be part of states.
Value Lists can now be part of states.
Control Knobs can now be part of states.
Geometry Pipeline object now has a Locked filter, available via the popup menu.
Geometry Pipeline object now has a Hidden filter, available via the popup menu.
Geometry Pipeline object now has a 'Group By Layer' option, available via the popup menu.
Geometry Pipeline object now has a 'Group By Type' option, available via the popup menu.
In Rhino5, the Zoom Extents command will now include Grasshopper preview geometry.
Expression input parameters can now have names like "Name (n)", where the text in brackets becomes the variable name.
Script input parameters can now have names like "Name (n)", where the text in brackets becomes the variable name.
Script output parameters can now have names like "Name (n)", where the text in brackets becomes the variable name.
VB/C# script components now have tooltip override fields in the context menu.
Parameter nicknames that collide with language keywords are now automatically modified in Script components.
Script Cache recovery for VB/C# components now displays the list of cached scripts much quicker.
VB/C# script editor now has a button for inserting skeleton Preview overrides.
Added Wrap option to Text Panel entries. When Wrap is off, items will be trimmed using ellipses.
Added NickName support to Knobs.
Added a grip region for Knob tuning.
Added a specific window for changing Knob settings.
Copy to Windows Clipboard now tries a total of 10 times if there's an access failure.
Copy to Windows Clipboard now copies to internal Grasshopper clipboard on prolonged failure.
Aborted solutions now clear whatever data is stored inside whatever component was solving when the Escape key went down.
The state of the Escape key is now also monitored during data conversions, making Escape behaviour more reliable.
Rearranged the Params.Special panel into Input and Util panels.
Rearranged the Sets.String panel.
File Reader component now reads per line files in a more efficient manner.
Parameter modifier icons are now drawn as vectors rather than bitmaps (good for hi-res export).
Component specific options and settings are now displayed as tags underneath components.
Markov Widget tooltip now shows component information rather than widget information.
Grips, Text and Capsule highlights on the canvas are now drawn using time-based rather than zoom-based transparency.
Parameter icons now fade in/out using time-based rather than zoom-based transparency.
Component icons now fade in/out using time-based rather than zoom-based transparency.
Histograms now fade in/out using time-based rather than zoom-based transparency.
Pie charts now fade in/out using time-based rather than zoom-based transparency.
Boolean Toggles now fade in/out using time-based rather than zoom-based transparency.
Timers now fade in/out using time-based rather than zoom-based transparency.
Data Dam objects now fade in/out using time-based rather than zoom-based transparency.
Cluster Input Hooks now fade in/out using time-based rather than zoom-based transparency.
Cluster Output Hooks now fade in/out using time-based rather than zoom-based transparency.
Colour Picker objects now fade in/out using time-based rather than zoom-based transparency.
Image Samplers now fade in/out using time-based rather than zoom-based transparency.
Legends now fade in/out using time-based rather than zoom-based transparency.
Data Recorders now fade in/out using time-based rather than zoom-based transparency.
Number Dials now fade in/out using time-based rather than zoom-based transparency.
Number Sliders now fade in/out using time-based rather than zoom-based transparency.
Bug fixes:
Components with Preview=Off would not display in selected only mode, this is fixed.
Instantiating number sliders via the popup box would not work if the first number was negative, this is fixed.
Copy to Windows Clipboard would not fail gracefully on error, this is fixed.
Interpolate Curve component would not warn on invalid degrees, this is fixed.
Knob menu control was not correctly initialized, this is fixed.
Knob menu control did not correctly respond to Limit On/Off, this is fixed.
Curve Discontinuity component would sometimes return invalid results for C1 discontinuities, this is fixed.
Certain exotic cases of Data Matching and Input Access would yield faulty output data trees, this is fixed.
Expressions in Point parameters would affect shared instances of points, this is fixed.
Editor window would not reflect saved/unsaved state of the loaded document, this is fixed.
MultiDimensional Slider would not undo on grip drags, this is fixed.
Image Sampler would not behave nicely when an image file went missing sometimes, this is fixed.
Upgrader for Null Item component generated an invalid result, this is fixed.
Text Panels would not display a scrollbar for local text, this is fixed.
Vector Display component would remain visible after disconnecting, this is fixed.
Vector Display Ex component would remain visible after disconnecting, this is fixed.
Adding or removing output parameters from VB/C# script would not update the script, this is fixed.
A CCX overlap intersection would sometimes result in erroneous parameters, this is fixed.
The tooltip over the abort icon would not show, this is fixed.
The canvas wouldn't always redraw when the solver was locked, this is fixed.
Transform Parameter Set menu items did nothing, they are now greyed out.
Occlusion Component would always return a null topology, this is fixed.
Group crossing selection would fail on concave group outlines, this is fixed.
Transform input parameters on components would have an empty transform by default, this is fixed.
Sweeps sometimes outputted surfaces with internal kinks, this is fixed.
Output parameters that output lists now have tooltip suffixes indicating them as such.
VB/C# script with no input parameter failed to run, this is fixed.
Tooltip title text for components and parameters was basically unreadable, this is fixed.
Transform component claimed "Mirrored Geometry" as an output, this is fixed.
Align Planes would output null values, this is fixed.
Flip curve component now has a different alignment algorithm for guide curves.
Panel Editor would fail to load when a certain Font was missing from the system, this is fixed.
Popup Component Insertion window would crash under certain conditions, this is fixed.
Timers that went through the clipboard would still target the original objects, this is fixed.
Group Tags would sometimes be clipped at Hi-Res export boundaries, this is fixed.
Obsolete components would be visible in the PopUp search if they were accessed via an alias, this is fixed.
Referenced geometry which no longer exists in Rhino is now stored as a null rather than invalid item.
There will probably be a flurry of releases following this one as bug-reports and wishes come in. If you feel skittish about diving into a dangerous beta feel free to wait until 0.9 has settled a bit.
Enjoy!
David
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
developments, which is an attempt to make Honeybee platform-agnostic, cloud-compatible, scalable and more flexible for development. It currently consists of a core python library and the plugin libraries for Grasshopper and Dynamo.
You can download the plugin for Grasshopper from food4Rhino and install the Dynamo plugin from the package manager. You must install the latest version of Radiance to use Honeybee[+].
This current release introduces Radiance-based workflows for daylighting simulations and supports the following simulation types:
Point-in-time illuminance (a.k.a grid-based)
Point-in-time luminance (a.k.a image-based).
Daylight coefficients (both grid-based and image-based)
Three-Phase Method (grid-based implemented, image-based to be added soon)
Five-Phase Method (grid-based implemented, image-based to be added)
NOTE: There has been a very recent update to the Five-Phase method which was presented at the IBPSA2017 conference last week. These changes have NOT been implemented in the current release. We suggest the users to use the daylight coefficient recipe for annual metrics, sDA and ASE until we apply the recent changes.
While many of you will recognize the first three simulation types above as ones that Honeybee has always supported. Image-based daylight coefficients, Three Phase Method and Five Phase Method are increasingly advanced ways of running annual or time-lapse simulations. Tensor Tree based BSDFs, while supported in Honeybee are not featured in any of the example files. We intend to incorporate this functionality in the near future. The simulation-methods listed above are based-on empirically validated research conducted primarily by researchers at the Lawrence Berkeley National Laboratory since late 1980s. There are also some special workflows (which we call recipes!) that make it easier for beginners to use the plugins.
Solar access simulation aka sunlight hours (which employs point-in-time simulation).
Daylight factor simulation (which employs point-in-time simulations).
[Annual] Radiation simulation (which employs daylight coefficients).
Annual [daylight] simulation (which employs daylight coefficients)
Energy simulation features are yet to be implemented in Honeybee[+] so, if you’re using Honeybee mostly for energy modeling you should keep using the legacy version.
Frequently Asked Questions
I'm happy with Honeybee as it is. Why should I install this one?
Honeybee[+] addresses several limitations of the legacy version of Honeybee and introduces new features which were not available before.
Broadly speaking, Honeybee[+]:
Is faster than the current annual recipe implementation as we now leverage the Radiance binaries directly instead of using Daysim.
Is more accurate at calculating direct solar contribution.
Can handle BSDF materials (unlike the current Honeybee annual daylight simulation).
Can run sub-annual daylight simulation by generating sub-annual sky matrix.
Uses an improved implementation of Radiance’s daylight coefficient based methods by using Radiance utilities for annual simulation.
Can calculate the contribution of each light source separately both for image and grid based simulation.
Has no limitations on the number of window groups and states of dynamic blinds.
It also provides a nearly-matching interface for both Grasshopper and Dynamo. There are a few platform specific components / nodes for each plugin but the overall workflow in each interface is the same. Honeybee[+] should also, in theory, work just fine on Grasshopper for Mac, although we admittedly have not tested this yet. This also means that you should be able to use Radiance’s built-in parallel processing.
We strongly encourage our experienced users to start using Honeybee[+] right away. You will enjoy the new features and the flexibility that you have come to love in the current workflow is all still there. The ability to separate the contribution of each window group is also just so cool and useful. If you’re as nerdy about daylight simulation as we are, you don’t want to miss out!
How should I get started?
You can download the installer from Food4Rhino for Grasshopper and Dynamo Package Manager for Dynamo.You can get yourself started with Honeybee[+] using the example files that is part of the installation part until we capture the video tutorials. The example files are commented as much as possible so you can educate yourself in the process. If you are already using Honeybee for Grasshopper, you will know how to use Honeybee[+]. There are a few changes in the post processing components but there is no major change from the current workflow.
Let us know if you find any bugs or have any suggestions for new features.
Can I install Honeybee[+] next to the current version of Honeybee?
For Grasshopper users, the answer is yes. Honeybee[+] is a totally separate from Honeybee and won’t replace it at least for one year.
For Dynamo users, the answer is no. The new package is an improved version of what was available before and is meant to replace it. In other words, the currently available “Honeybee for Dynamo” is built using the new Honeybee library.
How do I learn more about Honeybee[+]?
A significant portion of the development work for the daylighting methods implemented in Honeybee[+] forms the basis of Sarith’s PhD research. His dissertation, titled “Parametric Modeling Strategies for Efficient Annual Analysis of Daylight in Buildings”, is expected to be available publicly in early 2018. For the time being, we encourage you to refer the slides of this Radiance workshop presentation from 2016.
For those interested in learning more about the Radiance-based methods implemented in Honeybee[+], a comprehensive tutorial for Radiance will be released by LBNL in the coming weeks.
Where to post issues, comments or bugs?
Very soon we will compile all the discussions in our new discussion forum. It is invite only at this point until we move all the current discussions to the new forum. Meanwhile:
Post comments and questions about the Grasshopper plugin to the Grasshopper forum.
Post comments and questions about the Dynamo plugin to the Dynamo forum and tag it under Honeybee.
For bugs in the core library, please open an issue on “Honeybee” repository on GitHub.
For plugin specific bugs, please open an issue on Honeybee-grasshopper or Honeybee-dynamo GitHub pages.
Known bugs
The Room To HBZones component for Dynamo is doomed to fail for complex cases. In those cases use Dynamo’s select item(s) nodes to bring the geometries to Dynamo and create Honeybee surfaces. Also vote up this feature request which will fix this bug if you haven’t already! This will hopefully be the last release that we are still waiting for Autodesk help. If it doesn't happen the next move is to write a more solid solution to address this issue.
This is the first release. However, we have tested the workflow as much as we could and have checked the results against the original Honeybee and other Radiance-based workflows bugs are expected. Double check the results of each study and let us know if you found any bugs.NOTE: As many of you know by now, Radiance employs a combination of deterministic and stochastic methods for calculations. For this reason, the results you get from running the same Radiance simulation will be slightly different for each run by a small margin of error (this should be less than 10%).
What to expect next?
Except for the cloud computing support! We have reached all of the other major goals that we had for 2016-2017. For the rest of the year we will try to address the items below:
Documentation of the [+] developments. We need to document the current development and get more of the contributors up to speed with the new development.
Release a new version of Butterfly to support the latest release of OpenFOAM and docker-less installation for Windows 10.
Cloud computing service for Butterfly and Honeybee
Finally we will have a number of major announcement about the future of Ladybug Tools soon! Stay tuned!
Mostapha on behalf of Ladybug Tools development team
Note added by Sarith:
On the cross-platform aspect, to add to Mostapha's release notes, the core library has been tested on the following platforms:
Linux Ubuntu: Version 14.04 | 16.04 | 17.04
Linux RHEL: 6.8
Unix FreeBSD: 10.0
Linux (Cloud VM): Microsoft Azure H16mr running Ubuntu 17.04
Linux (Cloud VM): Amazon AWS EC2 t2 running Ubuntu 14.04
The core dependencies for running Honeybee on the cloud are Python 2.7, Radiance, git and honeybee . Since Apple computers typically run Unix-like OSs, we don't foresee any portability issues with them.
…