algorithmic modeling for Rhino

Hello all!

I am trying to use the "shatter" function to split a series of segments at their intersection points. So first I use the function "Multiple curves" and then "shatter" them at the parameters resulting tb.

I have been trying to re-parametrize, flattening, grafting... but as you can see in the snapshot I posted, it misses to split the segments at a portion of the intersection points (the ones at the bottom right of the hexagons).

Can somebody help? I couldn't find many explanations on the "Shatter" command, and the ones on this blog have not helped... I don't fully understand how the command works, so somebody who does might be able to easily solve it.

I hope somebody out there has the answer :)

Views: 18129


Replies to This Discussion

When installing the file, im having trouble with the Rhino visualization. Any idea why this could be happening? 

I've been using this definition and find it useful.  Thanks!

I'd like to adjust the curve seam to the intersection, but I can not figure out how to do this (not for the lack of trying)!  Any advise would be much appreciated.

Do you mean, when a closed curve is intersected by another curve in only one point, the new closed curve's seam is now that intersection point ?

I hope the image below explains what I mean.  Attached is the file with this curve.

I tried to move the seam before the shatter@intersection, but that made 4 copies of the curve (as you would expect) and it went downhill from there. Lol.  I've tried a lot of different ways, and I just can't make it work.  I read somewhere on this forum that David said a seam must be moved before the shatter.

Thanks for any help!


You could try Boundary->Edges->Join if you don't need the inner curves

 hi systemic ı downloaded your component  thank you very much since ım new in grashopper ı cant delete unwanted line segment how can ı do that

Not sure what "unwanted segment" means, perhaps like this ?


Hi Systemiq,

Thanks a lot for this cluster!
I'm looking to keep the same data structure before and after the intersection and the shatter of closed curves.

I attach the file that explains better the issue I'm facing.

Any help would be appreciated.



Your data structure before is a bit weird, for example you have the path {3;8} and {3;10}, but {3;9} is nowhere to be seen.

So when the replace path component create new paths, they are not the same.

Also, there is a problem with ignoring curves which don't intersect anything.

Fast fix attached, but would need more work to make it really clean.


Thanks a lot Systemiq! It's really nice to have spent time on my problem.

The data structure comes from a GIS import, the buildings boundaries being then duplicated according to the number of floors. The matrix I sent is the result of an operation on the original tree. Before this operation, the tree was composed of 140 branches (140 buildings in the GIS data) with 1 to 9 subbranches (max number of floors is 9). After this operation, the structure can be described as {a;b} with "a" corresponds to the floor ID and "b" to the building ID.

What is important to consider is that there can be several curves in a branch because of the possibility to store courtyards within the GIS. This logic causes that some paths don't exist such as {3;9} because the building n°9 has only two floors.

I grouped the curves by floors and not by buildings in order to compute the intersection. But I would like to organise my data after the shatterInt component to find back in each branch of the tree the same curves as before.
The final goal is to have in different branches (data structure {a,b,c}) for the 140 buildings (a), for each floor (b), in two separate branches (c) on the one hand the list of wall lines that are shared with another building and on the other hand the list of walls that are exposed to exterior boundary conditions.

I can do it for one floor (see image below) but I can't manage it when I integrate the other floors.

I hope it is clear.

Do you know a way to cope with this issue?

Please, could someone help me?

C'est mieux ?


The ShatterIntBis is the solution! Merci beaucoup :)






  • Add Photos
  • View All

© 2020   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service