public static IFeatureClass FCmain_anno; - set to feature linked annotation feature class public static IFeatureClass FCmain; - set to water main feature class public static IFeatureSelection FMainSel; set to selected water main public static ISelectionSet MainSelSet; public static ISelectionSet Anno_SelSet; public static IFeatureCursor FCur_main; public static IFeatureCursor FCur_anno; public static IFeature FMain; public static IFeature F_anno; public static IAnnotationFeature2 Anno_Feat; FCmain_anno = FLmain_anno.FeatureClass; FCmain = FLmain.FeatureClass; //get main feature IQueryFilter QF = null; FMainSel = (IFeatureSelection)FLmain; MainSelSet = FMainSel.SelectionSet; MainSelSet.Search(QF, false, out Cur_Main); FCur_main = (IFeatureCursor)Cur_Main; FMain = FCur_main.NextFeature(); //get existing anno feature F_annoSel = (IFeatureSelection)FL_anno; Anno_SelSet = F_annoSel.SelectionSet; Anno_SelSet.Search(QF, false, out Cur_anno); FCur_anno = (IFeatureCursor)Cur_anno; F_anno = FCur_anno.NextFeature(); Anno_Feat = (IAnnotationFeature2)F_anno; //create new main anno feature IFeature wmannoFeature = FCmain_anno.CreateFeature(); IAnnotationFeature2 FLannoFeat = (IAnnotationFeature2)wmannoFeature; FLannoFeat.Annotation = Anno_Feat.Annotation; UID edUID = new UIDClass(); edUID.Value = "{F8842F20-BB23-11D0-802B-0000F8037368}"; IEditor editor = (IEditor)m_application.FindExtensionByCLSID(edUID); IEditLayers EditLayers = (IEditLayers)editor; EditLayers.SetCurrentLayer(FLmain_anno, 0); //assign OID to feature linked anno int OIDFieldvalue = FMain.OID; FLannoFeat.LinkedFeatureID = OIDFieldvalue; //assign AnnoClassID int annoclassid = 0; FLannoFeat.AnnotationClassID = annoclassid; //store feature editor.StartOperation(); wmannoFeature.Store(); editor.StopOperation("Done"); ////Get new feature linked anno feature and set symbolID IQueryFilter pQF = new QueryFilterClass(); pQF.WhereClause = "FeatureID = " + OIDFieldvalue; IFeatureCursor FLannoCursor = FCmain_anno.Update(pQF, false); long symbolid = 0; wmannoFeature = FLannoCursor.NextFeature(); wmannoFeature.set_Value((FCmain_anno.FindField("SymbolId")), symbolid); editor.StartOperation(); FLannoCursor.UpdateFeature(wmannoFeature); wmannoFeature.Store(); editor.StopOperation("IDs updated"); IQueryFilter mQF = new QueryFilterClass(); mQF.WhereClause = "OBJECTID = " + OIDFieldvalue; IFeatureCursor mFCursor = FCmain.Update(mQF, false); IFeature mF = mFCursor.NextFeature(); mF.set_Value(FCmain.FindField("Owner"), mF.get_Value(FCmain.FindField("Owner"))); editor.StartOperation(); mFCursor.UpdateFeature(mF); editor.StopOperation("Main Updated"); //delete original anno F_anno.Delete(); pMap.ClearSelection(); mxDoc.ActiveView.Refresh();
Přihlášení členové mohou přispívat, sledovat aktualizace a další. Jste tu noví? Zaregistrujte si bezplatný účet.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.