Suite

Exporter plusieurs FC vers cad dans arcobjects C #


J'essaie actuellement d'exporter plusieurs classes d'entités vers un seul fichier .dxf via la fonction QuickExport de l'extension DataInteroperability. Cependant, cette fonction ne convertit qu'un FC en un .dxf, c'est-à-dire. Un dedans, un dehors.

Quelqu'un peut-il m'indiquer une autre fonction qui permet de convertir plusieurs fichiers en un seul format de sortie ?

J'ai essayé d'utiliser une liste comme entrée mais en vain. Je connais la fonction ExportToCAD en python. Existe-t-il quelque chose de similaire en C# ?.

[EDIT] Voici un code avec lequel j'ai joué. J'ai décidé d'utiliser simplement la fonction ExportCAD dans l'espace de noms ESRI.ArcGIS.ConversionTools.

essayez { IMxDocument mxdoc = ArcMap.Application.Document as IMxDocument; Carte IMap = mxdoc.FocusMap comme IMap ; ITrackCancel tc = new TrackCancel(); for (int i = 0; i < map.LayerCount; i++) { List layerInputList = nouvelle liste(); ILayer pLayer = map.Layer[i]; if (!(pLayer est IGroupLayer)) { for (int j = 0; j < map.LayerCount; j++) { ILayer layer = map.Layer[j]; if (le calque est IGroupLayer) { IGroupLayer groupLayer = calque as IGroupLayer; ICompositeLayer compGroupLayer = groupLayer as ICompositeLayer; for (int k = 0; k < compGroupLayer.Count; k++) { ILayer featLayer = compGroupLayer.Layer[k]; layerInputList.Add("C:UsersjhansenDocumentsLGA_GDBs" + pLayer.Name + ".gdb" + featLayer.Name); } } } Géoprocesseur gp = new Géoprocesseur(); ExportCAD exportCAD = new ExportCAD(); exportCAD.in_features = layerInputList; exportCAD.Output_File = "C:UsersjhansenDocumentsLGA_GDBs" + pLayer.Name + "_CAD.dxf" ; exportCAD.Output_Type = "DXF_R14"; gp.Execute(exportCAD, tc); } } } catch (Exception ex) { MessageBox.Show(ex.Message + "

" + ex.Source + "

" + ex.StackTrace); }

Et voici l'erreur que j'obtiens suggérant qu'il tombe augp.execute()ligne

Je soupçonne que cela a quelque chose à voir avec la variable de liste que j'utilise àexportCAD.inputfeatures.


Selon les suggestions de Michael,

Voici votre solution. Le copier-coller peut ne pas fonctionner, car je n'ai pas testé le code

Paramètres IVariantArray = new VarArrayClass(); parameters.Add(@"D:mydb.gdbmyFeatuerClass1;D:mydb.gdbmyFeatuerClass2"); paramètres.Ajouter("DWG_R2007"); parameters.Add(@"C:	empExportCAD.DWG"); Géoprocesseur gp = new Géoprocesseur(); bool response = RunTool("ExportCAD_conversion", parameters, null, false); public static bool RunTool(string toolName,IVariantArray parameters , ITrackCancel TC, bool showResultDialog) { Geoprocessor gp = new Geoprocessor(); IGeoProcessorResult result = null; // Exécuter l'outil try { result = (IGeoProcessorResult)gp.Execute(toolName, parameters, TC); chaîne re = résultat.GetOutput(0).GetAsText(); if (showResultDialog) ReturnMessages(gp); if (result.MaxSeverity == 2) //error return false; sinon retourne vrai ; } catch (COMException err) { MessageBox.Show(err.Message + " dans RunTool"); RetourMessages(gp); } catch (Exception err) { MessageBox.Show(err.Message + " dans RunTool"); RetourMessages(gp); } renvoie faux ; }


Voir la vidéo: SB: Importing u0026 Exporting (Octobre 2021).