I am using ArcGIS RT 10.1 in Java to work with a customer geodatabase. After receiving an update of the data, I started seeing Automation execptions on any attempt at opening a feature class:
AutomationException: 0x80041352 - Unable to create object class extension COM component [MyClassName] in 'Esri GeoDatabase' at
com.esri.arcgis.geodatabase.Workspace.openFeatureClass(Unknown Source)
I finally traced this down to the data having come from the ArcFM environment (apparently there are extension classes associated that we do not have access to). After a bit more digging I found a way to clear the extensions by doing this for every feature class:
| | IFeatureWorkspaceSchemaEdit edit = (IFeatureWorkspaceSchemaEdit) featureWorkspace; |
| | edit.alterClassExtensionCLSID(feature_class_name,null,null); |
| | UID id = new UID(); |
| | id.setValue(com.esri.arcgis.geodatabase.Feature.class); |
| | edit.alterInstanceCLSID(feature_class_name,id); |
This gets me about 98% of the way there. I can open the feature class, traverse the network, get my hands on shapes, etc. However, now I cannot get from a network EID directly back to a shape. Any attempt at calling:
iGeometricNetwork.getGeometryForEdgeEID(eid);
or
iGeometricNetwork.getGeometryForJunctionEID(eid);
throws this exception:
AutomationException: 0x80004005 - Unspecified error
Clearly there is a connection broken between the geometric network and the feature class. I'm guessing I need to be doing something slightly different in the schema edit, but the documentation is not forthcoming on the details. Can anyone give me the magic incantation?