Use of Shatter

I already made a division and cut and selection of lines, but now I would like to take those pieces of lines and regenerate segmentation now based on the points of intersection of those lines to be able to eliminate later or keep the longer pieces… .
encontrando ejes (9.9 KB)
walls ejes de muros.3dm (31.1 KB)

Hi Juan,

Pardon the ignorance - I am not sure if you’ve just described what you are working on or actually asked a question?
Maybe show a sketch/image of what you want? Your script doesn’t have any issues…

I am still working on the algorithm … after cutting the green lines with the red box I was able to stay with the green lines that are inside this box … but now I need to intersect these green lines that I managed to filter to only keep the longest sections …
encontrando ejes (4.4 KB)
walls ejes de muros.3dm (31.7 KB)

1 Like

Thanks Juan,

If I am understanding, you want the interior (medial) segments.

I did a couple of different ways starting with what you already had going on:

Check attached:
encontrando ejes muros (1).gh (22.1 KB)

Please excuse my groupings/labelings - took the liberty to do so because I can use your ‘problem’ as a nice exercise with students!

Thanks and regards

Thanks for the help. It was precisely what I needed. Now analyzing each one of the algorithms to also try to explain the geometric reasoning followed… since it is for my thesis to be able to graduate from my university… infinite thanks for your You don’t know how much time it will help me… what a marvelous software rhinoceros is together with grashopper and what a great community of people who help those of us who are starting to use this software…

1 Like

When trying to use the algorithm with another geometry, it does not generate all the lines that I need.

walls ejes de muros.dwg (31.7 KB)
encontrando ejes muros (1).gh (19.6 KB)

Hi Juan,


As you’ve stated, now you’re using different boundaries with different corner types:

And, you are also trying it with boundaries that have ‘holes’:


This leads you to needing some tweaks.

To get a result that’s more ‘automatic’ you might end up needing something written with code.

Meanwhile a work-around that can help is shattering all mid axes at once then discarding short segments.

Check the attached example:
encontrando ejes muros (1).gh (20.5 KB)


Whatever I meant I guess I spoke too soon - as usual you think of stuff later when you’re off screen.

A somewhat semi-automatic method can be:

  1. meshing the wall surfaces with a low face count and grab the interior edges of the mesh
  2. get the average length value, which (kind of) translates into the ‘average wall thickness’
  3. discard any segment smaller than this ‘average wall thickness’

Check this edited file:
encontrando ejes muros (2).gh (24.1 KB)

I am sure (as with anything else) it shall fail at some point, however it’s a useful alternative while still having the other method available:


thanks for your help teacher…
Now I am studying its algorithm to explain later to my audience the geometric reasoning followed… Now with this algorithm and adding another one that I have generated, I can already semi-automate the migration of a 2D DWG file to Archicad and also to Revit…
thanks again and god bless you…

1 Like

Good evening, I tried the algorithm with the plan that I sent you, but even though the meeting of axes was generated, I eliminated others… perhaps it is not so feasible to work with the axes… how could I recover those segments that are already deleted in the cluster code? which only considers the lines that intersect … I have tried to try alternatives to achieve this but without success …
JIGS2EJES.3dm (212.0 KB)
JIGS2resultado.3dm (221.7 KB)

Hi Juan,

It looks like you attached two Rhino files (.3dm) as opposed to one Rhino plus one grasshopper file - was this intentional? If yes/no, I have not opened any of the two. A clarification could be needed - can you show a screenshot of the issue?


the jigs2.3dm file contains the walls and their axes…the jigs2result.3dm file corresponds to what I would like to achieve…although the algorithm generated the meeting between intersecting axes (algorithm within the cluster) I eliminate those sections of axes that do not intersect… I attach an image for greater clarity…
Another problem that is generated is when the projection of one axis intersects with the projection of another axis that does not necessarily belong to that particular wall or curve.
If this methodology does not work using the axes… I am working on a geometric algorithm so that starting from the walls (curves) I can only stay with the exterior lines… since I found dwg plans that do not have the axes of the walls …the ideal would be to have both alternatives…as soon as I have something elaborate I will ask my questions in the forum or if you don’t mind I could ask you…and once again thank you very much for your answers and your time… .
intersection ejes

I see.

I am sure you’ll realize the script will/might fail when new variables/goals are introduced, which is normal, and fun {some times}, I guess.

Here’s a modified run through the script(s), it might help you get to what you want and/or provoke further insight.

Check attached: (25.6 KB)



I am sure you’d get solutions better than mine!