Portée de la conversion

La portée initiale d'un template est toujours la métaclasse sur laquelle le template est défini. Tous les attributs standard et étendus, toutes le collections et les templates définis sur la métaclasse d'objet active et ses parents sont visibles, mais un seul objet est actif à la fois.

Exemples
Le template suivant est appliqué au package P1, qui contient une classe C1, qui contient les opérations O1 et O2, qui chacune contiennent les paramètres P1 et P2. La portée change, affectant la valeur de la variable %Name%, à mesure que chaque collection est parcourue. Le mot clé Outer est utilisé pour revenir temporairement aux portées précédentes :
%Name%
.foreach_item(Classes)
	\n\t*%Name% in %Outer.Name%
   .foreach_item(Operations)
	   \n\t*%Name% in %Outer.Name% in %Outer.Outer.Name%
      .foreach_item(Parameters)
	      \n\t\t*%Name% in %Outer.Name% in %Outer.Outer.Name% in %Outer.Outer.Outer.Name%
      .next
   .next
.next
Résultat :
P1	
	*C1 in P1	   
	*O1 in C1 in P1	      
		*P1 in O1 in C1 in P1	      
		*P2 in O1 in C1 in P1	   
	*O2 in C1 in P1	      
		*P1 in O2 in C1 in P1	      
		*P2 in O2 in C1 in P1	   
La portée Outer est restaurée lorsque vous quittez un bloc .foreach_item. Les portées imbriquées forment une hiérarchie qui peut être visualisée sous la forme d'une arborescence, le plus haut niveau étant la racine. Utilisez Parent plutôt que Outer pour revenir au niveau de la portée de l'objet d'origine. Par exemple, rien ne sera produit si le template suivant est appliqué au paramètre P1:
%Name% in %Outer.Name% in %Outer.Outer.Name%
Toutefois, ce template produira un résultat :
%Name% in %Parent.Name% in %Parent.Parent.Name%
Résultat :
P1 in O1 in C1