2012-03-26 14 views

答えて

3

実際には "Copy Parallel ..."コマンドを実行しようとしている場合は、そうすることができますあなたは、プログラムのコピーを平行に複製しようとしている場合は、この

 IDocument d = ArcMap.Document as IDocument; 
     IUID ud = new UIDClass(); 
     ud.Value = "esriEditor.CopyParallelCommand"; 
     ICommandItem c = d.CommandBars.Find(ud); 
     c.Execute(); 

は、私だけでは操作を模倣するIConstructCurve3を使用していることがわかりました。この方法は、ほぼ同じパラメータを持つようです。

 //Get the selection 
     UID uid = new UIDClass(); 
     uid.Value = "esriEditor.Editor"; 

     IEditor editor; 
     editor = (IEditor)ArcMap.Application.FindExtensionByCLSID(uid); 

     //Get Selection 
     IEnumFeature enumfeature = editor.EditSelection; 
     IFeature f = enumfeature.Next(); 

     //For adding new features 
     IFeatureClass fc = f.Class as IFeatureClass; 

     //Start an operation for undo/redo 
     editor.StartOperation(); 
     while (f != null) 
     { 

      //Interface to do a "copy parallel" 
      IConstructCurve3 construct = new PolylineClass(); 

      //Rounded, Mitered, etc 
      object offset = esriConstructOffsetEnum.esriConstructOffsetRounded; 

      IPolyline source = f.Shape as IPolyline; 

      //Method call (0.001 or -0.001 determines left/right) 
      construct.ConstructOffset(source, 0.001, ref offset); 

      //Storing output shape 
      IFeature newFeature = fc.CreateFeature(); 
      newFeature.Shape = (IGeometry)construct; 

      newFeature.Store(); 


      f = enumfeature.Next(); 
     } 

     editor.StopOperation("Copy Parallel"); 

     //refresh 
     ArcMap.Document.ActiveView.Refresh(); 

私だけIConstructCurve3との関連部分をハッキングしてきた、あなたがチェックを行うと欲望場合、ソース機能はオーバー属性をコピーしてください。

VS2010をお持ちの場合は、ESRI ArcMap Addin Project Templateをボタンで使用してButton Addinを作成するだけで、このコードが実行されます。次に、コードをコピーしてOnClick()イベントに貼り付けます。 (もちろん、必要なesriリファレンスを設定することを忘れないでください)

+0

私はそれに入る前にまず「ありがとう」と言わなければなりません。私は後でさらに質問をするかもしれません。どうもありがとう。 – user1293655

+0

コードがうまくいった。私は本当にあなたの助けに感謝します。私はArcObjects SDK 10 Microsoft .NET Frameworkを3週間読んでいます。まだコードの作成を開始する方法がわかりません。どこから始めるのが正しい方向に向かうことができますか?私は "esriEditor.CopyParallelCommand"のようなコマンドをどこの本や命令で見つけることができますか?私はArcGISデスクトップをたくさん使っていて、Pythonコードを書くことができます。しかし、私はC#を使用してArcObjectsにはかなり新しいです。再度、感謝します。お返事を待って。 – user1293655

+0

あなたがArcObjectsを完全に新しくしていれば...私はまだESRIにかなり良い開発ドキュメントがあると思います。このサイト。 http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.htmlがおそらく最善の出発点です。コンテンツの表の中の何かを「Walkthrough:」という言葉で探し、物事を段階的に陳腐化させます。だから、VS2010を開き、ウォークスルーのいずれかでそれに行くと、あなたはアイデアを得るでしょう。がんばろう。 – JTran

関連する問題