IFCs with "sharp" triangulated faces cannot have spot elevations or spot coordinates
- Dominant language
- C#
- Stars
- 637
- Forks
- 225
- PR merge metrics
- No merged PRs in 30d
Description
We get IFCs from 12D of terrain and various civil things which naturally have TINs. Portions of the triangulated meshes which are fairly regular triangles work fine and we can use the Revit spot elevation / spot coordinate tool fine on them. However if even a portion of the TIN has very obtuse triangles (e.g. triangles where one of the three internal angles is < 0.3 degrees) then the entire mesh "breaks" in that although you can see the mesh, you cannot use the spot elevation / spot coordinate tool on it.
Right now to fix this consultants are running a custom script which detects all faces in the BReps (these are IFC2X3 files coming from 12D) and calculates the angles of each triangle, and if any angle is less than 0.3, the face gets deleted.

In the screenshot you can see a portion of a linked IFC selected in Revit. Portion circled in B is an IFC element which has fairly regular triangles. You can see the edges of the triangles very clearly in Revit and the spot annotation tools work. Portion cirlced in A is another IFC element which contains portions of highly squashed triangles. As a result you will notice instead of seeing triangle edges throughout, only portions of the triangles are displayed, and the rest of the triangle edges are invisible for some reason. The spot annotations won't work on portion A.
Contributor guide
Research direction
No source file, test, or entry point is named. Start by reproducing the issue with an IFC2X3 terrain from 12D containing triangles below 0.3 degrees, then trace how the linked mesh is processed for Revit spot elevation and spot coordinate tools. Done means these tools work across the mesh without requiring consultants to delete sharp faces.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 28/100