This definition is designed for an outdoor study (an indoor example will follow shortly). It also includes a hopefully more user friendly UI that allows the user to set all the necessary inputs for the simulation and run the case without using the actual GH definition.
To use this example to its full extent, along with Butterfly (details on installations can be found here https://github.com/mostaphaRoudsari/Butterfly/wiki/Getting-Started-with-butterfly) you will also need the HumanUI tools (http://www.food4rhino.com/project/human-ui?ufh). However, HUI isn't necessary if you are only interested in the BF part of the definition which will still run.
Butterfly, and the example itself, is still a work in progress. I hope it can inspire people to get involved, test things out, and help it improve!
Kind regards,
Theodore.
P.S.: Add the path of the attached butterfly logo's location in your computer in the definition for a more buggy feeling :)
…
intersection-elements (01/AA etc)
To get a result from RInt i do have to flatten the first set and do have to graft the second. Therefore i can only retrieve the parent-information from the second set.
I hope i could explain my problem and somebody has an easy solution on hand...
Best regards,
Heiko
PS. ObjAtts in the attached files is from human…
Added by Heiko Wöhrle at 10:11am on October 27, 2016
ty lots as extrusions with their height depending on perimeter length. Then I added a 'Cull Duplicates' group to avoid properties that had duplicate 'Area' centroid points. That reduced the number of properties from 364 down to 331, though five of those have 'Area' values between 88 and 205, ten have values less than 500 while the average is ~1.3 million!
So the data is still suspect. Some appear to be nested inside of others? But using those 331 properties, I now find 32 that intersect the 'Zoning Districts'. But that's not the same as a list of properties that span two or more 'Zoning Districts'... Not having fun anymore. :)
…
Added by Joseph Oster at 10:40am on January 14, 2016
ts. Ideally, I'd like to set the exact number of points populating the region, ie 211 in GH = 211 visible in rhino.
(I was able to achieve the exact number of points using populate2d instead of sdivide, but could only get this to work with a simple rectangular region)
2) After I have exactly 211 points, I'd like to populate each of the points with a block made in rhino (for example: the stick figure man seen in the view)
(One idea is that I build a dummy geometry and replace later with my block in rhino. But how do I make this change universally over the 211 points?)
…
basis" problem ... all of a sudden - quite recently - a girl posted the MITESIGF (Most Important Thread Even Seen In Grasshopper Forums). She doesn't even realized that: she's novice:
http://www.grasshopper3d.com/forum/topics/array-1
4. Why this MITESIGF is MITESIGF? For 2 reasons:
4.a: Wooden pairs (Beams) Profile Curves (belonging in some tree) MUST allow individual control on a per "item basis" (OK, that's obvious) - see Images posted in the thread. No attractor (or any other "global" policy) can cut the mustard here (to tell you the truth this happens in 99% of pure engineering cases, but they appear very rarely in GH Forums - if at all, mind). If the profile curves are defined with 5 points (or 9 for the double thing) we need "on-the-fly" control over this Array (like the radii in your Sphere Manipulator) :
4.b: Critical Bottom-to-Top issues arise: Create a "global" topology (call it "parent") - the beams - and then place real-life "components" (call them "childs") that affect (most probably) the "parent". OK, that's impossible to do with GH/Rhino (peace of cake with CATIA/Microstation) but you can "approximate" things up to a point. Alternatively: you can "trigger" some interest from GH/Rhino developers if they have any AEC market(s) in mind.
Topic 4.a requires the master-to-slave slider thingy (iterate over branches (index slider:master) > reset the 5 values (value slider:slave) > modify them on the fly > save > increase/decrease branch > ...).
Other than that my definitions are far more challenging than this simple case ... but ... anyway ... long is the path (and hilly).
more soon.
best, The Troll
…
Data matching is a problem without a clean solution. It occurs when a component has access to differently sized inputs. Imagine a component which creates line segments between points. It will have…
onsidered period.
Even if the end of July for the mediterranean climate is not the best period to perform an adaptive comfort analysis (it's just a pretest to define a LB model) I want to refine the Adaptive comfort Chart (AC) by changing the external air temperature data imported from the .epw file with that of monitored data as reported here below:
Where the monitored ext air temperature are in this form (green panel below):
I have used the comfortPar component to set the following parameters:
Adaptive chart as defined by EN 15251
90% of occupants comfortable
the prevailing outdoor temperature from a weighted running mean of the last week
fully conditioned space (even if it is not properly in line with AC as already discussed)
The question is this: the AC component could correctly apply the code below if there is only a list of external temperature data for a restricted period (without indication about the limits of this period) and not for an entire year?
else: #Calculate a running mean temperature. alpha = 0.8 divisor = 1 + alpha + math.pow(alpha,2) + math.pow(alpha,3) + math.pow(alpha,4) + math.pow(alpha,5) dividend = (sum(_prevailingOutdoorTemp[-24:-1] + [_prevailingOutdoorTemp[-1]])/24) + (alpha*(sum(_prevailingOutdoorTemp[-48:-24])/24)) + (math.pow(alpha,2)*(sum(_prevailingOutdoorTemp[-72:-48])/24)) + (math.pow(alpha,3)*(sum(_prevailingOutdoorTemp[-96:-72])/24)) + (math.pow(alpha,4)*(sum(_prevailingOutdoorTemp[-120:-96])/24)) + (math.pow(alpha,5)*(sum(_prevailingOutdoorTemp[-144:-120])/24)) startingTemp = dividend/divisor if startingTemp < 10: coldTimes.append(0) outdoorTemp = _prevailingOutdoorTemp[7:] startingMean = sum(outdoorTemp[:24])/24 dailyRunMeans = [startingTemp] dailyMeans = [startingMean] prevailTemp.extend(duplicateData([startingTemp], 24)) startHour = 24
…
phere with the maximum number of triangles but not much than a defined threshold.
I scaled that mesh just to fit Rhino grid, but it is not mandatory. What is useful, is to scale not uniformly the mesh (Scale NU). It could be done after cellular modifier applied or before or before and after. The 3 options are possible in the script. If you don’t need them just put 1 in scale sliders.
Ellipsoid mesh is the populated with points, I put 2 independents populations to randomize a bit further. For each vertices of the mesh the closest distance from the populated points is calculated.
Here is an illustration in color of this distance.
This distance is then used to calculate a bump. If domain for bump is beginning with negatives values to 0, it carves the mesh. Instead it bumps/inflates it.
Some images to illustrate the difference with populating 100 points with one or two populations.
Here some images to illustrate the application of scale before carving or after.
Next phase apply noise. At the moment I don't find it good.…