Access Revit's intersection checker in the API?

You are welcome. To begin with, the clash detective algorithm developed for BimorphNodes Element.Intersects nodes offers many advantages over Revit’s Interference Checker (IC):

  • Revit’s IC limits you to 1 Link Instance per clash test, whereas BimorphNodes clash detective algorithm supports an unlimited number of Link Instances (by virtue of the new LinkElement class)

  • IC doesn’t support linked element vs linked element clash detection, nor does it allow clash tests to be performed between elements from the same Link Instance, whereas BimorphNodes fully supports this type of clash test, making it ideal for projects with many link instances or general BIM coordination workflows directly in Revit

  • IC requires at least 1 live element in the active model before it can be used; Bimorph’s clash detective algorithm has no such restriction

The html report is very simple to recreate and you could easily do this yourself using the output from the Element.IntersectsElement node and extracting the parameter data you need. However, there wouldn’t be much need to round-trip a html report since you will have all the data you need within Dynamo.

In respect to performance, BimorphNodes is about 3x faster than the IC, however its not a fair comparison as IC builds a report and displays it in a UI dialog which will require additional time to render. Nevertheless, BimorphNodes clash algorithm its micro-optimised, making it a lot faster, despite being far more versatile (which typically impacts performance).

If your projects are huge with millions of elements, BimorphNodes is ideally suited for these types of projects -
I’ve performed tests on massive datasets with over 65,000,000 possible clashes and it took about 2.5 minutes to compute. If you structure your clash tests smartly, then there is no reason why you would need to take a ‘strategic coffee break’.

There have been some good examples posted on the forum of visualising and documenting clash tests using the Element.IntersectsElement node which you may want to look at before changing your existing workflow:
Colour overrides: Clash detection script to identify the clash and visualize it using overrides in view node
Clash reporting: Clash Detection

6 Likes