Skip to main content

Is it possible to convert a surface to 3d pts, lines or polygons

background: I've been given a surface from Civil3D and wrote it to an esri filegdb multipatch feature class using workbench, however you cannot use a multipatch with the surface tools in esri (contour, difference etc.) so i am attempting to recreate the autocad surface as an esri TIN. we don't have access to the masspoints or breaklines that originally generated the civil3d surface

Hi @nfink, if the surface geometry is an IFMECompositeSurface, the GeometryPartExtracter with this Geometry XQuery can be used to extract 3D polygons from the surface.

Part to TestLeft ValueOperatorRight ValueThe parent of this partGeometry Type=IFMEFace

Hi @nfink,

To be able to get hands on 3D geometry in FME you need to convert the fme_geometry to something that FME can deal with internally. I assume that you've got an IFMEMesh geometry type that conflicts with several transformers. What you've got to do is coercing your mesh to 3D Polygons. To do so

  1. use the GeometryCoercer and coerce your mesh to an CompositeSurface.
  2. Next use the Deaggregator to get hands on the polygons (triangles). Don't forget to set parameter "Split Composites" to "yes"
  3. Finally use the GeometryCoercer again to set the fme_geometry to polygons, otherwise most of the transformers will still believe that your features are surfaces although you did already crack them down to polygon level. The Deaggregator doesn't change the fme_geometry type.

Keep in mint that this approach will only work for geometry but not for texture! You can't keep texture information during coercing to polygons.


Hi @nfink,

To be able to get hands on 3D geometry in FME you need to convert the fme_geometry to something that FME can deal with internally. I assume that you've got an IFMEMesh geometry type that conflicts with several transformers. What you've got to do is coercing your mesh to 3D Polygons. To do so

  1. use the GeometryCoercer and coerce your mesh to an CompositeSurface.
  2. Next use the Deaggregator to get hands on the polygons (triangles). Don't forget to set parameter "Split Composites" to "yes"
  3. Finally use the GeometryCoercer again to set the fme_geometry to polygons, otherwise most of the transformers will still believe that your features are surfaces although you did already crack them down to polygon level. The Deaggregator doesn't change the fme_geometry type.

Keep in mint that this approach will only work for geometry but not for texture! You can't keep texture information during coercing to polygons.

thank you @whkarto

 


Reply