Loop'. The fun part of the slower version is that you can see what it's doing while it's running. 'Fast Loop' gives no indication that it's working, so you want to test it with small numbers and be sure it's coded properly before bumping the iteration count up.
The GH profiler running the slow version showed between 1 and 1.5 seconds per loop, but the reality was more like ~10 seconds per loop toward the end of an 11 X 11 grid, or ~20 minutes total. It's easier to be patient because you know it's working.
The 'Fast Loop' finished the same grid in 1.6 minutes! An impressive improvement. I've been running it on a 30 X 30 grid (900 points) for ~23 minutes so far and see nothing yet. Not the ~12 minutes I had hoped for... Now 36 minutes on this loop for 900 points... hope it's not stuck. Not fast! Later - DONE!! Profiler says 59 minutes for 900 points but it was more like an hour and twenty minutes total. It succeeded, I have a single 'Closed Brep' from 900 extruded rings, baked to Rhino.
Another strategy to explore would be doing 'SUnion' on a smaller grid using the Anemone loop, then replicate it by moving it as needed to form a larger grid; then run the copies through another 'SUnion' loop. I went ahead and implemented that while waiting. It works and is fast! Started with 3 X 3 and ran the result again as 5 X 5 (9 X 25 = 225 total) in barely ~70 seconds!? Trying 36 X 36 now... 1,296 points appears to have succeeded in less than ten minutes! Though it seems to take quite awhile after the loop ends before control is restored to GH/Rhino. I'll let you do your own experiments and benchmarks.
I encapsulated the loop in a cluster called 'suLoop' (blue groups).
Internal of 'suLoop' cluster:
…
Added by Joseph Oster at 11:14pm on March 22, 2017
y part of existing files, you typically mark the old component as [Obsolete]* and write an entirely new component which has the changes. This allows you to open old files and have them work in the same way as before, by loading the obsolete component instead of the current one. You can then choose to add an automatic upgrader which is a class which knows how to replace an obsolete component with an updated version in situ. You can load all upgraders via the Solution->Upgrade Components... menu.
An upgrader is a class which implements the IGH_UpgradeObject interface. There's also a GH_UpgradeUtil class which provides some useful static methods for doing common upgrade stuff. For example, here's the upgrader for the [Polygon Centre] component:
public class Upgrade_PolygonCenterComponent : IGH_UpgradeObject { public Guid UpgradeFrom { get { return new Guid("{7BD7B551-CA79-4f01-B95A-7E9AB876F24D}"); } } public Guid UpgradeTo { get { return new Guid("{87E7F480-14DC-4478-B1E6-2B8B035D9EDC}"); } } public DateTime Version { get { return new DateTime(2011, 12, 7, 16, 30, 00); } } public IGH_DocumentObject Upgrade(IGH_DocumentObject target, GH_Document document) { IGH_Component component = target as IGH_Component; if (component == null) { return null; }
IGH_Component upgradedComponent = GH_UpgradeUtil.SwapComponents(component, UpgradeTo); Grasshopper.Kernel.Parameters.Param_Point extraParameter = new Grasshopper.Kernel.Parameters.Param_Point(); extraParameter.Name = "Center(E)"; extraParameter.NickName = "Ce"; extraParameter.Description = "Average of polyline edges"; upgradedComponent.Params.RegisterOutputParam(extraParameter);
return upgradedComponent; } }
* This can be done either by adding the string "OBSOLETE" to the component class name, or by adding the [Obsolete] attribute to the component. Do note you have to change the exposure to Hidden, otherwise the obsolete component will still show up on the panels.…
Added by David Rutten at 9:36am on October 21, 2017
low link. We hope to see you next month.
http://modelab.nu/?p=2283
Parametric Design Workshop | NYC | February 2010
Description:
This workshop will engage the conceptual and technical domain of parametric design by introducing participants to systemic processes capable of registering and responding to a range of diverse ecologic criteria. Emphasis will be placed on workflows that utilize constraint-based design, associative modeling techniques, and environmental influencers to discover novel and inventive design solutions.
Rhino, in conjunction with the parametric modeling plug-in Grasshopper, offers the possibility to explore parametric and computational design with unprecedented fluidity. Leveraging this capacity, we have structured this workshop around a series of architectural design strategies with supporting content to foster a fast-paced and productive learning environment.
As part of a larger online infrastructure, modeLab, this collection of Strategies, Primers, and Utilities provides workshop participants with continued support and knowledge to draw upon for future learning.
Attendance will be capped at 12 to provide each participant maximum dedicated time with instructors.
Details :
Instructors | Ronnie Parsons + Gil Akos | Partners, Studio Mode.
All experience levels are welcome.
All participants are required to bring their own laptops. Trial software will be made available.
Registration Pricing (limited enrollment) : $550.
Workshop Location : Gansevoort Studio | Meatpacking District, Manhattan.
Workshop Hours : 10AM-6PM.
Infrastructure:
modeLab Workbook | Printed + PDF Documentation
modeLab Exercises | Annotated Pre- and Post-Exercise GHX Files
modeLab Primers | Annotated Primer GHX Files
modeLab Strategies | Annotated Parametric Strategy GHX Files
modeLab Utilities | Custom Parametric Design Workflow Utility GHX Files
modeLab ModeTools | Custom Plug-In Add-On GHA Files
Topics:
Parametric Design Logics
Computational Geometry
Visualizing Data
Novel + Generative Design Strategies
Modularity + Recombination
Pressures + Influencers
Geometric + Spatial Analysis
Documentation + Fabrication
Cross-Platform Communication
Dates :
2010.January.06 | Workshop Announced + Registration Opens.
2010.February.20 | Registration Closes.
2010.February.27 | Workshop Begins.…
pp, meant for manufacturing domain):
And from there I also exported to 3ds Max for some quick rendering:
Recently I decided to re-model it with GH (the main structure), just for fun:
Which took 12 hours.
Granted, I didn't take it to the same level of detail (the GH version is missing decking and rear screens), which would probably be a few more hours.
Also, the GH def is messier than what I am used to doing.
Nonetheless, my first curiosity was simply how long it would take to re-do.
It's an odd comparison, but at the end I felt it was an interesting exercise.
Modeling efficiency is not a topic discussed that often here, any comments?…
Added by Santiago Diaz at 11:23pm on February 22, 2011
ells new products like the Firefly Interactive Prototyping Shield which mounts on top of your Arduino Uno and provides access to a number of useful input (ie. sensors) and output (ie. motors) devices. It includes features like:
Three linear slide potentiometers connected to analog pins 0, 1, and 2
Two-axis joystick connected to analog pins 3 and 4
Light sensor (photocell) connected to analog pin 5
Three push buttons connected to digital pins 2, 4, and 7
Red LED connected to digital pin 13
RGB LED connected to digital pins 3, 5, and 6
Two servo connections on digital pins 8 and 9
A connection to the Easy Stepper Driver (co-designed by Sparkfun Electronics and Brian Schmalz) to control stepper motors. The direction of the motor is controlled through digital pin 10 and the number of steps through digital pin 12
High-voltage MOSFET circuit capable of driving lights, valves, DC motors, solenoids, or anything else requiring higher voltage or current. The gate of the MOSFET is connected to digital pin 11 (PWM).
Some come take a look and let us know what you think!
…
know how to solve.
It appears in
11 - Honeybee Energy Modeling - The Laws of Geometry in E+ Part 3: Curved Geometry
where I need to retrieve .idf file,
and shows this message:
1. Solution exception:'hb_EPZoneSurface' object has no attribute 'punchedGeometry'
I've added .gh file at a state where I meet the problem.
Also, I've looked around the forum and found some mention OpeanStudio related problems, mainly one's lack of it. Could it be the source of the problem, because I only followed Installation Instructions and haven't installed OpenStudio.
…
, 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:
…
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…
ger at the scale of rooms, walls and atria, but that of cells, grains and vapour droplets. Rather than the flow of people, services, or construction schedules, the focus becomes the flow of light, vapour, molecular vibrations and growth schedules: design from the inside out.
The sg2012 challenge, Material Intensities, is intended to dissolve our notion of the built environment as inert constructions enclosing physically sealed spaces. Spaces and boundaries are abundant with vibration, fluctuating intensities, shifting gradients and flows. The materials that define them are in a continual state of becoming: a dance of energy and information.Material potential is defined by multiple properties: acoustical, chemical, electrical, environmental, magnetic, manufacturing, mechanical, optical, radiological, sensorial, and thermal. The challenge for sg2012 Material Intensities is to consider material economy when creating environments, micro-climates and contexts congenial for social interaction, activities and organisation. This challenge calls for design innovation and dialogue between disciplines and responsibilities.sg2010 Working Prototypes strove to emancipate digital design from the hard drive by moving from the virtual to the actual in wrestling with the tangible world of physical fabrication. sg2011 Building the Invisible focused on informing digital design with real world data. sg2012 Material Intensities strives to energise our digital prototypes and infuse them with material behaviour. They have the potential to become rich simulations informed by the material dynamics, chemical composition, energy flows, force fields and environmental conditions that feed back into the design process.
More information can be found at http://www.smartgeometry.org
sg2012 take place at Rensselaer Polytechnic Institute, Troy, in upstate New York from 19-24 March 2012. The Workshop and Conference will be a gathering of the global community of innovators and pioneers in the fields of architecture, design and engineering.
The event will be in two parts, a four day Workshop 19-22 March, and a public conference beginning with Talkshop 23 March, followed by a Symposium 24 March. The event follows the format of the highly successful preceding events sg2010 Barcelona and sg2011 Copenhagen.…
ort and export from the images below and also from the HELP file of DB in attachments (Page 71: Importing Geometric Data; Page 78-80: Import 3 - D CAD Data). In their HELP file, they mention about "import geometric data".
However, regarding the input of schedules, loads, constructions and etc., DB normally uses "Component " and "Template" (Page 29: Templates And Components; Page 591: Templates; Page 533: Components). "Templates" are databases of typical generic data, including Activity templates, Construction templates, Glazing templates, Facade templates, HVAC templates, Location Templates, and etc. "Component " are databases of individual data items (e.g. a construction type, material, window pane).
Both "Component " and "Template" are allowed to be imported and exported by using "Import / Export library data" command (.ddf format - DB Database File; Page 734: Import Components/Templates, Export Components/Templates). DB also allows us to build up our own libraries of templates and components (Page 731: Library Management; Page 733: Template Library Management).
In order to import both geometric information and other information related to schedules, loads, constructions and etc. from GH to BD, we supposed the following two ways:
1. GH(HB+GB) --> gbXML (both geometric and "Component " and "Template" information) --> DB
This is the way we most prefer. We did see information related to schedules, loads, constructions encoded in the gbXML file generated by GB, but still do not know the reason why DB did not take this information (I also mentioned this in Q6 within the gh file). We assume this might because the gbXML file we create encodes the schedules based on a different template / schema than the one DB expects. We also post this question to the DB forum for help.
(http://www.designbuilder.co.uk/component/option,com_forum/Itemid,25/page,viewtopic/p,13755/#13755)
2. GH(HB+GB) --> gbXML (geometric information only) + .ddf ("Component " and "Template" information only) --> DB
If the first way doesn't work and DB only takes geometric information from the gbXML, then we might think of the other way - generating the .ddf files from GH(HB+GB) to pass the schedule, load and construction information to DB.
I was wondering if it is feasible for HB and GB to have this function? And what is your suggestion to achieve this?
In addition, we notice that DB can export XML files (not gbXML), so we are trying to figure out if DB also accepts / reads the XML file. If so, we might be able to convert the gbXML (with both geometric and schedule information) to XML. What do you think about that?
Thank you again for all your help!
Best,
Ding
DB import
DB export
Template libraries
Component libraries
…