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?
Solved! Go to Solution.
you can get a free install from Schneider called the ArcFM Object Reader
If this is installed on the same machine as your code, you will find it "stubs out" the calls to the feature class extensions and your code may well work as you expect.
ArcFM Object Reader (32-bit and 64-bit) 10.2 | exchange
you will need to know which version of ArcFM is being used with your features to get the right Object reader.
Forgot all about that, good call.
In theory the ArcFM tool would be a viable option. However, my employer forbids developers from clicking through license agreements with explicit legal clearance. As a practical matter I need to stick with the tools I have or (as was suggested) have the customer do the conversion.
I really appreciate all the advice, and good catch on the Fault Indicator feature class! That slipped right by me. I thought it was referring to something in the ESRI library internals (yesterday was a long day).