crease, I need to associate the smaller geometries with the larger panels. What I am trying to do is move a large list of items according to which panel they collide with.
So... Because there are 5 panels there are 5 branches ({0}, {1}, {2} etc.), I have 12 smaller geometries to sort and the branches they need to be sorted into.
Geometry 0 needs to be sorted into branch {0}
Geometry 1 needs to be sorted into branch {1}
Geometry 2 needs to be sorted into branch {2}
Geometry 3 needs to be sorted into branch {0}
Geometry 4 needs to be sorted into branch {2} etc etc.
Refer to images for more information, the second image is what I am trying to achieve. I hope this makes sense, if you have a better way of sorting this that would be good to know too
Any help is much appreciated I cannot seem to figure this out :)…
with two data trees, a small one containing only a single branch {0} and a larger one containing 10 branches {10} -> {19}. The output data of a component depends almost exclusively on the determination of the master parameter. The master parameter is considered to be the guiding light when it comes to cooking up output data tree paths. This master parameter is determined as follows (at least under the current logic):
If there is only a single input, that one obviously is the MP.
If there is more than one input, then Tree access parameters are ignored, i.e. Tree inputs are never MPs unless there is absolutely no other choice available.
If there is more than one input, the one with the longest paths becomes the MP, in the example posted above, both parameter have equally long paths. Note that the amount of paths is no longer considered to be a good indicator, and for good reasons as it turns the detection of MPs into an unstable business.
If all inputs have paths of the same length then Item parameters win over List parameters. Again, in the example Jon posted all parameters have the same access level.
If after all this there are still several possibilities, then the top-most one wins. Which is why if you flip the inputs it suddenly starts working as you expect it to work.
Changing the selection of MPs is a dangerous business as it may very well break existing files that rely on a specific data tree layout. That being said, if a significantly better algorithm is proposed I'm happy to make this change. Do note that the algorithm cannot depend on the number of branches in a data tree. This is how it used to work and it resulted in some very unpredictable behaviour as the number of branches often depends on specific inputs and can therefore easily change when -say- a slider is dragged. The detection of MPs should be stable enough to not depend on something as volatile as that.
A possible (non-breaking) change that could fix these issues is to add GUI for manually picking master parameters. This is however a very (very) expert user level feature so it would be nice if we could improve the default behaviour first.
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
Added by David Rutten at 1:36pm on November 22, 2012
ranno durante il corso, si spiegheranno i temi fondamentali che stanno alla base della modellazione generativa e del design parametrico.
Il corso è rivolto a chi ha già una familiarità minima con la modellazione attraverso Rhinoceros e vuole ampliare le proprie competenze verso il campo della modellazione parametrica e generativa, e si terrà da lunedì 13.06.2016 a mercoledì 15.06.2016 – dalle 10:00 alle 17:00.
Potete scaricare qui il PROGRAMMA DEL CORSO.
Il calendario dei corsi è consultabile qui.
VEGA Parco Scientifico TecnologicoVia della Libertà 12 – VeneziaEdificio Porta dell’Innovazione – Piano Terra
Per iscriversi al corso è necessario essere registrati al sito.Per tesserarvi al Fablab Venezia, diventare maker, usufruire dei vantaggi, clicca qui.…
dellatore nurbs, Rhinoceros. Attraverso una serie di esercizi che si svolgeranno durante il corso, si spiegheranno i temi fondamentali che stanno alla base della modellazione generativa e del design parametrico.
Il corso è rivolto a chi ha già una familiarità minima con la modellazione attraverso Rhinoceros e vuole ampliare le proprie competenze verso il campo della modellazione parametrica e generativa, e si terrà da martedì 25.10.2016 a giovedì 27.10.2016 – dalle 10:00 alle 17:00.
Potete scaricare qui il PROGRAMMA DEL CORSO.
Il calendario dei corsi è consultabile qui.
VEGA Parco Scientifico TecnologicoVia della Libertà 12 – VeneziaEdificio Porta dell’Innovazione – Piano Terra
Per maggiori informazioni:
http://www.fablabvenezia.org/parametric-design-with-grasshopper/…
hole new realm?
This Parametric Design Webinar will provide you with the necessary knowledge and ability to use Grasshopper, a free visual programming plugin in Rhinoceros.
FULL BEGINNER TO ADVANCED - 4 Days / 8 hours in total
Start 12.11.2022
Live Webinar Time: 10:00 - 12:00 CET
TIME ZONE: CET
WEBINAR Language: ENGLISH
CERTIFICATE: Participants will be given a certificate of participation at the end of the WEBINAR
WEBINAR LINK: WEBINAR invitation link will be sent to all participants after registration via private Email
Kindly reserve your Tickets here:
https://billetto.eu/e/parametric-design-live-webinar-beginner-to-advanced-Tickets-738970…
in reply to: mick_mcg
this is usually due to the failed language pack installation.
If you can post the Log file. (%temp% folder) for the installation, it might give us some clue on why the language pack install fails.
from:http://forums.autodesk.com/t5/Installation-Licensing/quot-adui18res-dll-not-found-quot-error-message/td-p/2761408
…
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
rom a few pieces until all of the pieces are in place. You could also, theoretically, modify the form of the base, high, etc.
To do this I started making three pieces (all triangular) of different sizes... and then I stablished that there is going to be a bigger concentration of bigger pieces on the first third of the building, a bigger concentration of medium pieces on the second third and a bigger concentration of small pieces on the last third. I did this by rotating the pieces a number of times accordingly to a percentage.. the funny thing is that it works most of the times, but it doesn't work if the base of the building has 3, 8, 12, 18 or 20 sides (20 being the higher number on the number slider).. maybe there is a way to solve this with lists that I am not using????
My second problem is that I want to rotate each floor of the building separetly using a range... the thing is, I cannot make it work, because it rotates each triangle and not the whole floor... maybe there is a way of making groups or changing the list definition, but I'm not getting there.... I tried working with planes, but it is even more difficult to make the whole thing work...
I'm attaching the grasshopper documment and a couple of pictures so you can get my idea....…