Do we have any guidance around what IFC considered as co-planar? Let me give a concrete example. Imagine that you have a faceted BRep (of any of the acceptable IFC2x3/IFC4 variants). One of the facets is defined by 4 points - (0,0,0), (0,1,0), (1,0,0) and (1,1,eps), where eps is a small number. Clearly if eps = 0, these 4 points are co-planar, and if eps is anything else, they mathematically are not. For what values of eps would we say that the incoming data is incorrect (e.g., I would think eps=1 is clearly invalid), and for what values would we say that the receiving software should accept the information as representing a plane?
On a bigger note, I think these sorts of issues will become more prevelant when IFC4 advanced BReps are used more often, but hopefully we can start somewhere.
It is the Precision attribute of the corresponding
IfcGeometricRepresentationContext entity that defines when should we consider two points to be identical. So if once you have the definition of a plane, you can project any point to that plane, and check if the distance of the original and projected points is smaller than the specified Precision value.
Your example shows that there is an ambiguity in calculating the plane, namely in theory it can yield to different results based on the arbitrary decision of selecting three points of a polygon to calculate the plane.
As far as remember there is no agreed upon method for determining whether a set of points are co-planar or not.
Just like there is the IfcSameCartesianPoint function defined in the express schema, there could be e.g. an IfcSamePlane function to provide guidance, and eliminate the ambiguity. This could even be used in the certification process to check the validity of physical files against the schema.