algorithmic modeling for Rhino

So I'm trying to make something like this

Right now my data goes from {0,0,0,0} to {0,0,35,35} because there are 72 curves and 36 intersection points.

I want to make a nurbs curve from the points but I don't know how to arrange the points so that I have sublists with 4 items each

What I think needs to be done is get something like {0;0;0;0} and {0;0;0;1} to combine with {0;0;1;0} and  {0;0;1;1} and so on for the rest of the structure.

I've been trying all sorts of components to get what I want but I'm still new and I'm at a loss on how to work with lists.

Thanks in advance for any help!

Views: 938


Reply to This

Replies to This Discussion

Hello JS, 

multiple intersections give me headaches. I just did an inelegant work around. If you want to solve it properly I suggest you try with the MCX component, instead of the CCX one. 


Hi JS,

[Relative Tree] will handle this but it is tricks for advanced players. If you are unsure of anything in the supplied file let me know and I'll go a bit more in depth on anything you are unsure of. From Tree Selection rules to Text Manipulation.

The File format is in the Latest GH 0.9.0064 which will only run on Rhino v5. If you need recreate it in version 0.9.0014 then I will need to post a clearer image and slightly changed path selection masks.  



Relative Item and Relative Tree are a bit tricky to understand. Here is a "plug and play" definition I use. It's for Relative Item, but you can easily adapt it as Relative Tree. Try experimenting a bit, and you'll quickly get the hang of it. 

Very nice Danny. 


Thank you Jesus! I will look at the file and try to play around with it.

Wow, this is intense. Strangely, enough I think I somewhat understand it.I did have a few questions though.

What do the "wrap path" "wrap item" do though.

What is the purpose of "item A" from the relative tree component?

Why must the curve to curve intersection need one component to be grafted?

Also can you take a look at the picture I attached? I don't understand why it is important in the definition. Removing it breaks everything but all it is doing is storing a number right?

Thanks again! I'm learning quicker than I anticipated!

David just recorded a video series on trees and selection syntax.

Video 5 and 6 in the series may help.

Thank you Scott, I'll start watching them right now!

With this example the last and the first paths of data are adjacent to each other as it is circular, therefore to complete the pattern you want to wrap the paths so that you are spanning the gap. If this was a rectangular grid you would not want to wrap the paths as the first and last would be to far apart.

Wrap index is similar but as this example only has 1item in each part it is not relevant.

Output A is the point that everything is relative to. In this example it is not important as i included a {0;0} reference in the output.

Data matching without the graft would only intersect one curve from A with one curve from B and then the next one from A with the next one from B and so on. With graft it matches one curve from A with all the curves from B.

The Integer param is used here to convert a number into a inreger withiut it the string is {?;>0 and <16.0} which will error because of the decimal places

Thank you very much Danny! I appreciate the help!






  • Add Photos
  • View All


  • Add Videos
  • View All

© 2019   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service