nt document units is in MetersConversion to Meters will be applied = 1.000[1 of 8] Writing simulation parameters...Can't find ddy file next to the EPW.Extreme values from the weather file design will be used instead.[2 of 8] No context surfaces...[3 of 8] Writing geometry...[4 of 8] Writing Electric Load Center - Generator specifications ...[5 of 8] Writing materials and constructions...Runtime error (KeyNotFoundException): honeybee_ExtraConstrPropsTraceback: line 2152, in main, "<string>" line 2364, in script
In order to solve it, I followed the topic below:
http://www.grasshopper3d.com/group/ladybug/forum/topic/show?id=2985220%3ATopic%3A1601436&xg_source=msg
In my case I only ran into further troubles with IDF file and some message about missing ControlProgram in Objects.
I am uploading the gh file for you to see. PLS help me, I ran out of ideas.…
(http://www.food4rhino.com/app/quelea-agent-based-design-grasshopper) take like 40 seconds when the toggle activates to go from one end of the ramp to another.
With proximity 3d i'm analyzing each instance the agents are closer than x units. In picture 3 we can see that in 212 instances the agent are closer than those x units.
Finally all the genes that controll the ramps are connected to the G of octopus component and one of the conflicting objectives connected to the O of octopus component is the number of instance quelea agents get close.
So the thing I need is to iterate the ramps controling the genes with octopus but activating the boolean toggle (quelea run) each time the ramps are modified so the agents take 40 seconds to perambulate the environment, analyze the instance they get close and let octopus iterate again searching for a optimized environment.
…
stand everything so far but I will nevertheless try to give some feedback and then extend this list once oi gained more knowledge about it.
1) It would be nice if you could set and save a view vector for all models at the same time. that would make the comparison a lot easier because every model has different interesting views
2) Color could be helpful i think. Would it be possible to read the mesh vertex color values? If that not straight forward maybe the component could have another input which takes a list of colors for each mesh you input in the geometry input.
3) Is the closeness of two outcomes only computed by the closeness of the genes? Sometimes you have very ruff parameter spaces where a little shift in the genes can make quite big changes in the outcome. Would it be possible to compute closeness or similarity of two outcomes based on the outcome itself? For example compare the resulting meshes to each other?
4) It would be also great if you could replace a certain outcome with a solution that you manually generated by altering the sliders. That would be also a way to influence the direction.
5) I see that you are still working on the history. It would be great if one could use biomorpher as well to store you favorite versions of a definition. Something like a more advanced version of the state manager where you can also see the states and crossbreed them easily.
Best, Chris
…
complicated than it seems as I have an event and a subscriber method receiving data from a serial port.
In the code below, the strings received within myReceivedLines appear when connecting with the serial port (when connecttodevice is true). However they disapear when I launch another command (when homeallis true).
As you recommended in your reply, I have added the field called myReceivedLineswithin the class so that I could use the method String.Add() to all the feedback received and commands sent.
Why does the feedback dispear when a command is sent? Is the string going to myReceivedLine disappearing because they happen within a subscriber method or is it related to the DA.SetDataList() method used to assign myReceivedLinesto the output?
Many thanks!
public class SendToPrintComponent : GH_Component { //Fields List<string> myReceivedLines = new List<string>(); SerialPort port; //subscriber method for the port.DataReceived Event private void DataReceivedHandler(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { SerialPort sp = (SerialPort)sender; while (sp.BytesToRead > 0) { try { myReceivedLines.Add(sp.ReadLine()); } catch (TimeoutException) { break; } } } protected override void SolveInstance(IGH_DataAccess DA) { //Opening the port if (port == null) { string selectedportname = default(string); DA.GetData(1, ref selectedportname); int selectedbaudrate = default(int); DA.GetData(2, ref selectedbaudrate); //Assigning an object to the field within the SolveInstance method() port = new SerialPort(selectedportname, selectedbaudrate, Parity.None, 8, StopBits.One); //Enables the data terminal ready (dtr) signal during serial communication (handshaking) port.DtrEnable = true; port.WriteTimeout = 500; port.ReadTimeout = 500; } //Event Handling Method bool connecttodevice = default(bool); DA.GetData(3, ref connecttodevice); if (connecttodevice == true) { if (!port.IsOpen) { port.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler); DA.SetDataList(0, myReceivedLines); port.Open(); } } else if (port.IsOpen) { port.DataReceived -= new SerialDataReceivedEventHandler(DataReceivedHandler); port.Close(); } if (port.IsOpen) { DA.SetData(1, "Port Open"); } //If the port is open do all the rest if (port.IsOpen) { bool homeall = default(bool); DA.GetData(5, ref homeall); //Home all sends all the axis to the origin if (homeall == true) { port.Write("G28" + "\n"); myReceivedLines.Add("G28" + "\n"); DA.SetDataList(2, myReceivedLines); } } else { DA.SetData(1, "Port Closed"); } }}…
and 3d rapid prototyping using state of the art material simulation and optimisation. Participants will be guided through methods of advanced structural analysis and evolutionary algorithms implemented in Grasshopper, Karamba and Octopus in a 5 day workshop taught by Robert Vierlinger and Matthew Tam within the premises of the Academy of Fine Arts & Design in Bratislava, Slovakia. The workshop will cover the basics of setting up a karamba definition and more advanced form finding techniques with beams and shells through to preparing files for 3d printing and 2d documentation. For the Grasshopper newcomers there is a preparatory crash course on 20 July 2015 taught by Ján Pernecký. The workshop will be held entirely in English. VENUE Academy of Fine Arts and Design in Bratislava: VŠVU / AFAD, Hviezdoslavovo námestie 18, Bratislava, Slovakia ROOM 135 PRICING Early bird Student (until Jun 30, 2015) €320 Early bird Professional (until Jun 30, 2015) €380 Regular Student (from Jun 30, 2015) €400 Regular Professional (from Jun 30, 2015) €475 The fee covers only the tuition. Travel expenses, accommodation and food is to be covered by the participants. SCHEDULE Day 1 Lecture - Karamba in Projects from Competition to Construction Introduction to karamba - Setting up a basic karamba model Shells & Beams - Understanding the impact of load on geometries. Beams - Cross Section Optimization, Load Path Emergence Day 2 Extraction and Visualization of data from Karamba Complex Geometry - Processing of Free Forms for Karamba Force Flow - Understanding and Visualizing results on shells 3d Printing - Preparing geometries for rapid prototyping Day 3 Lecture - Form Finding in Karamba Isler Shells - Hanging Forms with karamba Shells - Shape Optimisation with Galapagos Trusses - Topology Optimization with Galapagos Columns - Positioning with Galapagos Multiobjective optimisation strategies with Octopus Day 4 Frequency Analysis & Non-Linear Analysis with Karamba Extraction and Visualization Part 2 BIS - Building Information Systems with karamba Day 5 Participant’s Examples and Topics Reviewing 3d Print Studies Large Complex Models Reviewing learn techniques and strategies Concluding lecture - public PARTNERS rese arch Academy of fine arts and design…
.
If the above are correct then I am afraid there is no solid answer, data matching (how to modify 2 groups of data so that they work together) can be done in many ways and no one is suitable for every case.
For example in the [move] component in your definition you have the G input receiving 27 lists with 54 lines each (1458 lines) and you want to move these lines in Z direction. Depending on how you want to move them it could make sense to have T input receiving:
a. One vector (this would move all the lines by this vector)
b. 54 vectors (this would move the first line of each list by the first vector, the second line of each list by the second vector, ...... , the last line of each list by the last vector)
c. 27 vectors grafted so that the paths match (this would move the first list of lines by the first vector, the second list of lines by the second vector, ...... , the last list of lines by the last vector)
d. 27 lists with 54 vectors each (1458 vectors). This way each line will move by the corresponding vector.
So, as you can see there is not a global solution.
In order to be able to decide how to format your data you must always be aware of what your existing data structure means. For example, in the above case, you have your lines in the format {A;B;}N. Now A has 6 values (0 to 5) which is the number of your original surfaces. B has various values because it is the number of edges that each surface had(deconstruct Brep component). Finally N (the number of items in each list) is 54 because you offseted each edge 54 times (offset component).
So in order to decide which of the above cases suits you best you must have these things in mind.
In general some useful components for data matching are: [tree statistics] [list length] [repeat data] [graft] [simplify] and [flatten] and of course many more, depending on the case...
But in order to use these properly you must first study about data trees and how they work.....
Hope this helped a bit and please post back if you need some help into a specific part of your definition.…
horas.
Los datos al contextualizar la fachada serán:
Vehículos (ISD: input social data)
Personas (ISD: input social data)
Edificaciones contiguas: (UI: urban input)
Sol (Radiación e iluminación): (EFI: energetic flow input)
Creación de energía solar y térmica: (ECI: energetic contribution input)
Objetivos específicos:
Cada asistente generará una fachada contextual a esos 5 inputs.
Entenderá la plataforma de Grasshopper
Comprenderá los conceptos de diseño generativo
Usará los conceptos de programación orientada a objetos (POO)
Generará renders y modelos físicos de la fachada (Fabricación digital)
Costos: $3,250 alumnos $4,180 alumnos de posgrado y profesores $4,830 profesionales
Aulas VI salón 6205, ITESM CEM
Informes: (55)-34449396 mexdf@krfr.org bioarchitecturestudio@gmail.com
Para más información visitanos en:
Fachadas ContextualesWorkshop >Fachadas Contextuales< KRFR|SEEDKRFR|SEED Red Internacional de Investigación OR/gan
http://www.bioarchitecturestudio.wordpress.com
…
rera de Arquitectura CEM | presenta la cordial invitación al Curso de Diseño Computacional a realizarse en nuestros laboratorios de Arquitectura y Diseño Industrial del Campus Estado de México.
Fecha: jueves 21, viernes 22 de 18: a 22:00 Hrs y sábado 23 de 8:00 a 15:00 Hrs febrero 2013. 15 Horas.
El taller está orientado a estudiantes y profesionales de la Arquitectura, Arte, el Diseño e Ingeniería.
COSTO:
Alumnos Tec o EXATEC con una cuota de $2000.00 pesos.* Estudiantes EXTERNOS y profesores TEC $3000.00*, Estudiantes de posgrado externos $3800.00* y Profesionales externos $4250.00 pesos.*
OBJETIVO GENERAL:
Alfabetización sobre lectura y escritura de herramientas computacionales para el desarrollo de la Arquitectura, Diseño e Ingeniería.
Objetivos específicos:
1. Comprenderá los conceptos metodológicos del Diseño Computacional y generativo.
2. Aplicará las metodologías en el diseño, análisis y despiece de una cubierta (celosía, muro, losa, fachada o mobiliario) con base en un espacio existente en el campus.
3. Desarrollará los conceptos de programación orientada a objetos (POO Intermedia)
4. Generará algoritmos y análisis en Grasshopper sobre el ejemplo de praxis.
5. Desarrollo de documentación y presentación de resultados.
6. Fabricación del objeto, escala por definir.
Requisitos: Conocimiento de alguna plataforma CAD/CAM/CAE.
Profesor:
Arq. David Hernández Melgarejo.
http://bioarchitecturestudio.wordpress.com
Mayor información:
Kathrin Schröter, Dipl.-Ing./Arch. (D)
Directora de la Carrera de Arquitectura e Ingeniería Civil
Escuela de Diseño, Ingeniería y Arquitectura
Campus Estado de México
TEC DE MONTERREY
Tel.: (52/55) 5864 5555 Ext. 5685 o 5750
Enlace intercampus:80.236.5685
Fax: (52/55) 5864 5319
kschroter@itesm.mx
www.itesm.mx
…
ocessed once Grasshopper is done with whatever it's doing now.
3) Grasshopper tells the Slider object that the mouse moved and the slider works out the new value as implied by the new cursor position.
4) The slider then expires itself and its dependencies ([VB Step 1] in this case, but there can be any number of dependent objects).
5) When [VB Step 1] is expired by the slider, it will in turn expire its dependencies (VB Step 2), and so on, recursively until all indirect dependencies of the slider have been expired.
6) When the expiration shockwave has subsided, runtime control is returned to the slider object, which tells the parent document that stuff has changed and that a new solution is much sought after.
7) The Document class then iterates over all its objects (they are stored in View order, not from left to right), solving each one in turn. (Assuming the object needs solving, but since in your example ALL objects will be expired by a slider change, I shall assume that here).
8) It's hard to tell which object will get triggered first. You'd have to superimpose them in order to see which one is visually the bottom-most object, but let's assume for purposes of completeness that it's the [VB Step 1] object which is solved first.
9) [VB Step 1] is triggered by the document, which causes it to collect all the input data.
10) The input parameter [x] is asked to collect all its data, which in turn will trigger the Slider to solve itself (it got expired in step 4 remember?). This is not a tricky operation, it merely copies the slider value into the slider data structure and shouts "DONE!".
11) [x] then collects the number, stores it into its own data structure and returns priority to the [VB Step 1] object.
12) [VB Step 1] now has sufficient data to get started, so it will trigger the script inside of it. When the script completes, the component is all ready and it will tell the parent document it can move on to the next object (the iteration loop from step 7).
13) Let us assume that the slider object is next on the list, but since it has already been solved (it was solved because [VB Step 1] needed the value) it can be skipped right away, which leaves us with the last object in the document which is still unsolved.
14) [VB Step 2] will be triggered by the document in very much the same way as [VB Step 1] was triggered in step 9. It will also start by collecting all input data.
15) Since all the input data for [VB Step 2] is either defined locally or provided by an object which has already been solved, this process is now swift and simple.
16) Upon collecting all data and running the user script, the component will surrender priority and the document becomes active again.
17) The document triggers a redraw of the Grasshopper Canvas and the Rhino viewports and then surrenders priority again and so on and so forth all the way up the hierarchy until Grasshopper becomes idle again.
[end boring]
Pretty involved for a small 3-component setup, but there you have it.
To answer somewhat more directly your questions:
- The order in which objects are solved is the same as the order in which they are drawn. This is only the case at present, this behaviour may change in the future.
- Adding a delay will not solve anything, since the execution of all components is serial, not parallel. Adding a delay simply means putting everything on hold for N milliseconds.
- [VB Step 1] MUST be solved prior to [VB Step 2] because otherwise there'd be no data to travel from [GO] to [Activate]. The only tricky part here is that sometimes [VB Step 1] will be solved as part of the process of [VB Step 2], while at other times it may be solved purely on its own merits. This should not make a difference to you as it does not affect the order in which your scripts are called.
--
The Man from Scene 24…
Added by David Rutten at 4:43pm on December 10, 2009
ou will see all of the available components on a ribbon at once so there is no need to keep clicking drop down menus.
It's all about discoverability with GH. What if you're a beginner and don't know about the Create Facility (dbl click canvas) how can you find Extr?
Even if you hover over every component or use the drop down lists you will not see the name Extr appear anywhere.
Sure it makes sense that Extr is short for Extrude but it's also the Nick Name of Extrude to Point component
So you can easily miss the fact that one has a Distance Input verses a Point Input.
I think I made the move to Icons around about the move from version 0.5 to 0.6, possibly before. I initially thought that I would go back to text because I loved the mono chromatic look of the text but I soon realised that Icons were the way forward. The greatest benefit is speed. You don't need to digest and decipher every component (which is written 90 degrees to the norm).
I'm not saying you should move to Icons forthwith but at least consider that once you have a better knowledge and understanding of GH, Icons will set you free.
My top ten tips that I would highly recommend to anyone wanting to better themselves with GH.
1) Turn on Draw Icons
2) Turn on Draw Fancy Wires
3) Turn on Obscure Components
4) Use the Create Facility like a Command Line eg "Slider=-1<0.75<2" or "Shiftlist=-1"
5) Use Component Aliases to customise your use of the Create Facility eg giving the Point XYZ component an alias of XYZ will bring it up as the first option on the Create Facility as opposed to the other possibilities.
6) Try to answer other people's questions even if it's not relevant to your own area. By looking into solving a problem outside of your comfort zone and then posting your results it is very rewarding but it also lets you see the other approaches that get posted in a new light.
7) Take the time to understand Data/Path structures.
8) Buy a second monitor - There is nothing that can compare to real estate when working in Grasshopper.
9) Read Rajaa Issa's Essential Mathematics
10) Pick a panel in a tab on the ribbon and get to know every component inside and out and then move on. Start with the Sets Tab > List Panel…