You are on page 1of 11

Documentation Codage ArcGis Jules Fleury / SIGEO / CEREGE

Auteur Jules FLEURY SIG!o / CEREGE


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 $"/-$$% ""/""

You might also like