t ''Morph'' turns Red saying ''Cannot morph from a degenerate box'' (image 2),
that's because every curve generates a box (image 3).
After what i check the Option ''Union'' box to make only one box for all the curves (image 4).
However, the result is aleatory and not accurate at all ... :/ (see image 6).I know you are developing Pufferfish and not ''Morph'' component, but recently you publish on instagram a video where i believe you could morph and Twist with success a collection of curves (please see image 7 and 8)...If you could give me a hint how that can be achieved, it would be awesome.(Piping/Meshing the curves with very small diameter will perhaps work and help for visualisation purposes, but i actually just need morphing Raw curves for fabrication purposes).Hope to read you very soon...Ghali,…
to a rationalized integer format for use in the grasshopper definition . I don't want to convert the information permanently, but have been looking for an elegant method for converting the datetime string as needed so that it can interface within a grasshopper definition.
What I am trying to do is create a process for working with the timestamp included alongside sensor data I pull from Cosm. The data feed is formatted like this; <current_value at="2012-07-25T05:24:44.601988Z">77.68</current_value> and the Time paramater seems to easily understand the datetime string to read 2012-07-25T05:24:44.601988 as Wednesday, 25 July 2012 (05:24:44) so I plan on keeping the string as is when stored in a local mySQL database I have setup, but want to make sure I am not setting myself up for major headaches down the road.
I asked about converting the date time string to an integer to allow me to find time spans and generate a series of time stamps in an efficient way for creating a batch/ iterative process for requesting additional sets of data based on a query comparison of what gaps are left to fill in along a timeline of data points.
At the moment, I think a conversion to an integer is my best bet. (ref; Excel Date Time Code Id love to be able to feed in a date into a math component, add 08:00:00 and for it to result with a time 8 hours later than the first. I also have a string manipulation method working also, but have yet to really test it beyond what I have shown in the screenshot below.
I currently have these batches stream from Cosm.com into Grasshopper via a xml parser component (either the one found in Andy Payne's Firefly set, or the one included in gHowl.) From there I sort/ extract the data points and their respective time stamps and feed these data points into a mySQL database I've setup with Nathan Miller's Slingshot components. With the points in a local SQL database, I can then begin to integrate the use of database queries into definitions and retrieve data points based on sensor value Booleans rather than being restricted to time spans, (which is the only way to request historical data from Cosm's site)
I've been debating on if I should convert all the time information to an integer before writing it to the SQL database so GH can work with the data, or if I should keep the time code as a string and create a couple of conversation component clusters to translate the information each time it needs to be processed or manipulated in GH. I'd prefer to keep things in the date time string because the database can handle it without a problem, GH sort of handles it in one translation direction and allows me to avoid conversion that Id have to explain to others if they were to access the database in their own grasshopper definition or from another application.…
been covered since 0051 (correct me if I'm wrong):
1) Shoot for the moon first -- "Control Panel Mode" which allows for advanced interface design. See Max/MSP for example of modal function. I spent a lot of time laying out control panels so they are nice for clients and team members to look at. I spend a lot of time disabling wire display and dragging sliders and panels and graphs around into nice little clusters. Could be something as simple as a mode that disables the view of all component handles, cleans up graph objects, sliders, etc. I know the Remote Control Panel has been requested over and over again since it disappeared, but honestly it wouldn't be much use to me unless it was a full blown customizable interface. In the meantime I'll stick to my own "Canvas Control Panel" methods. (See below...)
2) More control over graph objects. Right now the bar graph for instance automatically sets the lowest and highest value displayed. Would be nice to be able to set extents manually so that you can compare apples to apples on two different lists that have different extents. Also would love to force the bar graph to show all values along x axis, not just first and last. Same goes for showing the numbers of instances for each value. Now it only shows instance numbers in oddball cases. Would like to force them to show for statistical purposes. Love percentages, but usually I also want accurate tallies. I tend to use a member index sets to generate my own lists.
3) Color input for Vectors -- there are fakey fake workarounds but none that are as versatile as simply having a color input.
4) COLOR INPUT FOR TEXT TAGS -- sorry to yell... this one really frustrates me. I often build interactive feedback systems that involve a lot of different types of data, and it is difficult to convey that input when all text is red (or green when selected).
5) Ability to justify text tags using paragraph controls -- currently default is left-justified. Would like to be able to center text horizontally and vertically, among other things.
6) Ability for text tags to handle multi-line text. Not sure the best way to implement this, but often I find myself wanting to attach 3 items of information to a particular object, and I have to string it all together in one line. Would be great if I could insert a "^M" character that stands for carriage return and have that display as multiline text (used in conjunction with above justification controls).
7) More control over Text panels. Thank you for including justification options... but sadly now it begs the question for margin and header control. Text slammed up against the left edge is pretty unsightly. Moreover, if you have labeled a text box, the drop shadow from the title bar tends to overshadow the first line of text if you have Path display turned off. Would like to add some header space to fix the problem and create a cleaner look.
8) Easier access to text font size. Buried in a Special Font... menu. I want to be able to up up down down (left right left right select start) if you know what I mean.
I guess that's it for now... just the things on the top of my head in this category. Looking forward to installing the new release, have to wait until this major project is over though.
Cheers,
Marc
…
eration!
See an example work flow for designing, simulating and analysing a Photovoltaic system below.
Download a Grasshopper and Rhino example file:
https://www.dropbox.com/s/krbszlplj5i40dz/017_HBgeneration%20Rhino%20model.3dm?dl=0
https://www.dropbox.com/s/lxneuzal3mipd2q/017_HBgeneration.gh?dl=0
See a quick introduction and tutorial videos here: https://www.youtube.com/playlist?list=PLrx2KnyhaJ5YXo5hpk8Q9q4Vy99O5IegK
1. Select a building to mount a photovoltaic generator on (seen in Rhino in green).
2. Select a surface within that building to mount a photovoltaic generator on (seen in Rhino in green).
3. Create a Honeybee context surface from that surface.
4. Place a photovoltaic generator on that Honeybee context surface by using the Honeybee generation component. Honeybee_Generator_PV and connecting the context surface to it's input _HBSurfaces. Then you can specify both the performance and the financial data of the photovoltaic generator.
5. Create a Honeybee generation system which consists of the photovoltaic generator in 4. By using the component Honeybee_generationsystem and connecting 4 to its input PVHBSurfaces_. Then you can specify the annual maintenance cost of this system.
6. Run the simulation in Energy Plus by connecting 5. to the input HBGenerators_.
7. Read the results of the simulation:
- The electricity produced by the Honeybee generation system in 5.
- The net purchased electricity of the facility (the Honeybee zone) to which the Honeybee generation system is attached to. This is the electricity consumed by the facility less the electricity generated by the Honeybee generation system.
- The financial costs of the Honeybee generation system; capital, maintenance and replacement costs.
8. Calculate the net present cost of the Honeybee generation system in 5 assuming a 25 year lifetime.
9. Visualise the net present cost.
…
2013 | mayo 30, 31 y 1 de junio. 15 Hrs.
Horario: 18:00 – 22.00 Jueves, Viernes y Sábado de 8:00 a 16:00 Hrs. Instructor_ Arch. David Hernández Melgarejo.
http://bioarchitecturestudio.wordpress.com
Objetivos:
El curso está dirigido a cada diseñador, ingeniero o arquitecto que quiere obtener una sólida base en modelado generativo y paramétrico dentro del flujo de trabajo en Rhinoceros.
En el curso se explorarán y construirán estructuras en el espacio paramétrico, incorporando entidades geométricas (Curvas, Superficies, Puntos, etc…) y usando patrones algorítmicos.
Cada paso será soportado con ejercicios que gradualmente incrementarán su complejidad.
El alumno aprenderá cómo trabajar con asociación geométrica y parámetros. Para perfeccionar asociación geométrica – asociación entre partes, asociación dinámica – las formas geométricas son generadas al seguir la conexión lógica entre la parte geométrica y su restricción, dimensión paramétrica y él proceso dinámico del diseño: en pocas palabras estimulamos el pensamiento relacional.
Resultados:
Los participantes con éste entrenamiento obtendrán las siguientes fundamentos.
· Construir, modificar, depurar y correr aplicaciones de Grasshopper.
· Comprender el editor gráfico algorítmico y sus patrones usando grupos y cables conectores.
· Trabajar con dimensiones dinámicas, parámetros y listas.
· Generar aplicaciones orientadas a la documentación del diseño y la fabricación.
Palabras clave:
Diseño Computacional, Scripting, Rhinoceros 5.0 + Grasshopper, Parametrización, Análisis, Fabricación Digital.
Para mayor información:
MArch. Kathrin Schröter. E-mail: kschroter@itesm.mx
Dirección de Arquitectura. Oficinas de Aulas 1, segundo piso.…
s, the participants will focus on the key advantages of Grasshopper’s capabilities through a range of design challenges in order to aid designers in both their drafting tasks and modelling capabilities.
The workshop covers many concepts such as Object Attributes/Parameters, Data Types, Data Structures, and Designing with Algorithms. Specifically, this course will focus on understanding both Lists and Data Trees, as well as the best practices for integrating Grasshopper into your Professional Design Workflow. The workshop offers guided curriculum and continuous support, based on in-depth and professional learning experiences.
Workshop outcomes:Teach the participants how to:-
+ be proficient in parametric logics learning the key benefits of parametric techniques in architecture design workflow (when to use it & how to use it)+ Correctly communicate with different 3D and BIM packages in order to keep the geometry clean and light while preserving all NURBS information.+ Develop architecture design based on mathematical equations to create non-standard free form building skin.+ Create a pattern that changes dynamically based on specific inputs which can be applied over the building façade, interior walls or ceiling or even floor pattern.+ Automate and Optimize design variables to achieve the optimum solution for the design problem.
Program Outline:
DAY 1:-Introduction to Parametric Design -Introduction to Grasshopper & Rhino (technical tools).
DAY 2:-Exploring the parametric workflow. -Setup the design algorithm & generating a list of data.
DAY 3:-Introducing the new ways of generating parametric curves and surfaces.-Parametric form generation in-dept
DAY 4:-Introducing Data Tree logic and parametric transformations.-Creating Associative techniques – Attractors (points, curves and vectors).
DAY 5:-Working with advanced form generation with dynamic pattern.-Parametric optimization based on environmental analysis -featuring the Performance-Driven Design possibilities
DURATION:6 – 8 hours per day [50 - 60 hours Total]Every Saturday [9.00 Am : 1.00 Pm & 2.30 Pm : 6.00 Pm]
PREREQUISITES:No need of any specific knowledge of Rhinoceros or Grasshopper.
REGISTRATION:In order to register, you will need to fill the Registration Form .https://docs.google.com/forms/d/1PckdW1hrWs9fJAHWBZlVsuhH8K0PfDuMWIpXHT_4FYw/viewform
REGISTRATION DEADLINE:23th October 2014.…
Added by ayman wagdy at 7:48am on October 19, 2014
imes. Your loop should go to y.Count - 1. Or, you could use a For...Each loop, circumventing the problem altogether:
Dim shortLines As New List(Of Line)
For Each segment As Line in y
If (segment.Length < x) Then
shortLines.Add(segment)
End If
Next
A = shortLines
--------------------------------
Another problem is this line of code:
New_Lines.Add(New_Line)
It is located inside the loop but outside the If statement, meaning it gets run every single iteration. This fills up the short line list with duplicates.
-------------------------------
Here's something else which is redundant:
Dim Input_Line As New Line
Apart from the fact that you don't need a special variable for this at all, you also don't need to add a New keyword. The type Line in RhinoCommon (just like Point3d, Vector3d, Plane, BoundingBox etc. etc.) are Structures, not Classes. Structures always exist when they are defined, whereas Classes can be null ("Nothing" in VB).
-------------------------------
Some more advice:
Dim i As Integer
For i = 0 To y.Count()
You can merge these two lines into one. VB.NET allows you to declare your iteration variable inside the loop:
For i As Integer = 0 To y.Count - 1
--------------------------------
If you don't like the For...Each approach at the top of this answer, here's how to write this using a For...To loop:
Dim shortLines As New List(Of Line)
For i As Integer = 0 To y.Count - 1
If (y(i).Length < x) Then
shortLines.Add(y(i))
End If
Next
A = shortLines
ps. A personal preference of mine is that I always encase the expressions inside If...Then statements in brackets. You technically don't need to do this, but I find it makes the code more readable.
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
taTree.
2. Since GH is acyclic by design we can't pick individually (without code, that is) our "picks" for the iceberg ... thus we need a global policy applied to ALL grid points at once.
3. This is what the next part does: it picks randomly some iceberg stuff and modifies their Z by a random value. If the Z is always "above" the grid or not it depends upon the domain of values to operate. Seed means "roll the bones again" (meaning another collection).
4. So we have the modified points Data Tree (that are steady - acting as the tips of the iceberg). Let's call them Anchors.
5. If we subtract set 4 from 1 we have the points prone to vary according some manipulation. Kangaroo does that manipulation (this is the best add-on that GH has to offer by 1M miles made by a very clever fella).
6. But if we instruct Kangaroo to do the job... he makes chaos since the points in 4 are not sufficient: we need perimeter steady points that act as Anchors as well. So we manage some logic to pick a variable set of perimeter points and we "merge" 4 and 6 and we have the final set of Anchors on hand - whilst all the rest are points willing to change.
7. Kangaroo is a physics engine meaning that the only thing that understands is ... er ... points and their relation (the "line" connecting them, that is). Kinda like a CPU that understands 0 and 1 and nothing else.
8. So we provide Kangaroo info about all the lines involved: how "stiff" they are and what is the expected/desired final length.
9. By double clicking the Kangaroo component ... the "simulation" starts running (in some kind of "loops") and goes towards an "equilibrium" where all our desires are satisfied - or the solution's entropy is the minimum possible (well up to some level, he he). Kangaroo displays a small control dialog that allows you to halt the process or reset it (meaning: start again).
10. If the instructions are "good"/"proper" the "loops" (iterations) are relatively few: if K does 1M "loops" ... this means that your instructions are silly or not well thought.
After stopping Kangaroo ... we have (hopefully) a "well" distorted collection of points (and their equivalent mesh) to proceed further via components usually found in the WB add-on
PS: If all the above sound Greek to you ... it's because I'm Greek, he he.
Moral: Get the gist of Kangaroo ASAP - worth spending some time I recon. If you do that and you need examples (other than the ones available at download time) ... well I have more than 300 (from simple to ultra paranoid).…
st variety of papers (mostly related with LIDAR airborne sampled clouds) ... but ... hmm ... no code (other than some "abstract" algos that may (or may not) work). Reason? A very hot cake that one these days: from reverse engineering to DARPA founded future defense systems and up to cruse missiles pattern recognition algos.
The solution (obviously doable only via code) is the so called flat hard clustering ... were points are sampled into clusters based on the coPlanarity "rule". For large amounts recursive octTrees (an oriented box divided in 8 "partitions") subdivisions are used and then pts are processed in parallel (and then clusters are re-evaluated in order to "absorb" other clusters with same plane A,B,C,D vars etc etc).
See what's happening in a very carefully made test point collection:
3.7 ms and the "ideal" clustering (7 search loops VS the max 42M theoretical threshold):
Depending on the pts "preparation" ... a considerable more time/search loops is required ... and ... well ... also "valid" clusters (4 points and up) made:
So "ideally" speaking in your case:
1. Mesh faces center points (or alternatively: mesh vertices) are sampled into a pts collection .
2. Hard flat coPlanarity clustering is attempted yielding pts/planes in equivalent DataTrees.
3. Planar Breps are made with respect the planes (like the black things captured above) and sampled, say, into a breps List.
4. The method Brep[] solids = Brep.CreateSolid(breps); is used for attempting to create your desired "engulfing" brep. This method is very slow mind (other waaaay faster approaches also available).
…
on excel (leaving 0,0 cell blank and also making sure there are no commas in the names ) Also let's call the names "ID"
2 - For the weight, use numbers ranging from 1 - 10 where 10 is the highest dependancy.
3 - Save the file as a Unicode CSV from excel
4 - Create another file on excel that has the attributes of your spaces, with the names of your spaces under the header ID (let's start with a simple "area" and "SNo" attribute but you could add more features for sorting and manipulating your data)
5 - Open Gephi and further open your matrix CSV file
5 - Import it as "," (comma delimited file) and make sure you check "matrix" for the data type
6 - Ensure the import is nondirectional as well (or Gephi adds silly arrows)
7 - Not gonna go into the gephi bit too much but select a force atlas layout and set the force to something high 1000 or 10000 depending on the size of the data and the attraction to a 1000th of that 1 or 10. Go to the data lab and import your excel with the attributes and append to your existing datasheet.
8 - Set the node attributes to use the area for the node size and color scheme to SNo
9 - Play around with all the layout options and finally go to your preview. Once you're happy with it, export it to a GDF graph file.
the GDF now has the coordinates of the circles and the diameters. as well as the edge connections.
I've written a very amateur script that converts this to GH geometry (below)
Hope this helps someone out, I'm still figuring out the gephi streaming API but I've only started with python about a month ago so might take a while to get there.
You can use the second half of the GDF files to also create dependency chord diagrams online as shown in the third image.
https://flourish.studio/2018/07/25/how-to-make-a-chord-diagram/
Cheers,
Sanjay
…