Â
Â
I am building validation rules for 3D buildings. One of the rules I would like to test is to check that all the surfaces (walls, ground surfaces, roofs) are not crossing each other.Â
Â
When I test this with dummy data, this works fine using the SpatialRelator. (Test to perform: Crosses)Â
I create dummy data by creating 2D-lines an extrude them (some of them with a constant extrusion height, some of them with and extrusion vector) so I get surface which intersect somewhere in 3D (and the intersection is a line) and the SpatialRelator detects my crossing objects. So this works fine.]Â
Â
When I test the same with real data (and I know some of the surfaces do cross, the SpatialRelator doesn not detect the crossings.Â
Â
I have the impression that the difference is the geometry type of my "surfaces".Â
In my dummy data the Geometry is IFMECompositeSurface and contains a IFMEFace and an Appearance. (it is the extruder who changes the geometry-type from line into IFMECompositeSurface)Â
My real data have a geometry type IFMEMultiArea and contains and IFMEPolygon with a boundary (So normal polygons, but with 3D vertices in X, Y and Z)Â
Â
So I assume I need to change IFMEMultiArea into IFMECompositeSurface. But I don't succeed in doing so.Â
Â
I thought I would need the GeometryCoercer and set the geometrytype to "fme_composite_surface".Â
But this doesn't change anything. The help of the GeometryCoercer states :Â
"If you try to set the feature's geometry to fme_composite_surface and the geometry of the feature is not a multi-surface or brep solid, or extrusion or box or csg solid, then the feature's geometry will be unchanged. An exception for this option is when the source feature contains a mesh, in which case this option will produce a multi-surface."Â
Â
So, I'll need something else... any suggestions on creating IFMECompositeSurfaces?Â
Â
ThanksÂ
Â
Bruno