Element
Ultra-efficient clash detection and intersection nodes for Revit elements and solids.
The Element nodes provide access to optimized clash detection algorithms that deliver up to 99.5% faster processing compared to standard Dynamo approaches. Supporting elements from an unlimited number of linked models, these nodes also enable linked model vs linked model clash detection. Ideal for large-scale intersection workflows with millions of elements where performance is critical.
IntersectsElement
Element.IntersectsElement performs ultra-efficient clash/interference checks between two sets of Revit Elements.
It utilises a custom-built clash detective algorithm which offers significant advantages over Revit's built-in Interference Checker (IC). The algorithm in BimorphNodes processes results faster by filtering each target element's surrounding elements first, then performs the clash testing on the subset to optimise the process. The technique results in a significant performance increase, reducing processing time by as mach as 99.95% compared to Dynamo's Geometry.IntersectAll or Geometry.DoesIntersect + Element.Solid nodes for example.
The clash detective algorithm also provides holistic LinkElement support which surpasses limitations in Revits IC, including linked element vs linked element clash detection, and support for linked elements from an unlimited number of Link Instances. More details about LinkElements and the unique clash detection functionality is explained on the LinkElement page.
Each element in set A is clashed against all elements in set B and returned as a ElementIntersectionResult. Use the ElementIntersectionResult query nodes to evaluate the results.
To eliminate false-flags, the node prevents self-intersections if an element is found in both element Set A and B.
Inputs
elementSetAElement[]elementSetBElement[]Outputs
ElementIntersectionResult[]ElementIntersectionResult[]Features
- Clash check Revit elements with another set of Revit Elements
- Ultra-efficient optimisations reduce processing time by up to 99.5% compared to standard Dynamo nodes
- Ideally suited for large-scale building projects with millions of elements
- Automatically prevents self-intersections if an element is found in both element set A and B
- Output ElementIntersectionResult's are the result of each 'clash' between an element from set A and the Elements in set B
- Provides holistic support of elements from linked Revit models when used with LinkElement nodes
- Supports LinkElement's from an unlimited number of Revit Link Instances
- LinkElement vs LinkElement clash detection fully supported, even if the linked elements are transformed
User Guide
IntersectsSolid
Element.IntersectsSolid is a clash-detection node which provides significant performance enhancements when clashing Dynamo Solids vs Revit elements. The node is extremely useful in situations where there is no reference geometry – for example, testing if door swings clash with another element. In this scenario, Dynamo Cylinder extrusions could be created at each door to represent the swing zone, then Element.IntersectsSolid node can be used to perform the clash test.
The node is highly optimised to significantly improve efficiency in comparison to standard Dynamo nodes such as Geometry.IntersectAll.
In some cases, the solid (which has to be converted to a Revit API solid to perform the intersection test) can fail due limitations with certain geometries processed by the Revit API Shape Builder. The node has been designed to handle these failures and a SolidIntersectionResult is returned – use the SolidIntersectionResult.FailedToConvert node to check if the conversion failed.
The node also supports elements from linked Revit models – simply input LinkElement nodes.
Inputs
solidsSolid[]elementElement[]Outputs
SolidIntersectionResult[]SolidIntersectionResult[]Features
- Intersect Dynamo Solids with Revit Elements
- Ultra-efficient optimisations reduce processing time by up to 99.5% compared to standard Dynamo nodes
- Ideally suited for large-scale building projects with millions of elements
- Supports elements from linked Revit models when used with LinkElement nodes
User Guide
IsElementSupported
Not all Revit elements are supported by the IntersectsElement and IntersectsSolid nodes because the Revit API provides no support. It is difficult to know which elements are not supported since the output from these nodes defaults to an empty list when intersections fail.
Element.IsElementSupported provides a means to check if the element is supported, outputting true or false accordingly. If the element is not supported (such as Rooms), a good alternative is to extract its solid volume and use the Element.IntersectsSolid node.
Inputs
elementElementOutputs
boolboolFeatures
- Returns true if the input element is supported by the Element.Intersection nodes
User Guide
