Hmmm... that's an interesting one! I've played around a bit with FME and I noticed that same problem. Furthermore, I haven't been able to fix this using standard transformers (e.g. by using a Triangulator, GeometryValidator etc.).
It seems to me as if FME doesn't read/write surface normals (correctly) for Geodatabases. Was your box created in ArcGIS or also with FME? I created and read the boxes with FME, so not sure whether reading or writing is the problem here.
I created a box in FME, triangulated it to make sure that it has normals, wrote it as a multipatch with measures and read it back in. I noticed that the fme_vertex_normal (x, y, z) values are all 0, 0, 1. That seems wrong to me. But maybe I'm doing something wrong...
The boxes were created in FME using a Creator transformer. Writing to geodatabase is not a problem as the box is displayed with shading in ArcScene (if it is not first read in FME).
Sounds like you might want to forward this to Safe support.
Sounds like you might want to forward this to Safe support.
Case number C124278 submitted!
The boxes were created in FME using a Creator transformer. Writing to geodatabase is not a problem as the box is displayed with shading in ArcScene (if it is not first read in FME).
Oh, sorry, I understood that the problem also occurred when viewing it in ArcScene.. But it only happens when it's first read by FME? Really odd... As @david_r already mentioned: sounds like a bug!
This problem is due to the Geodatabase reader creating incorrect vertex normals on the multipatch features that don't already have them.
Until this problem is fixed, you can use a combination of the MeasureRemover and GeometryValidator to remove the vertex normals and replace them with the correct normals. Alternatively, if you create the vertex normals with the GeometryValidator before writing to the original Geodatabase, you can avoid the reader problem.
Thanks DaveAtSafe, this works great.
I added 3 MeasureRemovers added to removing fme_vertex_normal_x, fme_vertex_normal_y, and fme_vertex_normal_z. Then GeometryValidator added with Missing Vertex Normals checked.
The workspace needs to keep the AppearanceRemover transformer, otherwise the malformed appearance that is created during the reading process remains present.