windows. I manage to have proper HBZones with RADMaterials and EPConstructions (I've run Daylight calculation on them successfully), but when I plug the zones to GrizzlyBear this error appears:
Solution exception:'EPZone' object has no attribute 'getCurrentLoads'
In addition, something similar happens when I plug these HBZones to the newest decomposeByType component, althought it works properly when plugged to the previous version of it. This is what the error says:
Solution exception:'hb_EPZoneSurface' object has no attribute 'BC'
Same thing with SetEPZoneConstruction:
Solution exception:'hb_EPZoneSurface' object has no attribute 'BCObject'
Any thought?
Ander…
the bubble diagram. This algorithm works by a set of attractive and repulsive forces (as in Equation 9) acting recursively on graph vertices, seeks a ‘relax’ situation for a graph, and reaches to a graph drawing. This tool is quite intuitive and shows in real-time bubble diagrams neatly according to the specified areas and the connectivity graph.
Equation 9
Attraction: 〖AF〗_ij=ka ∆x_ij for all linked (i,j)
Repulsion: 〖RF〗_ij=kr /x_ij for all (i,j)
The attraction/repulsion strength inputs are denoted as ka and kr
in the above equations. If some configuration is very messy, you need to have a high repulsion first to untangle it. I have not tried Angel's method but it is very similar to the method we have scripted for this component.
I hope this helps.
Best regards,
Pirouz…
o be less from a tool-centric perspective, and more often geared toward general platforms (like BIM, or "computational" design).
For papers, I would search Cumincad first, as it captures a great deal of history as well as more current research from the proceedings of the eCAADe and ACADIA family of conferences. There are thousands of articles there.
Robert Woodbury's "Elements of Parametric Design" is considered pretty foundational. Sean Ahlquist and Achim Menges also put together a good anthology a few years back called "Computational Design Thinking" that collects several texts that are in line with the ICD's interests in biomimesis and emergence. "Inside Smartgeometry" is a good combination of theory, historical reflection, and state-of-the-art and edited by Brady and Terri Peters.
But really there is so much out there! One of my favorite short papers is Tom Maver's "CAAD's Seven Deadly Sins" which was basically a keynote mic-drop at the 1995 CAAD Futures conference. I'll spoil the end for you:
"7 Failure to criticise: Above all we have failed to exercise our critical faculties in relation to almost all of the research and development carried out by ourselves and by our peers in recent years. There has been a cosy conspiracy in the community to condone, even encourage, selfindulgent speculation and solipsism - a thoroughly bad example to set for young people in the academic community.
Conclusion: Perhaps these criticism are unjustly hard. Hopefully CAAD Futures 95 will prove me wrong or at least provide the opportunity for discussion."
…
Added by David Stasiuk at 11:10am on August 25, 2015
tween them)
However its not possible (Well its very tricky) for me to go back to the original geometry and merge the perimeter and the core into one zone.
As a result I thought that adding internal glazing would do the trick. However apart from using the addGlazing component I couldn't see any other way of adding internal glazing to the core zone without exploding it and putting it back together. So I modified the Glazing based on Ratio component so that the internal walls of the core would automatically be 95% glazing.
After passing the core zone through the modified Glazing based on Ratio component and then passing all the HB zones through the Solve Adjacency component I ran the daylight simulation. However the result is not what you would expect it appears as though there are no internal windows. (See the picture).
So two questions.
1. Is there a better way to merge these zones for a daylight study without going back to the original geometry?
2. From the illuminance map it appears that no light is passing through the internal windows. Why is this the case? Should I create a material that is like air so that the light can effectively pass through and then use this material instead?
…
ple I have to drag it through a panel before I can use it as an input to my python script. The supports comes as a list of strings (see figure) and I want to extract some of that information (e.g. what nodes are fixed) and write that to my txt file.
I extract the info with these lines:
for row in Support: node = row[8:row.find(' DOF')] file.write(" %s,\n" % node)
print node
>> 95
If I however don't drag it via a panel i get the following output:
for row in Support: node = row[8:row.find(' DOF')] file.write(" %s,\n" % node)
print node
>> Supports.Suppor
It's like the script doesn't get that each row is a string.
I have the input set to "list access" and type hint to "str" and I've tried to simplifying and flatten the list.
Greatful for help…
st for the quality of the mesh.
Actually, convergence is much more than simply having low residuals. You can have a wrong solution with very low residuals. Usually, it is a combined process of both run time information on residuals and having an idea or expectation of what the simulation results should be. Another way of assessing convergence is if the residual values have been stable (within a very small limit, e.g. 1E-5) for more than a certain number of iterations (e.g. 1000). We are planning to provide run-time residual plots in Butterfly, hopefully soon. These plots can help keeping an eye on the solution.
You could try as a test if you want to switch to a blend of first and second order (by swapping upwind with linearUpwind in the fvSchemes)
.
Concerning mesh quality there are a number of ways, some of which are a bit advanced for this post and for BF's current capabilities. The best way to start is by refining the background mesh (i.e. the blockMesh). You can do that by assigning more cells to the x, y and z directions in the blockMesh component. However, make sure you increase the max global cells. I would suggest you monitor the output of the blockMesh in order to know the total number of cells there. Your max global cells has to be higher than that for SHM to even work. I'd suggest 2x to start with. Ofc all that requires a bit of trial and error depending on the case at hand.
Hope this helps!
Kind regards,
Theodore.…
nnot calculate (too many digits).
Or you want just to fill that space with random configuration and find some good for you?
Here's my first thoughts:
Again, as some other cases, iterative process.
(Conway's game of life, a cellular_automata-like process (?)... Install anemone.)
I would create 3 grids:
1 - grid of 100 values, cell's center points
these values can have more integer values like 0=free 1=occuped
2 - grid of 81 values, grid vertex points (excludig perimeter)
these values are where the center of 2x2 cells could be. 0=possible location 1=not possible location
3 - "grid" of 180 values, grid segment center, where 1x2 center could be
again 0 and 1
Then it's needed a "topology" between those 3 grids:
At each iteration those values updates each other by basing on placed cells and adjacent values.
At each iteration a new cell (random from A or B) is placed in a random possible location.
This is just my madness, and maybe I'm already far away from a result.
For sure a fasterst, simpler, smarter solution exists.…
rsity building with 81 thermal zones. I wanted to use this model on my master thesis, but I am afraid I won't be able. So I would really appreciate some help.
The purpose was to set different insulation thicknesses and glazing types depending on the orientation. Therefore I created every zone by using "createHBsrfs" components. At the same time different zones would have different "building programs".
I created all the zones, I added windows as "child surfaces" for every zone. And I created the adjacencies. No errors or whatsoever.
But from this point I cannot connect the model to any other component without GH being frozen. So although the model is correct maybe it is to heavy for the software, however I am not sure if that is the reason.
Is it stupid what I have done? Is there any easier way to accomplish my purpose?
Any thought or help will be much appreciated.
I attach the GH file.
Thank you,
Eduard
Version: HB 0.0.59 / LB 0.0.62…
answer further on Friday.
The "ghdoc" variable and rhinoscriptsyntaxThe ghdoc variable is provided by the component if you select it as "target".You might ask yourself: "why do we need it"?Its use comes from the very design of the established RhinoScript library. This library is imperative, which means it is build from a set of procedures or functions that act on various geometrical types. Additionally, there is one level of indirection: most of the time, the user does not work with the geometry itself in the variable, but rather with Guid of geometry that is present in a document. This is exactly what ghdoc is: it is the document that the RhinoScript library always implicitly targets with all AddSomething() calls (for example, AddLine()).
Based on this comment...RhinoScript use within GhPython may be less idealThat comment is from a previous version of this component that did not have the ghdoc yet.With the ghdoc variable, the standard Rhino document target of RhinoScript is replaced, therefore we can use Grasshopper while leaving the Rhino document unchanged. This saves uncountable Undo's, and makes it easy to structure ideas through the definition graph
...is the rhinoscriptsyntax target irrelevant if using solely RhinoCommon classesYes. If you create class instances (objects), you will need to create also your own collection objects to store them (mostly lists, trees). You can imagine the ghdoc as being an alternative to them, just that you do not access data by index (number), but by Guid. So you can use the RhinoScript or the RhinoCommon libraries independently or mix them. The RhinoScript implementation in Rhino is open-source and is all written in RhinoCommon. Also the ghdoc implementation is open-source, and is here.
RhinoScript and/or RhinoCommon objects which are not recognized as valid Grasshopper geometryYes, sure, Grasshopper handles only a portion of all available types. Basically, unhandled types are all the types that do not exists in the 'Params' tab. For example, there is no textdot and no leader, so on line 149 there is a throw statement and all TextDot calls (about line 350) are commented out. When/if Grasshopper one day will support these types, these calls will be implemented.
DataTreeHere is a small sample. However, I think that 80% of the times it is not necessary to program for DataTrees, as the logic itself can be applied per-list and Grasshopper handles list-iteration.
I hope this helps,
- Giulio_______________giulio@mcneel.comMcNeel Europe…
n make it possible to Motivation generate
a variety of interesting objects, from abstract fractals to plant-like
branching structures, their modeling power is quite limited. A major
problem can be traced to the reduction of all lines to integer multiples
of the unit segment. As a result, even such a simple figure as an
isosceles right-angled triangle cannot be traced exactly, since the ratio
of its hypotenuse length to the length of a side is expressed by the irrational
number √2. Rational approximation of line length provides only
a limited solution, because the unit step must be the smallest common
1
1
√2
denominator of all line lengths in the modeled structure. Consequently,
the representation of a simple plant module, such as an internode, may
require a large number of symbols. The same argument applies to angles.
Problems become even more pronounced while simulating changes
to the modeled structure over time, since some growth functions cannot
be expressed conveniently using L-systems. Generally, it is difficult
1.10. Parametric L-systems 41
to capture continuous phenomena, since the obvious technique of discretizing
continuous values may require a large number of quantization
levels, yielding L-systems with hundreds of symbols and productions.
Consequently, model specification becomes difficult, and the mathematical
beauty of L-systems is lost.
In order to solve similar problems, Lindenmayer proposed that numerical
parameters be associated with L-system symbols [83]. He illustrated
this idea by referring to the continuous development of branching
structures and diffusion of chemical compounds in a nonbranching filament
of Anabaena catenula.
The following is an example of its application:
starting string: A
p1: A F(1)[+A][-A]
P2: F(s) F(s*R)
which I think is basically trying to say
F(s) = move forwar a step of length s > 0.
Thanks again,
Mateo…