Skip to main content
Question

Reading and displaying geodatabase geometry appearance

  • March 8, 2017
  • 7 replies
  • 40 views

ghareth
Contributor
Forum|alt.badge.img+1

I am experiencing a problem displaying mulipatch features read from Esri geodatabase. The features lose the ability to be rendered with shading.

The problem is best demonsrated using the following workspace. On the top, a shape file multipatch feature is read, the (default) appearance removed (for consistency with the geodatabase operation), the appearance is then set to green and then displayed on the left.

On the bottom row, a geodatabase multipatch is read, appearance removed, appearance set to green and then displayed on the right. The box on the right is not shaded. An identical problem re-occurs if saved to a geodatabase and viewed in ArcScene.

How do I get the box on the right to look like the box on the left?

This post is closed to further activity.
It may be an old question, an answered question, an implemented idea, or a notification-only post.
Please check post dates before relying on any information in a question or answer.
For follow-up or related questions, please post a new question or idea.
If there is a genuine update to be made, please contact us and request that the post is reopened.

7 replies

geosander
Forum|alt.badge.img+7
  • March 8, 2017

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...


ghareth
Contributor
Forum|alt.badge.img+1
  • Author
  • Contributor
  • March 9, 2017
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).

 

 


david_r
Celebrity
  • March 9, 2017

Sounds like you might want to forward this to Safe support.


ghareth
Contributor
Forum|alt.badge.img+1
  • Author
  • Contributor
  • March 9, 2017

Sounds like you might want to forward this to Safe support.

Case number C124278 submitted!

 


geosander
Forum|alt.badge.img+7
  • March 9, 2017
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!

daveatsafe
Safer
Forum|alt.badge.img+20
  • Safer
  • March 15, 2017

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.

ghareth
Contributor
Forum|alt.badge.img+1
  • Author
  • Contributor
  • March 16, 2017

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.