Quantcast
Channel: Forums - ArcObjects SDKs
Viewing all articles
Browse latest Browse all 1374

Start editing programmatically - how to get the workspace to edit?

$
0
0
Hello experts,

when trying to start an edit session programmatically I am a little stuck with the workspace to edit.
Everything works fine, as long as I use feature classes belonging to a feature dataset. But as soon as I use a standalone feature class the featureDataset attribute (see code below) becomes null (of course).

Is it just bad practice to have standalone feature classes? Or is there another way, to obtain the right edit workspace?

Thanks in advance, any hint is appreciated.

Regards
Fossi

Code:

//http://resources.esri.com/help/9.3/ArcGISDesktop/dotnet/2626201e-de60-4bab-bb1c-d16fcd4f8c4b.htm#NETFeature
        private void startEditing(ESRI.ArcGIS.Framework.IApplication ArcMap)
        {
            ESRI.ArcGIS.Geodatabase.IFeatureClass m_featureClass;
            ESRI.ArcGIS.Editor.IEditor m_editor;

            ESRI.ArcGIS.ArcMapUI.IMxDocument mxDocument = (ESRI.ArcGIS.ArcMapUI.IMxDocument)ArcMap.Document;
            ESRI.ArcGIS.ArcMapUI.IContentsView curTOC = mxDocument.CurrentContentsView;
            //Create a method to get a reference to the feature class or add the ArcGIS Desktop snippet.
            //http://help.arcgis.com/en/sdk/10.0/arcobjects_net/componenthelp/index.html#/Get_FeatureClass_of_Selected_Feature_Layer_in_Contents_View_Snippet/00490000004r000000/
            m_featureClass = ArcMapHelperFunctions.GetFeatureClassOfSelectedFeatureLayerInContentsView(curTOC);

            //Once the feature class has been referenced, get the workspace to edit by creating an IFeatureWorkspace
            //and setting an IWorkspace object to the feature workspace using a cast.
            ESRI.ArcGIS.Geodatabase.IFeatureWorkspace featWork = m_featureClass.FeatureDataset.Workspace as ESRI.ArcGIS.Geodatabase.IFeatureWorkspace;

            ESRI.ArcGIS.Geodatabase.IWorkspace editWorkspace = featWork as ESRI.ArcGIS.Geodatabase.IWorkspace;

            //Start an edit session on the workspace holding the feature class, which must be in a feature dataset.
            ESRI.ArcGIS.esriSystem.UID editorUid = new ESRI.ArcGIS.esriSystem.UID();
            editorUid.Value = "esriEditor.Editor";
            m_editor = ArcMapHelperFunctions.app.FindExtensionByCLSID(editorUid) as ESRI.ArcGIS.Editor.IEditor3;

            m_editor.StartEditing(editWorkspace);
        }


Viewing all articles
Browse latest Browse all 1374

Trending Articles