diff --git a/doc/condition/README.md b/doc/condition/README.md
new file mode 100644
index 000000000..6808380f5
--- /dev/null
+++ b/doc/condition/README.md
@@ -0,0 +1,5 @@
+# Les conditions
+
+ - [Déclaration d'une condition](condition.md)
+ - [Les différentes conditions](conditions.md)
+ - [Réfinition](redefine.md)
diff --git a/doc/condition/condition.md b/doc/condition/condition.md
new file mode 100644
index 000000000..45e977f77
--- /dev/null
+++ b/doc/condition/condition.md
@@ -0,0 +1,50 @@
+# Les conditions
+
+Les conditions permettent d'ajouter ou de supprimer des propriétés à une [variable](../variable/README.md), une [famille](../family/README.md), un [fichier](../service/file.md), un [port](../service/port.md) ou une [ip](../service/ip.md) suivant le contexte.
+
+Nous allons nous concentrer ici sur la condition hidden_if_in, mais [il existe d'autre conditions](conditions.md).
+
+La condition hidden_if_in permet de cacher une variable où une famille à l'utilisateur, mais cette variable est toujours accessible dans un calcul, un vérification ou dans un template.
+
+```
+
+
+
+
+
+
+
+ True
+ my_variable
+
+
+```
+
+Le [paramètres](../param/README.md) de la condition permet de définir les valeurs que doit avoir la source pour appliquer l'action.
+
+La [cible](../target/README.md) de la condition est ici "my_variable".
+
+Donc ici la variable est caché à l'utilisateur si la variable "condition" est à True (le paramètre).
+
+Il est également possible de mettre plusieurs paramètre :
+
+```
+
+
+
+
+
+
+
+ yes
+ maybe
+ my_variable
+
+
+```
+
+FIXME
+
+
+
+
diff --git a/doc/condition/conditions.md b/doc/condition/conditions.md
new file mode 100644
index 000000000..f8f84a56f
--- /dev/null
+++ b/doc/condition/conditions.md
@@ -0,0 +1,29 @@
+# Les conditions
+
+## Les conditions \_if_in et \_if_not_in
+
+Il existe deux types de conditions :
+
+- les conditions dont le nom fini par \_if_in : dans ce cas si la variable source est égal à un des paramètres, l'action est effective
+- les conditions dont le nom fini par \_if_not_in : dans ce cas si la variable source est différents de tous les paramètres, l'action est effective
+
+## Désactivation
+
+Il est possible de désactiver une [variable](../variable/README.md) ou une [famille](../family/README.md) avec les conditions :
+
+- disabled_if_in
+- disabled_if_not_in
+
+## Caché
+
+Il est possible de cacher une [variable](../variable/README.md), une [famille](../family/README.md), un [fichier](../service/file.md), un [port](../service/port.md) ou une [ip](../service/ip.md) avec les conditions :
+
+- hidden_if_in
+- hidden_if_not_in
+
+## Obligatoire
+
+Il est possible de rendre obligatoire une [variable](../variable/README.md) avec les conditions :
+
+- mandatory_if_in
+- mandatory_if_not_in
diff --git a/doc/condition/redefine.md b/doc/condition/redefine.md
new file mode 100644
index 000000000..b076205cb
--- /dev/null
+++ b/doc/condition/redefine.md
@@ -0,0 +1,29 @@
+# Rédéfinition
+
+Il se peut que dans un dictionnaire on décide de définir une condition.
+
+Dans un second dictionnaire il est possible de supprimer cette condition.
+
+Dans un premier dictionnaire déclarons notre variable et notre calcule :
+
+```
+
+
+
+
+
+
+
+ True
+ my_variable
+
+
+```
+
+Dans un second dictionnaire supprimer ce calcul :
+
+```
+
+
+
+```
diff --git a/doc/target/README.md b/doc/target/README.md
new file mode 100644
index 000000000..978b61eb6
--- /dev/null
+++ b/doc/target/README.md
@@ -0,0 +1,5 @@
+# La cible
+
+ - [De type variable)](../target/variable.md)
+ - [De type famille)](../target/family.md)
+ - [De type \*list](../target/list.md)
diff --git a/doc/target/family.md b/doc/target/family.md
new file mode 100644
index 000000000..bdefc72ee
--- /dev/null
+++ b/doc/target/family.md
@@ -0,0 +1,13 @@
+# Cible de type "variable"
+
+Une cible peut être de type famille :
+
+```
+my_family
+```
+
+Mais une target peut être optionnelle. C'est à dire que si la famille n'existe pas, l'action ne sera pas associé à cette famille.
+
+```
+my_family
+```
diff --git a/doc/target/list.md b/doc/target/list.md
new file mode 100644
index 000000000..eefb327d2
--- /dev/null
+++ b/doc/target/list.md
@@ -0,0 +1,35 @@
+# Cible de type \*list
+
+## Les différences cible de type \*.list
+
+### filelist
+
+Une cible peut être de type [fichier](../service/file.md) :
+
+```
+example
+```
+
+### portlist
+
+Une cible peut être de type [port](../service/port.md) :
+
+```
+example
+```
+
+### iplist
+
+Une cible peut être de type [ip](../service/ip.md) :
+
+```
+example
+```
+
+## La cible optionnelle
+
+Mais une target peut être optionnelle. C'est à dire que si la \*list n'existe pas, l'action ne sera pas associé.
+
+```
+unknown
+```