Rhino 7 Feature: Clash Detection in Grasshopper

Quickly search a huge number of objects to find a point of intersection between pairs of clashing objects in Rhino 7 WIP for Windows and Mac.

  • Architects and Engineers that need to find clashes between building systems may find these tools useful.

Next Steps:

This is a work in progress feature and we are looking for feedback.


A common question is how to get more information about the intersections. The Clash component is super fast at clashing 1000’s of objects. But the only thing it tells you is that they contact each other.

Now if you need more information, take the clash results and run the specific pairs through the BREP Intersect component. You can see the results you have of each intersection. This way the slower intersection component only needs to test objects known to intersect:

Note: here that the BREP intersect needs a tree datastructure, not a simple list, so I add a graph component before the inputs.

1 Like

Dear @scottd

Is it possible to know mesh face ID where the mesh intersects?

No, you get a single location and the index to the original object. I would run a closest point to find the exact face if you want.

This is that same pattern as the second example above. Use the new Clash tool to find the intersection, then use slower, but more accurate methods to then test the objects that do clash if more accurate information is needed.

I am checking collision between meshes not rhino objects. Consequently, I have 2 questions:

  1. Would it be possible to get id of objects colliding?
    In the clash class properties I cannot find id of objects that are colliding.

  2. For now I am adding first and second value as the same array of meshes.
    Would it be possible to somehow avoid collisions check within the same object?

Clashes.gh (10.6 KB)

Hi @Petras_Vestartas, I haven’t tested this on many cases, but adding the selected lines seems to avoid self intersections and clash point dupes:


// Rolf

Thankz @RIL do you have an idea how to get Id of meshes?

I think objects get a (Rhino) Id only after baking, like so: (selected lines)


// Rolf