or a couple of thingies.
Pattern.gh
I defined parametrically a triangle which I then smoothed out to become more like a blob shape. After that I created a pretty simple pattern that I had in my mind (costed me a lot of time to make this in GH) and finally wanted to rotate each element as it goes higher . The dispatching part seems to be working pretty slow, so it might need an optimization, but I’m still happy with the result as it shows exactly what I wanted, so this is a minor issue in my case.
I then decided to try tessellating my extrusions. You’ll see the voronoi script which is a blob-group in the same Pattern.gh:
I had an idea of something and started the code from scratch, then decided to watch tutorials and implement the code shown there. I somehow coped to combine my code with this in the tutorials, but since my knowledge of Grasshopper is zero to basic my code seems to be very unoptimized and lagging.. When dragging the sliders, it takes a lot of time to compute the changes, although, I’m working on a 24gigs 6th gen i7 machine. It might also need optimization.
Here comes the first tricky part that I couldn’t sort out in an elegant way neither in Grasshopper nor in Rhino. I want a smooth transition between the wall and the ceiling, so that the voronoi tessellation doesn’t get interrupted. If I was to do it in Rhino I’d make a curve with a filleted edge which I’d then revolve/sweep along a rail.
Pattern.gh:
Second thing is – I’ve defined a shape which I want to rotate at a certain degree as it goes higher, however, I don’t have the knowledge to make this happen automatically and just copy the script over and over again. Is there a chance to somehow “loop” the code and parametrically define the degree of rotation and amount of units in the loop?
Next thing is I want to somehow be able to rotate each “6-storey-building” dependently on its surrounding buildings, so that their “terraces” never overlap. I’m using quotes, since they’re still some silly shapes that have nothing to do with buildings and terraces. The principle has to be something like gear wheels or the so-called rack wheels . There has to be some pace which I could set parametrically, but I’m still unsure how to do that in Grasshopper.
The pre-last thing is that I want to control the height of each “building” based on let’s say a topography. I presume this could be done somehow with height maps or some gradient mapper connected to curvature analysis. Not really sure how something like this would work, but I’ve seen such codes that control height depending on a variable.
The last one is more or less similar to the previous. I want to be able to “dissolve” the pattern that I initially created and make it irregular. I suppose this could be done with attractor curve, but again this is just a guess. Please note that this is a top view and the shapes on the upper-left corner have got more "wings" which means there is more floors in the according building. Let's say the buildings in the upper-left corner are 6-7 floors high, in the middle are 4-5 and to the right they're only 3 floors high.
Sorry for that many questions in a single thread. Please let me know if I have to split them in separate threads. All this information is needed for learning purposes. I’m now preparing myself for my bachelor thesis and try as much things as I could, so that I’ll be ready for the final stage of my bachelor’s degree.
Many thanks in advance! Cheers!…
les automatically at the right angle to form the cap of an icosahedron.
To complete the full icosahedron, we consider just the six points we already know, the five pentagon vertices and the raised pyramid tip and reorient one of the vertices using three-point transformation so it obtains the exact same relationship between vertices only one more stage beyond our little cap pyramid, and we do a five-fold polar array:
I used a password-protected cluster I ran into one the forum somewhere to reproduce Rhino's 3-point orient command:
A final 3-point orientation transforms in space the original pyramid tip down to the bottom:
Now we can create a convex hull which gives an icosahedron mesh:
So that's how you build an icosahedron in Rhino from scratch, only using rather long winded Grasshopper.
Now we use the Weaverbird plug-in to subdivide the faces and then project the vertices out onto a sphere via finding the closest points to a sphere and then recreating a convex hull to make a geodesic dome mesh:
Subdividing two times works fine but 3 times blows up convex hull, so I'll just have due with the the subdivision step and leave out projecting back to a sphere, since the algorithm already gives a nice spherical result that you can see inside this disaster:
Now you know what a standard geodescic dome is, just an icosahedron with faces divided into smaller triangles, projected out to a sphere.
Actually, the mere subdivision is just a bit blobby instead of a sphere, damn it, so I'll have to topologically recreate the mesh after projecting the points indeed back onto our sphere.
Using a subdivision plug-in may be slightly throwing the perfect result off, so manually creating subdivision points on each mesh face may be in order, doing them flat against each icosahedron face:
You can also start with the two other triangulated Platonic solids but those give less regular triangles:
…
ree..
First-End List Component cannot manage branches inside every dimensions..
"Smart T8" Component is developed for managing the multi dimensional data tree with first-end algorithm.
It works with path index location..
"-1" or negative numbers mean the location of item..
"0" means the location of the last path index..
positive numbers mean the location from the back..
----
Now look at this example.. a simple 3-dimensional boxes..
In the data tree.. of {0;0;i;j} (k)
"k" is the item index.. Y direction..
"j" is the last path.. X direction..
and "i" is the level.. Z direction..
----
When index < 0 (i.e. "-1" or negative)
"Smart T8" performs like the First-End Item Component..
It selects first items in each list and puts them out to "F"..
and in this example.. they are boxes with same Y coordinate(=0)..
In the below image..
F(Red) M(Transparent Green) E(Blue) are classified by Y coordinates..
----
When index = 0
"Smart T8" focuses on the last path index..
It selects first list of every {0; 0; i; *} set of lists.. (i.e. every levels)
In this example.. they are boxes with same X coordinate(=0)..
because the last path means X grid..
In the below image..
F(Red) M(Transparent Green) E(Blue) are classified by X coordinates..
----
When index = 1
"Smart T8" focuses on the third path index.. (i.e. 1 step from the back)
It selects first list of every {0; 0; *; j} set of lists..
Actually in this case.. they are first levels of every YZ planes..
In this example.. they are boxes with same Z coordinate(=0)..
because "Smart T8" manages levels now (index=1)..
In the below image..
F(Red) M(Transparent Green) E(Blue) are classified by levels..
----
When index > 1.. (if it is meaningless index or out of range..)
It performs First-End List Component..
It selects only the first and end list of all lists..
----
The "Smart T8" component works with 3 or more dimensional data tree well..
Please control the focusing index and enjoy it.. :)
…
a problem with SSL. Any Ideas? I am using the following code:
import json,httplib connection = httplib.HTTPSConnection('api.parse.com', 443) connection.connect() connection.request('GET', '/1/classes/MY-CLASS', '', { "X-Parse-Application-Id": "MY-APP-ID", "X-Parse-REST-API-Key": "MY-REST-API-KEY" }) result = json.loads(connection.getresponse().read()) print result
I Get the Following Messages:
Runtime error (IOException): Authentication failed because the remote party has closed the transport stream. Traceback: line 280, in do_handshake, "C:\Program Files\Rhinoceros 5.0 (64-bit)\Plug-ins\IronPython\Lib\ssl.py" line 120, in __init__, "C:\Program Files\Rhinoceros 5.0 (64-bit)\Plug-ins\IronPython\Lib\ssl.py" line 336, in wrap_socket, "C:\Program Files\Rhinoceros 5.0 (64-bit)\Plug-ins\IronPython\Lib\ssl.py" line 1156, in connect, "C:\Program Files\Rhinoceros 5.0 (64-bit)\Plug-ins\IronPython\Lib\httplib.py" line 3, in script Any help would be greatly appreciated! Thanks in advance! -Zach…
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…
r changes so please read the following carefully before upgrading:
Grasshopper 0.9.0051 is for Rhino5 only. It will not work on Rhino4. In fact it needs a fairly recent Service Release of Rhino5. If you don't have Rhino5 SR3 then you may consider updating Rhino first.
Grasshopper 0.9.0051 uses the Rhino installer engine. This means you need to manually uninstall any Grasshoppers you may currently have. You can do so via the Windows Control Panel.
Grasshopper 0.9.0051 may have serious bugs. Although we've tested this release in the field it is possible that it may not work under certain conditions. Please refrain from upgrading if you are on a tight dead-line.
Files written with Grasshopper 0.9.0051 may not read on earlier versions. Although old files should open without issue, Grasshopper is not forward compatible. Do not overwrite important files until you are certain that this release works for you.
That being said, you can download the new release from the usual location. Be sure to uninstall any old Grasshoppers first!
It is always possible to revert to the previous version if you find that this release does not work for you. Details on how to roll back to 0.9.0014 are posted here.
Ok enough hedging, on to the good stuff.
New features in this release:
● A lot of component input parameters now have default values. ● The term 'String' has been replaced with the term 'Text'. ● Several other nomenclature changes have been made in an attempt at increasing self-documentation and standardisation. ● Reorganised the components in the Sets.Tree panel and normalised nomenclature a bit. ● Several components have been moved into the dropdown panels, cleaning up the default layout. ● Jagged edges are now drawn more consistently when there are no inputs or outputs. ● The main window is now only hidden during picking operations if it obscures Rhino viewports. ● The Recent File Timeline in the File menu now has tooltips for files. ● Added Export Quick Image feature for saving the canvas image (File menu). ● Added Template File support to the Preferences (Files category). ● Added Tiles with recently used files to the Canvas when no document is loaded. ● Added per-GHA load protection options. ● Added per-GHA load mechanism options. ● Any component input parameter can now be designated as 'Principle Parameter' via its context menu. ● Sliders now inherit their default nickname from recipient parameters. ● Scrollers now inherit their default nickname from recipient parameters. ● Pressing Shift or Control now reverses direction for jump objects. ● Jump Objects now display the target nickname in their tooltips. ● The canvas now appears blue when editing a cluster. ● Parameter Disconnect menu has been cleaned up. ● Number Sliders with expressions now include the unprocessed value during grip dragging. ● Number sliders with expressions now support text input for the processed numbers. ● Extrusions will now be loaded by the Geometry Pipeline as Breps. ● When the category tabs are too wide for the main window, they will now shrink rather than scroll. ● Added Icon Display to the category tabs (icons can be disabled via the tab popup menu and via the preferences). ● Added Category Icon option to Ribbon preferences (Interface.Ribbon section). ● Tab Grip areas now have tooltips which show partial tab content. ● Slider instantiation from popup insert window now accepts A<B in addition to A<B<C formats. ● Slider instantiation from popup insert window now accepts A..B and A..B..C formats. ● Clocks can be instantiated from the popup insert window using HH:mm or HH:mm:ss formats. ● Calendars can be instantiated from the popup insert window using dd/MM or dd/MM/YYYY formats. ● Point parameters can be instantiated from the popup insert window using X,Y[,Z] notation. ● Ctrl+Scrolling now changes the font size in script editor windows. ● The VB/C# script components now have cleaner template code. ● The VB/C# script components now have different private members, providing easier access to useful objects. ● Added BeforeRunScript and AfterRunScript overrides to the VB and C# script template. ● Added Before/After Solution Template button to the script editor. ● Added Preview Template button to the script editor. ● Added RunScript button to the script editor. ● Added a Font Picker button to the script editor. ● 3rd party GHA libraries without assembly info are now displayed on the banner anyway. ● The GHA library info window accessible from the Banner now shows how a GHA was loaded. ● The GHA library info window accessible from the Banner now provides Load Protection options. ● The GHA library info window accessible from the Banner now provides Load Mechanism options. ● Added a section to the Preferences which provides access to plug-in load protection (Solver section). ● Added a section to the Preferences which provides access to plug-in load mechanisms (Solver section). ● Added a numeric formatting section to the Preferences (Display section).
● Added Culture input to the String Format component. ● Added Culture input to the String Sort component. ● Added Culture input to the String Casing component. ● Added Sequence UI mode to Value List object. ● Added Cycle UI mode to Value List object. ● Added Check List UI mode to Value List object. ● Value List text editor now accepts names without values. ● Added variable output parameter ZUI to the List Item component. ● The Addition component has been replaced by a new one that supports multiple inputs. ● Trigonometry components (Sin, Cos, Tan, Sinc,..., CoTangent) now have Degree options for their inputs. ● Custom Preview component now has a Viewport Filter option for restricting preview to specific viewports. ● The Center component has been replaced with Deconstruct Arc. ● Sweep1 and Sweep2 components now use Rhino5 SDK methods. ● Pipe component now uses Rhino5 SDK methods. ● Indices input of the List Replace component is now optional. ● 2D Voronoi component now has a Rectangle as boundary input instead of a Box. ● PullPoint has been replaced by a new, faster component. ● PullPoint now has a component option for the Closest setting. ● Flip Curve component now distinguishes between linear and curved guide curves. ● Key/Value Search now tells you which key wasn't found rather than a generic warning.
New components in this release:
● Added Colour Wheel object for generating colour palettes (Params.Input dropdown). ● Added Clock object for setting times (Params.Input dropdown). ● Added Calendar object for setting dates (Params.Input dropdown). ● Added Cherry Picker object for manually selecting individual items from data-trees (Params.Util dropdown). ● Added Culture data type and parameter for specifying language specific formatting (Params.Primitive dropdown). ● Added Import XYZ component for parsing text files containing points (Params.Input dropdown). ● Added Import 3DM component for importing geometry from 3DM files (Params.Input dropdown). ● Added Import SHP component for importing GIS data from SHP files (Params.Input dropdown). ● Added Import Image component for importing image data as coloured meshes (Params.Input dropdown). ● Added Import PDB component for importing Protein Data Bank molecules (Params.Input dropdown). ● Added Atom Data component for extracting detailed information about atoms (Params.Input dropdown). ● Point XYZ and Decompose Point have been reverted to the older style without plane [S] input. ● Added Plane Coordinates for extracting point coordinates in a custom axis system (Vector.Plane dropdown). ● Added Dot Display component (Vector.Point dropdown). ● Added Date & Time component (Maths.Time panel). ● Added Date Calendar component (Maths.Time dropdown). ● Added Adjust Date component (Math.Time dropdown). ● Added Deconstruct Date component (Maths.Time dropdown). ● Added Time component (Maths.Time panel). ● Added Smooth Time component (Math.Time dropdown). ● Added Combine Date component (Math.Time dropdown). ● Added Interpolate Time component (Math.Time dropdown). ● Added Time Range component (Math.Time dropdown). ● Added Blur Numbers component for averaging a list of numbers (Math.Util dropdown). ● Added Integer Channels option to the ARGB Split component. ● Added Unflatten Tree component for reversing a flattening operation (Sets.Tree panel). ● Added Trim Tree component for merging the outermost branches of data trees (Sets.Tree panel). ● Added Match Tree component for making trees look alike (Sets.Tree dropdown). ● Added a Deconstruct Rectangle component (Curve.Analysis dropdown). ● Added Tween Curves component (Curve.Spline dropdown). ● Added Tangent Curve component for interpolating curves through many tangent points (Curve.Spline dropdown). ● Added Curve To Polyline component for converting splines to polyline segments (Curve.Util dropdown). ● Added an Inside component for testing shape/brep inclusion (Surface.Analysis dropdown). ● Added Plane Through Shape component for creating a plane which exceeds any shape (Surface.Primitive dropdown). ● Added a Box Rectangle component that defines a box by rectangle and height (Surface.Primitive dropdown). ● Added an Extrude Along Curve component (Surface.Freeform dropdown). ● Added Patch component (Surface.Freeform dropdown). ● Added Fragment Patch component for filling closed polylines (Surface.Freeform dropdown). ● Added Network Surface component (Surface.Freeform panel). ● Added Pipe Variable component (Surface.Freeform dropdown). ● Added Ruled Surface component (Surface.Freeform dropdown). ● Added Cap Holes component for capping non-planar holes in breps (Surface.Util dropdown). ● Added Mesh Sphere Ex component for creating spheres out of square patches (Mesh.Primitive dropdown). ● Added Mesh Spray component for colouring meshes with seed points (Mesh.Primitive dropdown). ● Added Weld Mesh component for welding creased mesh edges (Mesh.Utility dropdown). ● Added Unweld Mesh component for unwelding high angle mesh edges (Mesh.Utility dropdown). ● Added Boundary Volume component (similar to the Rhino _CreateSolid command) (Intersect.Shape dropdown). ● Added Rectangle Mapping component for transforming geometry from one rectangle into another (Transform.Affine dropdown). ● Added Box Mapping component for transforming geometry from one box into another (Transform.Affine dropdown). ● Added Linear Array component for creating geometry arrays (Transform.Array panel). ● Added Rectangular Array component for creating geometry arrays (Transform.Array panel). ● Added Polar Array component for creating geometry arrays (Transform.Array panel). ● Added Curve Array component for creating geometry arrays (Transform.Array panel). ● Added Box Array component for creating geometry arrays (Transform.Array dropdown). ● Added Kaleidoscope component for polar arrays with alternate mirroring (Transform.Array dropdown).
Bug fixes in this release:
● Sort Along Curve component was broken, this is fixed. ● Curve|Plane intersection would fail if there was no intersection, this is fixed. ● Sift Pattern output parameters could not be removed, this is fixed. ● Combine Data input parameters could not be removed, this is fixed. ● Combine Data would not work correctly on more than two inputs, this is fixed. ● Nulls in internalised data would not be deserialized, this is fixed. ● Cluster Disentangle menu was locked when the entanglement count was 2, this is fixed. ● Clusters would not serialize author data, this is fixed. ● Capsules with more than zero but less than four sharp corners would not draw correctly, this is fixed. ● Markov Widget would suggest obsolete components, this is fixed. ● Spatial OcTrees would crash if there were a large amount of coincident nodes. ● Document thumbnails were not updated unless the MDI menu was shown, this is fixed. ● Grasshopper tooltips would not show correctly when displayed from a menu, this is fixed. ● Control Knob decimal settings could not be adjusted via the editor, this is fixed. ● Expression component ran slower than in previous versions, this is fixed. ● Grasshopper preview geometry would be visible in OGL Material previews, this is fixed. ● Pipes would often be inside-out, this appears to be fixed. ● PullPoint did not work on boxes, this is fixed. ● The '&' symbol in the popup search box would insert an obsolete component, this is fixed. ● Concatenation component initialization strings were not properly parsed, this is fixed. ● Trim Solid did not remove faces inside the trimmer shapes, this is fixed. ● Mesh Edges were always drawn when meshes were inside a Geometry or Generic param, this is fixed. ● GrasshopperImageStitcher.exe would crash on large hi-res images, this is fixed. ● GrasshopperImageStitcher.exe would not have feedback in case things went south, this is fixed. ● Ampersands in Tab dropdowns were not visible, this is fixed. ● Data Viewer target cones were sometimes drawn without anti-aliasing, this is fixed. ● Image Gallery would something crash when images were being accessed from two different threads, this is fixed. ● There were typos in the Quadrangulate component, these are fixed. ● Random Reduce has a much faster algorithm, though the result will not be the same as before. ● VB and C# script components would take a long time to show large scripts, this is fixed. ● Grasshopper font picker would not jump to the currently selected font, this is fixed. ● Thumbnail document previews now have a single background colour to improve readability. ● Pull Point would return nonsensical values if all pull operations failed, this is fixed. ● CS1702 compiler warning was only ignored if the error message was in English, this is fixed. ● Vector Display components would still draw previews if they were disabled, this is fixed. ● The Plane output for the [Is Planar] component could be far away from the surface, this is fixed. ● Outputting a Rhino.Geometry.Matrix with a single row or column would not work in a script, this is fixed. ● Unitizing Vector Parameters would affect upstream parameters, this is fixed. ● Non case-sensitive string matching would not work if neither a regex nor a pattern were provided. This is fixed. ● Clusters would skip iterations when an input value was null. This is fixed. ● Clusters referencing files in non-exitent folders would not deserialize, this is fixed. ● Dial Knob would crash the display if the user filter was not a valid formatting string. This is fixed. ● Planar Srf (now called Boundary Surface) created trimmed surfaces even when it didn't have to, this is fixed. ● Undo records associated with components would not automaticall recompute input parameters, this is fixed. ● Tabbing through text fields in the Author Preferences did not work, this is fixed. ● "as list" and "as tree" parameter tooltip suffixes were shown even for floating parameters, this is fixed. ● Non-Uniform scaling transformations would not format correctly, this is fixed.
Not all reported bugs have been fixed incidentally, hopefully we'll get around to them in due time.
--
David Rutten
david@mcneel.com
Poprad, Slovakia
…
ly has finally metamorphosed to have all known major bugs fixed and is ready to be used by a larger number of people in our community.
Butterfly is powered by OpenFOAM, which is a validated and open-source engine for Computational Fluid Dynamics (CFD). Primarily, Butterfly assists with exporting geometry and other input parameters from the CAD + scripting interface to the OpenFOAM engine. The Grasshopper plugin supports live results visualization that updates as the CFD simulation iterates. The Dynamo plugin supports results visualization once the analysis is over or paused.
For installation instructions and guidance on getting started, check out the Butterfly wiki page. There, you can find step-by-step installation directions and tutorial videos. There also 3 YouTube playlists for getting you started with installing OpenFOAM for Windows and using Butterfly for Grasshopper and Butterfly for Dynamo.
Similar to other ladybug tools, Butterfly uses an external validated engine (in this case, OpenFOAM) and you need to install it first to get the insect up-and-running. However, unlike Radiance and EnergyPlus, OpenFOAM doesn’t have a native installation for Windows and it requires Linux to run. Accordingly, the current version of “OpenFOAM for Windows” uses a technology called docker to run a Linux virtual machine on your system, inside which OpenFOAM operates. While this sounds complicated, the good news is that all of this setup has been packaged into the installer for “OpenFOAM for Windows.” So running this installer with all its defaults should give you everything you need.
The bad news is that the installation can fail if you don’t check your Windows system properly beforehand or don’t follow every step carefully afterwards. You will also need to run Rhino, Revit, and OpenFOAM as an administrator to ensure Butterfly works properly (by right-clicking each launcher for the program and selecting “Run As Administrator"). This said, if you follow the steps carefully, you should have no issues with the installation. You can find some of the issues that people faced during the alpha testing and the solutions to them here.
Butterfly is the first plugin that is fully developed based on the structure that I discussed before which consists of a core library and [+] libraries for specific software (in this case Grasshopper and Dynamo). We hope this structure to extend ladybug tools to more platforms by re-using the current code. We will provide a better documentation with more details on this matter in the near future but for now you can use the API for butterfly, butterfly_grasshopper and butterfly_dynamo for customizing or extending the current development.
Finally, having access to a powerful CFD engine from inside parametric/generative modeling environments is a great power and as Spider-Man or Uncle Ben once said:
“with great power comes great responsibility!”
We believe in learning by doing and we don’t expect you to be a CFD expert to get started with butterfly however we expect you to educate yourself along the way. If you have never used OpenFOAM before here is a great presentation to get started. We also highly recommend checking out the official OpenFOAM User Guide that goes through most of its functionality. Finally, we have also collected a number of other learning resources on this page that can be a good starting point.
We understand that you will have questions about the plugins which you can post to this forum or Dynamo discussion forum however CFD related issues and questions should be posted to CFD Online.
I like to thank everyone who have helped us with the development and testing during the last year or so, and special thank to Theodore who single-handedly educated me through the process of migrating to OpenFOAM and developing butterfly. Butterfly wasn’t possible without Theodore!
As always let us know about your comments and suggestions.
Happy flying the butterfly! Happy Spring!
…
This blog post is a rough approximation of the lecture I gave at the AAG10 conference in Vienna on September 21st 2010. Naturally it will be quite a different experience as the medium is quite…
Added by David Rutten at 3:27pm on September 24, 2010