Date de cration "#/$"/$% Date de dernire modification "#/$"/$% Logiciels utiliss ArcGIS &'A &' Nom de la procdure Introduction la programmation VBA et VB dans ArcGis Table des matires A(Automatisation et d!)elo**ement dans ARCGIS((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((" '(Introduction + &isual 'asic ,or A**lications(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((- a(Utilisation de &'A dans ARCGIS(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((- C(Cr!ation d.une macro dans ARCGIS(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((% D(Cr!ation de contr/les *our macro dans ARCGIS(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((# E(A0out d.une dll dans arcgis(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((1 F(Cr!ation d.une dll dans &'((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((("$ Programmation ArcGis On *ourra se re*orter au site du 2( Sa3ada de l.Uni)ersit! d.Otta3a 4 lien mort5 dont cette *artie est la traduction( Les li)res num!ri6ues li)r!s a)ec ArcGIS sont aussi tr7s utiles et com*lets et le site internet d.ESRI ,ournira !galement toutes les in,ormations utiles( &oir notamment 8 9tt*8//3e:9el*(esri(com/arcgiSDEs;to*/1(</inde=(c,m> ?o*ic@ameACreatingBcustomBcommandsB3it9B&'ABandBUIBControls et 9tt*8//resources(esri(com/9el*/1(</arcgisdes;to*/com/COC/&'A/Dor;ingB&'A(9tm A.Automatisation et dveloppement dans ARCGIS Dans de nom:reu= cas il est *r!,!ra:le de d!)elo**er soiEmFme une a**lication 6ui n.est *as im*l!ment!e dans le SIG 8 "( *our une ,onction 6ui n.e=iste *as en standard G -( *our une o*!ration ,astidieuse en standard G <( *our une o*!ration r!*!titi)e( ArcGIS est *ersonnalisa:le + lHaide de tout langage de *rogrammation con,orme + la norme COC 4*ar e=em*le &isual 'asic &isual CII et &isual JII5( ?ous les com*osants dHArcGis sont utilisa:les *our d!)elo**er des a**lications( Ces com*osants sont li)r!s dans la *lateE ,orme ArcO:0ects( Il est *ossi:le d.!tendre ArcO:0ects en !cri)ant des com*osants COC( Arc&ie3 est li)r! a)ec le langage de *rogrammation &isual 'asic ,or A**lications 4&'A5( Les tJc9es 6ue lHon accom*lit ,r!6uemment a)ec le logiciel *eu)ent Ftre automatis!es et de nou)eau= mas6ues :oKtes de dialogue et contr/les gra*9i6ues )iennent sHa0outer au= a**lications ArcCa* ArcCatalog et ArcScene( Si )ous n.a)eL 0amais *rogramm! ARCGIS )ous *ourreL *our mieu= saisir la m!t9odologie utilis!e les outils sui)ants dans l.ordre cit! 8 a( La :ase de la *rogrammation dans ARCGIS se trou)e dans la calculatrice de c9am* 6ui *ermet de saisir des ,onctions *lus ou moins a)anc!es *our le calcul d.un attri:ut( :( On *ourra utiliser le langage &'A 4&isual 'asic ,or A**lications5 6ui est ,ournit a)ec ARCGIS( Cet outil :ien 6ue *rati6ue et *uissant ne *ermet *as la di,,usion sur d.autres *ostes de mani7re ,acile( c( On *eut aussi !crire son code sur d.autres *late,ormes 4e= 8 &isual Studio Del*9i M5 mais on ne :!n!,icie *lus des )aria:les d.entr!e dans ArcCa* et ArcCatalog 4:ien *rati6ues5( 2our BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB derni7re m+0 $"/-$$% "/"" Documentation Codage ArcGis Jules Fleury / SIGEO / CEREGE le *ortage et la r!utilisation d.une a**lication il sera sou9aita:le d.utiliser cette m!t9ode 6ui *ermet de g!n!rer des Dll acti)e N( 'ien sOr il ,audra dis*oser de l.outil de d!)elo**ement ad!6uat( A)ant de )ous lancer dans le d!)elo**ement d.un outil assureL )ous 6ue tout ou *artie de cet outil n.e=iste *as d!0+( 2our cela 0e )ous conseille d.utiliser les ,orums de discussion d.utilisateurs ou les sites rassem:lant les scri*ts( B.Introduction Visual Basic for Applications &isual 'asic est un langage orient!Eo:0et et command! *ar des !)!nements( a.Utilisation de VBA dans ARCGIS @ous allons *r!senter l.utilisation de code &'A dans ArcCa* + tra)ers la Calculatrice de c9am*( 2our mettre + 0our un c9am* on utilise la calculatrice( 2our y acc!der ,aire un clic droit sur un c9am* *uis ,onction Calculer les )aleurs ou)re la calculatrice( Figure 1 : Mise jour dun champ par la calculatrice Une ,ois la calculatrice ou)erte on *eut ta*er une e=*ression sim*le 4:outon a)anc! non coc9!5 ou alors utiliser du code ):a 4:outon a)anc! coc9!5 *our mettre + 0our le c9am* 8 Figure 2 : Utilisation de code VBA dans la calculatrice 2ar le :outon EnregM on *ourra enregistrer l.e=*ression 6ui sera alors sau)egard!e sous ,orme de ,ic9ier (cal( BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB derni7re m+0 $"/-$$% -/"" Documentation Codage ArcGis Jules Fleury / SIGEO / CEREGE 2ar le :outon C9argerM on *ourra c9arger des e=*ressions au ,ormat (cal( Calcul des coordones de point L.e=em*le ciEdessous *ermet le calcul de la coordonn!e = de c9a6ue *oint( Le code est le sui)ant 8 Pre-Logic VBA Script Code Dim dblPoint as double Dim pPoint as IPoint Set pPoint !s"ape# dblPoint pPoint.$ [Field] = dblPoint Si la *ro0ection nati)e de la classe n.est *as la mFme 6ue celle de la carte et 6ue l.on sou9aite r!cu*!rer les coordonn!es dans la *ro0ection de la carte alors on utilisera le code sui)ant 8 Pre-Logic VBA Script Code Dim pMxDoc As IMxDocument Dim pMap As IMap Dim point As Ioint Dim d! As Dou"le #et pMxDoc $ %&isDocument #et pMap $ pMxDoc'(ocusMap If )Not IsNull)*#&ape+,, %&en #et point $ *#&ape+ point'ro-ect pMap'#patial.eference d! $ point'! /nd If [Field] = d$ 2our calculer la coordonn!e y de c9a6ue *oint utiliser la *ro*ri!t! Y au lieu de N( Calcul de surface d0un pol1gone Utiliser le code sui)ant 8 Pre-Logic VBA Script Code Dim dblArea as double Dim pArea as IArea Set pArea !s"ape# dblArea pArea.area [Field] = dblArea Calcul du centro2de d0un pol1gone Utiliser le code sui)ant *our la coordonn!e = du contrPde d.une *olygone 8 Pre-Logic VBA Script Code Dim dblCent$ as double Dim pArea as IArea Set pArea !s"ape# dblCent$ pArea.Centroid.$ [Field] = dblCent$ C9anger N *ar Y *our a)oir la coordonn!e y du centroPde( Attention la d!,intion du centroPde utilis!e *ar la m!t9ode Centroid ne ren)oie *as tou0ours un *oint + l.int!rieur du *olygone( 2our a)oir le centre de gra)it! du *olygone *rogrammer le sans cette ,onction( Calcul du primtre d0un pol1gone Utiliser le code sui)ant *our calculer le *!rim7tre d.un *olygone 8 BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB derni7re m+0 $"/-$$% </"" Documentation Codage ArcGis Jules Fleury / SIGEO / CEREGE Pre-Logic VBA Script Code Dim dblPerimeter as double Dim pCur%e as ICur%e Set pCur%e !s"ape# dblPerimeter pCur%e.&engt" [Field] = dblPerimeter Calcul de l0en3eloppe minimum Figure 3 : Eneloppe !rectangle englo"ant# On *eut calculer l.en)elo**e 4rectangle englo:ant5 d.une ,orme 4*olygone *olyligne multi*oint5( 2our la largeur de l.en)elo**e 8 Pre-Logic VBA Script Code dim dblGeom as Double dim geom as IGeometr' set geom !s"ape# dblGeom geom.(n%elope.)idt" [Field] = dblGeom 2our la 9auteur de l.en)elo**e 8 Pre-Logic VBA Script Code dim dblGeom as Double dim geom as IGeometr' set geom !s"ape# dblGeom geom.(n%elope.*eig"t [Field] = dblGeom 2our la coordonn!e y ma=imum 8 Pre-Logic VBA Script Code dim dblGeom as Double dim geom as IGeometr' set geom !s"ape# dblGeom geom.(n%elope.+,a- [Field] = dblGeom 2our la coordonn!e y minimum 8 BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB derni7re m+0 $"/-$$% Q/"" Documentation Codage ArcGis Jules Fleury / SIGEO / CEREGE Pre-Logic VBA Script Code dim dblGeom as Double dim geom as IGeometr' set geom !s"ape# dblGeom geom.(n%elope.+,in [Field] = dblGeom 2our la coordonn!e N ma=imum8 Pre-Logic VBA Script Code dim dblGeom as Double dim geom as IGeometr' set geom !s"ape# dblGeom geom.(n%elope.$,a- [Field] = dblGeom 2our la coordonn!e N minimum 8 Pre-Logic VBA Script Code dim dblGeom as Double dim geom as IGeometr' set geom !s"ape# dblGeom geom.(n%elope.$,in [Field] = dblGeom %1pe de gomtrie d0un o"-et ARCGIS g7re di,,!rents ty*es de g!om!trie( Les *lus courant !tant :ien sOr les *olygones les *olylignes et les *oints mais il y en a :ien d.autres 8 Figure $ : %&om&tries g&r&es par A'(%)* CiEdessous une liste de g!om!tries a)ec leur code 8 esriGeometryNull = 0 esriGeometryPoint = 1 esriGeometryMultipoint = 2 esriGeometryPolyline = 3 esriGeometryPolygon = 4 esriGeometryEnvelope = 5 esriGeometryPath = 6 esriGeometryAny = 7 esriGeometryMultiPatch = 9 esriGeometryRing = 11 esriGeometryLine = 13 esriGeometryCircularArc = 14 esriGeometryBezier3Curve = 15 esriGeometryEllipticArc = 16 BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB derni7re m+0 $"/-$$% R/"" Documentation Codage ArcGis Jules Fleury / SIGEO / CEREGE esriGeometryBag = 17 esriGeometryTriangletrip = 18 esriGeometryTriangle!an = 19 esriGeometryRay = 21 esriGeometryphere = 22 Le ty*e de g!om!trie d.une classe *eut Ftre connu *ar la ,onction 8 Pre-Logic VBA Script Code dim intGeomT'pe as Integer dim geom as IGeometr' set geom !s"ape# dblGeomT'pe geom.Geometr'T'pe [Field] = intGeomT'pe 2ar e=em*le si la )aleur retourn!e est Q le ty*e de g!om!trie est un *olygone( Instructions conditionnelles On *eut ins!rer dans le code de la calculatrice des conditions i,( Le ty*e de condition *eut Ftre 8 If [champ] (=, <,>, <>, <=, >=) valeur then variable = nouvelle_valeur Else variable = nouvelle_valeur (e.g., [champ]) Endif Les signes (=, <,>, <>, <=, >=) sont les o*!rateurs( On *eut aussi utiliser la ,orme sui)ante 8 If [fieldname] (=, <,>, <>, <=, >=) SomeValue then output_variable = SomeNewValue Elseif [fieldname] (=, <,>, <>, <=, >=) SomeSecondValue output_variable = SomeOtherNewValue (e.g., [fieldname]) l!ei" #$$ #$$ el!e #$$ Endif Si l.on )eut c9oisir entre *lusieurs )aleurs *ossi:les on *ourra utiliser select case : Select case [fieldname] Case valeur in!tru%tion! Case valeur! in!tru%tion! #$$ &a!e el!e #$$ end select Comme e=em*le on *eut )ouloir classi,ier les su*er,icies des *olygones en < cat!gories 8 *etite moyenne et grande( 2our cela on utilisera le code sui)ant 8 Pre-Logic VBA Script Code dim - as string i. !area# /0 t"en -1petite1 elsei. !area# 20 and !area# /3 t"en -1mo'enne1 elsei. !area# 23 t"en - 1grande1 endi. [Field] = - BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB derni7re m+0 $"/-$$% S/"" Documentation Codage ArcGis Jules Fleury / SIGEO / CEREGE Lors6ue les )aleurs sont des c9aKnes de caract7re on utilise les guillemets comme illustr! ciE dessus( Lors6ue on utilise comme )aria:le ou comme )aleur un c9am* alors il est entre croc9ets comme illustr! ciEdessus *ar le c9am* TareaU( C.Cration d"une macro dans ARCGIS Une macro dans ArcGIS utilise le langage &'A et les com*osants ArcO:0ects *our automatiser une o*!ration( &'A est un langage de *rogrammation *ar !)enements 4utilisation de :outons de ,ormulaires 6ui d!clenc9ent une o*!ration5( A)ant de coder a)ec ArcO:0ects il ,audra se ,amiliariser a)ec toutes les notions 6u.il utilise( Citons entre autres 8 E c.est une )ariante de la *rogrammation o:0et G on utilisera ici les termes de classe d.o:0et d.inter,ace de m!t9ode et de *ro*ri!t! 4ou attri:ut5( 2our *lus d.in,os )oir la documentation online ,ournit a)ec ArcGis( L.a**rentissage du mod7le de donn!es d.ArcO:0ects est asseL com*le=e( On *ourra im*rimer les diagrammes des classes *our a)oir tous les o:0ets sous les yeu=( E on entre dans le mod7le de donn!es *ar des )aria:les *r!d!,inies 8 V ?9isDocument W 6ui est le document utilis! G V A**lication W 6ui est l.a**lication utilis!e( ArcCatalog ou ArcCa* *ar e=em*le( E On *eut coder dans @ormal(m=t a)ec ArcCa* 4c.est le tem*late de tous les documents arcma*5 4res*ecti)ement @ormal(g=d a)ec ArcCatalog5 au6uel cas la macro sera accessi:le dans tous les documents( On *eut coder dans 2ro0ect au6uel cas la macro sera accessi:le seulement dans le document ou)ert et le code sera sau)egard! dans le document (m=d( "E Ou)rir ArcCa* -E Aller dans le menu Outils Cacro et ou)rir l.editeur &'A <E &ous alleL saisir )otre code soit dans le ?9isDocument du @ormal(m=t soit dans celui du 2ro0ect( EssayeL d.utiliser des modules r!utilisa:les si une *artie du code *eut Ftre r!utilis!e dans d.autres *rogrammes et *our sim*li,ier la lisi:ilit! du code( QE sau)egarder )otre *ro0et et ,ermer l.editeur &'A RE cr!er un contr/le *our la macro( Dans le menu Outils 2ersonnaliser onglet Commandes selectionner la cat!gorie UIcontrols et cli6uer sur @ou)eau contr/le( BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB derni7re m+0 $"/-$$% %/"" Documentation Codage ArcGis Jules Fleury / SIGEO / CEREGE
Faire Cr!er et )ous o:teneL Le nou)eau contr/le se trou)e ici dans @ormal(m=t d.oX le *r!,i=e normal( 2our lui associer le code 6ue )ous )eneL de saisir c9agner le nom Ui:uttonControl" *ar le nom de la *roc!dure *rinci*ale 6ue )ous a)eL cr!!e( SE Faire glisser l.ic/ne de l.outil )ers la :arre d.outils oX )ous )ouleL l.ins!rer %E Clic droit sur l.ic/ne *our c9anger son a**arence D.Cration de contr#les pour macro dans ARCGIS )oir le site o,,iciel ESRI 8 9tt*8//3e:9el*(esri(com/arcgiSDEs;to*/1(</inde=(c,m> ?o*ic@ameACreatingBcustomBcommandsB3it9B&'ABandBUIBControls et 9tt*8//resources(esri(com/9el*/1(</arcgisdes;to*/com/COC/&'A/Dor;ingB&'A(9tm BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB derni7re m+0 $"/-$$% #/"" Documentation Codage ArcGis Jules Fleury / SIGEO / CEREGE (.A$out d"une dll dans arc%is &oir le document load dll ou le site introduction to gis du 2ro,( Sa3ada de l.Uni)ersit! d.Otta3a( On *ourra aussi )oir le su**ort d.ESRI France dans la section outils et e=em*les de scri*ts d.ArcGIS Des;to*( "( E)entuellement e,,ectuer la registration de la dll a)ec regs)r<- ou *ar un clic droit dans l.e=*lorateur 3indo3s *uis a)ec Register ou en lanYant le scri*t d.inscri*tion dans le registre 6ui *orte le mFme nom 6ue la dll( 2our d!sinstaller une dll ,aire dans la :oKte CsDos regs)r<- /u nomdll -( Ou)rir un document dans ArcCa*( <( E=!cuter la commande +util , -ersonnaliser *uis se *lacer dans la ru:ri6ue (ommandes( Q( Dans la Lone Enregistrer dans s!lectionner le ,ic9ier .ormal/m0t si l.on )eut 6ue l.outil soit accessi:les dans tous les documents arcma* sinon c9oisir le nom d.un document dans le6uel enregistrer la dll( R( Cli6uer sur le :outon Ajouter de*uis un ,ic9ier *uis s!lectionner le ,ic9ier nom/dll( S( Un nou)el outil est a0out! dans une des cat!gories de l.onglet (ommandes( Figure 1 : Ajout dune dll dans .ormal/m0t 7. Faire glisser le nouvel outil vers une des barres de l'interface d'Arca!. Figure 2 : Ajout dun "outon li& une dll dans linter3ace dArcmap ". Fer#er la bo$te de dialogue 'er!onnali!er. BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB derni7re m+0 $"/-$$% 1/"" Documentation Codage ArcGis Jules Fleury / SIGEO / CEREGE 4.Cration d"une dll dans VB &oir sur le ,orum d.ESRI la discussion ici( &oici l.e=*lication 8 "#First, you need to set up the project environment in Visu! "sic# $ %pen V", nd c!ic& '(ctive) *!!' in the +e, -roject di!o. /o01 $ 2ince you ,i!! /e usin. (rc%/jects, you ,i!! need to re3erence the 4256 %/ject 7i/rry 8esri9ore1o!/:1 $ 9!ic& on -roject;5e3erences 3rom the menu /r $ 2cro!! do,n the !ist nd c!ic& '4sri %/ject 7i/rry' then '%<' $ 9hn.e the nme o3 your project $ 9!ic& -roject;-roject -roperties $ %n the =ener! t/, enter the ne, nme o3 your project under '-roject +me' $ 9hn.e the nme o3 your c!ss 8de3u!t is 9!ss1:1 >ou mi.ht ,nt to nme it s c!s9!ss+me 8e1.1, c!s?y9!ss:1 $ 9!ic& F4 to /rin. up -roperties ,indo, $ @ype ne, nme in 8+me: property $ +o, you re redy to strt codin.1118!ter you ,i!! cut nd pste your v/ code: $ (t minimum, to crete ny commnd in Visu! "sic tht ,i!! /e used in n 4256 product, you need to imp!ement the 69ommnd inter3ce1 $ 63 you re !so cretin. too! $ you need to imp!ement the 6@oo! inter3ce1 (t the top o3 your code p.e 3or your c!ss, type# %ption 40p!icit 6mp!ements 69ommnd 6mp!ements 6@oo! -rivte mAp(pp s 6(pp!iction -rivte mAp*oc s 6?0*ocument $ @he t,o !ines 8'6mp!ements111': ,i!! utomtic!!y popu!te the %/ject nd -rocedure 8methods, properties: drop do,n /o0es1 $ 4ven i3 you re not .oin. to provide code 3or !! o3 the properties nd methods, you hve to t !est 'stu/ out' !! o3 them1 4256 provides n (dd$in tht does this 3or you, /ut to do so mnu!!y, just c!ic& on 69ommnd in the o/ject drop do,n !ist nd c!ic& on ech o3 the methods nd properties in the procedure drop do,n !ist, then the sme 3or 6@oo!1 $ 6t is .ood ide to dd code tht t !est identi3ies your commnd 3rom others1 $ For e0mp!e, you cn crete itBs o,n cte.ory -rivte -roperty =et 69ommndA9te.ory8: (s 2trin. 69ommndA9te.ory = '?y9ustom9te.ory' 4nd -roperty 6n ddition, code shou!d /e provided 3or the 6@oo!A4n/!ed property# -rivte -roperty =et 69ommndA4n/!ed8: (s "oo!en 69ommndA4n/!ed = @rue 4nd -roperty $ >ou donBt hve ccess to (pp!iction !i&e you do in V"(, so you hve to .et it throu.h the hoo& supp!ied s v!ue pssed into the 69ommndBs %nA9rete procedure1 $ >ou !redy creted vri/!es 3or these items /ove, so no, you need to set them# $ 6n the %n9rete procedure, .et the hoo&# -rivte 2u/ 69ommndA%n9rete8"yV! hoo& (s %/ject: set mAp(pp = hoo& set mAp*oc = mAp(pp1*ocument BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB derni7re m+0 $"/-$$% "$/"" Documentation Codage ArcGis Jules Fleury / SIGEO / CEREGE 4nd 2u/ @he set mAp*oc = mAp(pp1*ocument in V" is the 'eCuiv!ent' o3 set p*oc = @his*ocument in V"(1 $ =o hed nd 2ve your project i3 you hvenBt !redy1 2i vous vou!eD trns3Erer ! vri/!e mAp(pp F des 3ormu!ires ou des modu!es e0terns, !ors dEc!reD dns ces 3ormu!ires 8modu!es: une vri/!e pu/!ic ppp1 -uis dns -rivte 2u/ 69ommndA%n9!ic&8:, pour un 3ormu!ire nommE 3rmcore 8pr e0emp!e:, 3ire 2et Frmcore1ppp = mAppp Bon Et/!it ! vri/!e vnt de chr.er !e 3ormu!ire 7od 3rmcore 3rmcore12ho, $ >ou re no, redy to trns3er your code 3rom V"(1 Gust cut nd pste 8e0cept 3or the /ove chn.es:1 $ %nce you hve 3inished codin., you need to compi!e your code1 $ Hnder the Fi!e menu, choose '?&e -roject1 d!!111' or ,htever your projectBs nme is1 $ >ou ,i!! /e noti3ied i3 there re ny compi!tion errors1 $ %nce your code compi!es ,ithout errors, sve it, then you re redy to use it in (rc?p1 $ %pen (rc?p, nd .o into @oo!s;9ustomiDe1 $ 9!ic& on the '9ommnds' @/1 $ 9!ic& '(dd From Fi!e111' 8>ou cn use this s !on. s you on!y imp!ement 69ommnd;6@oo! $ i3 you imp!ement ny ddition! inter3ces, you must use the 9omponents 9te.ory $ /ut thtBs nother topic111: $ 7octe your 1d!! nd c!ic& '%pen' $ >our too! ppers in the cte.ory you .ve it nd ,ith the nme you .ve it1 $ *r. it to too!/r, nd you re redy to .o1 BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB derni7re m+0 $"/-$$% ""/""