> For the complete documentation index, see [llms.txt](https://primer2.dynamobim.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://primer2.dynamobim.org/fr/8_coding_in_dynamo/8-3_python/3-python-templates.md).

# Configuration de votre propre gabarit Python

Avec Dynamo 2.0, vous pouvez spécifier un gabarit par défaut `(.py extension)` à utiliser lors de la première ouverture de la fenêtre Python. Cette option a longtemps été attendue, car elle accélère l'utilisation de Python dans Dynamo. La possibilité d'utiliser un gabarit vous permet d'obtenir des importations par défaut prêtes à l'emploi lorsque vous voulez développer un script Python personnalisé.

Ce gabarit se trouve à l’emplacement `APPDATA` de votre installation de Dynamo.

L’emplacement habituel est le suivant : `( %appdata%\Dynamo\Dynamo Core\{version}\ )`.

![](https://769651524-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYIQUByzZePieC1Y9fHzi%2Fuploads%2Fgit-blob-5b1d9293e8df4b3a20aa3522d87d1b67caa2697c%2Fpython%20templates%20-%20appdata%20folder%20location.jpg?alt=media)

### Configuration du gabarit

Pour utiliser cette fonctionnalité, vous devez ajouter la ligne suivante dans le fichier `DynamoSettings.xml`. *(Modifier dans le bloc-notes)*

![](https://769651524-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYIQUByzZePieC1Y9fHzi%2Fuploads%2Fgit-blob-082766a2f8ccfc1cf64a54a6c8bb47c5fe5a1b24%2Fpython%20templates%20-dynamo%20settings%20xml%20file.png?alt=media)

Vous pouvez simplement remplacer `<PythonTemplateFilePath />` par ce qui suit :

```
<PythonTemplateFilePath>
<string>C:\Users\CURRENTUSER\AppData\Roaming\Dynamo\Dynamo Core\2.0\PythonTemplate.py</string>
</PythonTemplateFilePath>
```

{% hint style="warning" %}
\_Remarque : remplacez CURRENTUSER par votre nom d’utilisateur\_
{% endhint %}

Ensuite, vous devez créer un gabarit en intégrant la fonctionnalité que vous voulez utiliser. Dans cet exemple, vous allez incorporer les importations liées à Revit et d'autres éléments que vous utilisez généralement lorsque vous travaillez avec Revit.

Vous pouvez ouvrir un document de bloc-notes vide et coller le code suivant à l'intérieur :

```py
import clr

clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
from Autodesk.Revit.DB.Structure import *

clr.AddReference('RevitAPIUI')
from Autodesk.Revit.UI import *

clr.AddReference('System')
from System.Collections.Generic import List

clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)

clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument
uidoc=DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument

#Preparing input from dynamo to revit
element = UnwrapElement(IN[0])

#Do some action in a Transaction
TransactionManager.Instance.EnsureInTransaction(doc)

TransactionManager.Instance.TransactionTaskDone()

OUT = element
```

Une fois cela fait, enregistrez ce fichier sous le nom `PythonTemplate.py` à l’emplacement `APPDATA`.

### Comportement du script Python par la suite

Une fois le gabarit Python défini, Dynamo le recherche à chaque fois qu'un nœud Python est positionné. Si le gabarit est introuvable, l’affichage sera comparable à la fenêtre Python par défaut.

![](https://769651524-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYIQUByzZePieC1Y9fHzi%2Fuploads%2Fgit-blob-aca54f9c4e0881f8ee8535fc2cb618edd339dad5%2Fpython%20templates%20-%20before%20setup%20template.jpg?alt=media)

Si Dynamo trouve le gabarit Python (par exemple, notre gabarit Revit), il affiche tous les éléments par défaut que vous avez intégrés.

![](https://769651524-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYIQUByzZePieC1Y9fHzi%2Fuploads%2Fgit-blob-2bce8274a46e009bfb77c1171010cf532bca2f35%2Fpython%20templates%20-%20after%20setup%20template.jpg?alt=media)

Vous trouverez ici des informations supplémentaires sur cet ajout important (par Radu Gidei). <https://github.com/DynamoDS/Dynamo/pull/8122>
