Clash detection with pyRevit

Hi everyone,

I am trying to build a tool for our company to help us resolve clashes much faster.

What I am trying to do is the following:

-Get a a list of clashes similar to the “Interference Check” function in the Collaborate tab in Revit, I am thinking of taking each element that has an interference and add to to a dictionary like this:

  • Get a a list of clashes similar to the “Interference Check” function in the Collaborate tab in Revit, I am thinking of taking each element that has an interference and add to to a dictionary like this:
modelClashes = {
    Element : [list of elements clashing with Element]
}
  • Give the user a popup with the list of clashes similar to what Revit does, but then when the user clicks on the clash instance he will have the option to create a new 3d view where the clashing elements are isolated to see exactly where the clash is occurring, I also want it to ignore clashed caused by curtain walls, because curtain walls cause a clash even where there is no clash in reality.

I would please like to hear if anyone agrees that this would be the way to do it and then ask how I can run my own clash detection.

Thanks for reading and all replies in advance!

Are you doing clash detection between your active model object and objects from a specified links? Or just between objects into your model? Are you aware of a class that exposes the interference checks into the API? Something that you can research and keep the post open.

In my 20 years of BIM life I’ve never used Revit to do clash detection between disciplines, I generally resort to a more geometrically flexible tools such as Navisworks or Rhino/Grasshopper.

A native pyrevit tool can be a good idea. If the API let us do that.

I just want to get clashes inside my local model, I am still relatively new to coding with the API.
I want to streamline the process of resolving clashes in the model so that my team can be more efficient at delivering models with 0 clashes

IMHO if you are new to coding with the Revit API, this is a huge task.

I wouldn’t reinvent the wheel on this one unless you really thing you have an edge at adding new functionalities.
Have you considered using tools like clash preventor from bird tools? Cheap, efficient, …

There are many ways to clash geometries, some are computing heavy:

  • geometry to geometry
  • boolean
  • bounding boxes
  • location based only
3 Likes