h all the documentation and code samples I can find. I'm running the latest build of Rhino 5, 64-bit, with the latest Grasshopper plugin installed.
To get the Grasshopper plugin object, I call the following:
dynamic gh = RhinoApp.GetPlugInObject("Grasshopper");
My code then uses the plugin object instance to open a Grasshopper project file, bind data to parameters, run the solver and bake the resulting data. No problem (well, no problem after I spent a couple of hours trying to guess the method names and parameters exposed by Grasshopper plugin object....)
I'm a software engineer and despise the lack of strongly-typed variables at design time so I figured there must be a better way...
At runtime, I see that the dynamic plugin object is actually an instance of Grasshopper.Plugin.GH_RhinoScriptInterface. So I added a reference to the Grashopper assembly to my plugin project and tried doing a cast of the dynamic gh variable to a GH_RhinoScriptInterface instance like this:
Grasshopper.Plugin.GH_RhinoScriptInterface ghInterface = gh as Grasshopper.Plugin.GH_RhinoScriptInterface;
However, after adding just this one single line of code without changing anything else (i.e., my code still references the dynamic gh variable everywhere), I get an error about a bunch of "Unrecognized Objects" when I call gh.OpenDocument():
No idea what I might be doing wrong, but this sure seems like something that should work correctly.
…
ask for some help and I sent the def to someone who tested the def out and made it work and send it right back to me and I got the same error I realized something wasnt right.
here some images of what the def does
Flat hexagonal panels over a given surface.
I get errors with the sliders and the VB script. Original script by Luis Fraguada from LAN then Davide del Giudice/ from madeincalifornia Checked out the definition because I have almost no knowledge with scripting and he made it work and sent those images back to me and this definition fixed, wich doesnt work on my computer and here some images of the problem.
and here some images of the problem.
…
ntroduces a set of components for creating angular and distance dimensions. These components are not entirely finished yet, especially baking is still a bit rough in places. Also note that a new Tab has been added and some components have been moved from their old position into this new tab.
GH1 Beta 5 was never officially released, though it was the default download for a while. Look in the Grasshopper Version History for a detailed list of changes over time.
List of changes:
A new Display tab has been created for components that show stuff, rather than do stuff.
[Blend Colours] component has been hidden, we recommend [Interpolate Data] instead.
[Point List] and [Point Order] components have superceded the original [Point List] component.
[List Item] retrieval performance is now much better for large amounts of indices.
Added [Linear Dimension] component (Display.Dimensions panel).
Added [Aligned Dimension] component (Display.Dimensions panel).
Added [Line Dimension] component (Display.Dimensions panel).
Added [Marker Dimension] component (Display.Dimensions panel).
Added [Angular Dimension] component (Display.Dimensions panel).
Added [Arc Dimension] component (Display.Dimensions panel).
Added [Circular Dimension] component (Display.Dimensions dropdown).
Added [Serial Dimemension] component (Display.Dimensions dropdown).
Scribble objects no longer rotate by default when dragged.
Scribble objects can now be realistically dragged by holding SHIFT.
Fixes:
Persistent Data stored in generic parameters would sometimes fail to deserialize, this is fixed.
--
David Rutten
david@mcneel.com…
enerated their 3d shapes, but couldn't find what some of their types are:
This happens due to lack of Openstreetmap.org data attached to that building geometry. This data is called a "tag". A tag consist of two items connected with = character.
For example, an office building would have the following tag: building=office. Residential building tag would be: building=residential Ambulance station: emergency=ambulance_station The building, with 10 stories/floors would have a tag: building:levels=10
If you know that some building is an office building, a residential building, an ambulance station or anything other than that, you can tag that building by yourself. This is the beauty of the Open street map: any user with internet connection can add the content to the Open street map for free! Once you add the content (a tag/tags) Gismo would instantly be able to use it! Like this:
Here is a 5 minute tutorial on how to add a tag to a specific building at Openstreetmap.org.
Warning: adding tags and geometry to Openstreetmap.org is highly addictive activity! Use at your own risk!…
Added by djordje to Gismo at 4:55pm on May 9, 2017
and I here is what I have to share:
Thanks! Thank you for being awesome! When I released Ladybug two years ago I could never imagine how this project will take over my life! It has been such an invaluable experience for me so far and it wasn’t possible without you - so thank you so much.
What’s next? Recently I get this question more and more and here is my fairly long answer! Chris is pushing the boundaries with comfort tools. Chien Si is working on HVAC systems integration. Chris, Anton and Alejandra will figure out how to effectively get natural ventilation to be modeled. Patrick, Sandeep, Michal and Boris are working on their developments. I’m working on getting 3 Phase method integrated, and Butterfly will be out at some point, but... they are not going to be what makes the next step. The next step is up to you. It is what you will do with the development. So go ahead and let us know what’s next!
If you can help someone on the group please do! Doing so you are not only helping another person (and potentially yourself) but also the developers. The more you can help each other here the more we will have time for development and documentation.
Best place to send your questions is this group. If you are using the latest version from github then you may want to sent it to github. Please consider emails as the last option. Go back to number 3 again! Thanks.
Don’t be nice to us! Well, I mean don’t just be nice to us. I love your nice comments like anybody else and please keep them coming ;) but what we also need next to nice comments is your critiques, wishes and insight. I feel that recently we are getting less wishes and critiques than what it used to be. You can post them here in the group or on github and either way we will know about it. Thank you to all of you who has already done this.
Thanks again! Before I let you go I want to specially thank all of you who contributed to the project by your development, thoughts and support. You are great and I can’t thank you enough.
David Weinberger in his book “Too Big to Know” says: “When an expert network is functioning as its best, the smartest person in the room is the room itself.” Reading some of the discussions on the group gives me the feeling of staying inside a smart room. Thank you and let’s keep the room growing!
Cheers,
Mostapha
PS: To avoid sending another post, I just post the updates about the two upcoming workshops here:
I will lead a workshop in LA next Friday (Feb. 6) and there is still few seats left. If you want to learn more about energy and daylighting simulation with Honeybee here is your chance. Here is more information who to register: (http://www.facadesplus.com/technology-workshops/).
Chris will lead a 3 days intense and comprehensive Ladybug and Honeybee workshop in Mexico City this March. You have probably watched Chris’s tutorials and already know what you can expect from a workshop with Chris so I don’t have to speak for that! I would take this workshop if I was around that area. If you are around Mexico City or know a friend who might be interested please let them know. Here is more information about the workshop: (https://www.facebook.com/LadyBugforGrasshopper/photos/a.442320969114095.107084.413910668621792/919318878080966).
…
, low/high bounds etc):
Then I usually go to monthly analysis where I simply animate a slider from 1 to 12 and export hi-res png images. Problem here is that radiation rose scales up and down for each month differently and I can't find a way to control it, in the end I get a consistent background with inconsistent rad rose.
In fact, annual study produce such a huge rose that I had to scale it down with factor of 0.3, after which monthly roses were tiny:
So in order for them to look somewhat close to the intended size I had to rescale them up 400%, here it is easier to notice size inconsistency (look at the text's position):
I understand that the size somehow correlates to radiation amount, I would like to ask our kind and awesome developers to add consistency not only to rad rose but anywhere where it is absent. Something like wind rose's maxFrequency, super awesome feature, just look at these sexy graphs, they are all the same size, beautiful, mmmmm XD:
…
and where the decimal place should be.
The reason it only shows the first 5 numbers that make up 1,000,000 is because anything smaller than 100 is considered insignificant when talking about 1 million. Think of it like this if 1 million represents an Olympic size swimming pool then 10 would represent the volume of a full tank of petrol for an average family car. You would have to stand there for an extremely long time to fill up the pool from a petrol pump.
It's important to know that these insignificant digits are still there for the purpose of calculations but are just not being displayed.
There are times when you may want to display these numbers in a format that makes more sense, for these occasions we can use the Format() function.
Format() Function
For versions BEFORE 0.9.0001 the VB Format Function is available through the Expression Components found on the Math Tab > Script Panel
Either by using the F input* or the Expressions Editor found on the Context Menu you can apply a format mask to the x input.
* except FxN
Anatomy of the formatting function above:
Format(..............................) <-- VB function
Format("........................."....) <-- Display String
Format("{0....................}"....) <-- Place Holder for first variable
Format("{0:0.000000000}"...) <-- Format Mask for 9 decimal places
Format("{0:0.000000000}", x) <-- Variable
This can be applied to points and their components:
For versions AFTER 0.9.0001 there is a dedicated Format Component or you can use the Expressions Components successor Evaluate.
For more information on the tags used in the Format Function see these links.
Standard formatting tags Custom formatting tags
WARNING:
If you format a number to be displayed in this way it becomes a string and will no longer have the complete Real number available for calculations. Always use the input to the format function for further requirements in calculations.…
tives for low-dimensional, or highly continuous problems. Having a somewhat faster way to trigger a galapagos run would also be beneficial."
I found a post on the 'hoopsnake/forum' describing the very same problem I am trying to solve, and looked into using HoopSnake (without satisfaction so far):
Double loop and hydrostatics?
I don't want to wait until G2 so will re-state some of what I posted earlier, then offer a template for an ideal "fast solver" component ('B-Solve') that could be widely useful. I am ready to accept that it might be written in Python, C, or VB - as long as it's open source or built in to standard GH. If there is a GH plugin that will do this, I'd like to know that too, though prefer a lightweight solution rather than a big toolbox.
QUESTION: Is there a FAST (binary search speed) GH way to "solve" toward a goal by "moving" a single slider?
CONTEXT: I have a boat hull of a given displacement at rest. I rotate the hull to an arbitrary angle ("heel" caused by wind in the sails) and want to adjust a 'Z-offset' slider so the displacement is the same as it was at rest.
I can adjust the slider manually, zooming in for better control, and with a dozen tries or so, in a very short time, narrow in with a binary search method and get very close to matching the value.
When I hook up Galapagos, it runs on and on forever, trying values that are "obviously" further away instead of closer to the goal. When I can solve it manually faster than Galapagos, a different solution is needed.
OBJECTIVE:
I want a FAST solution that doesn't need any manual input. Ideally, it would respond like any other component and re-calc whenever its inputs changed. At worst, a 'start/reset' trigger, "soft input" so it can be used inside a cluster.
It doesn't need to control a slider, they just happen to be handy for defining a range and precision of values.
Using Galapagos: HydroSolve_2015_Sep8a.gh (attached)
An extremely stripped down version of the problem using Grasshopper.
NOTE: One obvious problem here is that by using absolute value ('abs()') for the 'difference' here, Galapagos doesn't know whether it's too high or too low!
Instructions:
Start with 'Roll=0', 'Volume=1543.943'
Adjust 'Roll' to ~35 degrees
"Solve" 'Z-offset' value to return to 'target' (original) volume of 1543.943
Using 'B-Solve': HydroSolve_2015_Sep8b.gh (attached)
'B-Solve' is the proposed fast solver component. Its 'solution' output is always in the range of zero to one, which is remapped by the green group as -5 to 5 and used as the 'Z-offset' for 'Pitch-Roll-Z'.
Starting value ('Reset') for 'solution' is 0.5, and 'B-Solve' tries different 'solution' values to make 'result' (the 'Volume') and 'goal' match. An efficient uphill(?) or binary searcher could be very fast.
Does this sound feasible? Can anyone implement 'B-Solve'?
Two at once?
The post noted earlier, Double loop and hydrostatics?, brings up a complication that's worth considering from the start... Depending on hull shape, the center of buoyancy may move fore and aft, away from the center of gravity, as the hull rolls. This induces a change in pitch so a second 'B-Solve' component could be used in the same model to adjust pitch, which of course changes 'Volume' again... Not quite sure how the two would get along?
Thanks.
Note: the hull in these examples is a really poor shape!…
Added by Joseph Oster at 1:30pm on September 9, 2015
hat, in accordance with this stable release, I have posted an updated version of this outdoor microclimate map example to the same link:
http://hydrashare.github.io/hydra/viewer?owner=chriswmackey&fork=hydra_2&id=Outdoor_Microclimate_Map
1. You will see that, in the new file, I now have a single component that is able to turn a zone into a "ground zone" (similar to a plenum). To clarify, both the plenum and ground zone components set all of the loads of the zone to 0 (no internal heat gain). So this means that any of the characteristics of the default office program will be negated. From your comments, Grasshope, it seems that you understand that the reason why I have a ground zone defined in this model is to account for the variation in ground surface temperatures that can occur with different objects casting shade onto the ground. Therefore, the key property that defines this zone is the construction of the top surfaces, which is now changed based on a number that you input into the Ground Zone component.
2. You are correct in understanding the need for both "set zone construction" components in the old file. Because of the zone's position below the Rhino model origin, the walls and floor are defined as underground surfaces and so I need the extra "Set EP Ground Construction" component. Admittedly, the constructions on the underground surfaces should have a minimal effect on the modeling of the surface temperature above the zone (the roof construction is most important) but it made sense to me that results would be more accurate by setting all of the constructions of the zone to the ground material. The current Ground Zone component ensures that all surfaces of the zone are assigned the ground material construction. It also ensures that all walls and floor surfaces have a ground boundary condition regardless of where they sit in relation to the rhino model origin.
3. The distFromFlrOrSrf input can take either a number representing the distance from the floor of zones at which you would like to build a microclimate map or any surface on which you would like to see temperature variation. So the input is flexible and allow you to both build micro-climate maps quickly or take a longer time building them with more customization. For a visual of what you can do by inputting surfaces into this component, see this thermal animation of a section through a building that I designed for my thesis:
https://www.youtube.com/watch?v=WJz1Eojph8E&list=PLruLh1AdY-Sj3ehUTSfKa1IHPSiuJU52A&index=3
For an example of a file using a numerical input for the microclimate map, see here:
http://hydrashare.github.io/hydra/viewer?owner=chriswmackey&fork=hydra_2&id=Indoor_Microclimate_Map
4. The component has since been renamed (sometime in early July) to be called "Honeybee_Microclimate Map Analysis". Originally, I developed the component to help me understand thermal diversity within zones but realized after building it out that the same method could be used to give deeper understandings of the outdoor environment. So, at present, it can do both indoor and outdoor microclimate maps. The only shortcoming at present is that the outdoor microclimate map uses EnergyPlus's oversimplified means of accounting for outdoor wind (a simple wind profile that does nto account for obstructions). This shortcoming will be addressed once the first stable release of butterfly is out or I manage to work in components into LB that use the botlzman lattice particle collision method to approximate outdoor wind speeds. Other than this shortcoming, you can trust that all results you are getting from these components are to a high degree of accuracy (meaning that all air temperature and MRT values are accurate).
5. Thanks for pointing this out. This is a mistake in my labeling of the file names and I will fix this before the end of today. When you use the workflow with the PMV recipe, these values are actual PMV/PPD values. When you use the Adaptive comfort recipe, these values are "degrees from neutral temperature" and "Comfortable Or Not" values. When you use the workflow with the UTCI recipe, these values are also "degrees from neutral temperature" and "Comfortable Or Not" values but they are different for UTCI than they are for the adaptive model. Specifically, the neutral temperature and comfort zone for UTCI is defined to be the same as it is in this publication:
https://www.ipma.pt/en/enciclopedia/amb.atmosfera/index.bioclima/index.html?page=utci.xml
Hope this helps and let me know if you have any more questions,
-Chris…