Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/Frpos2CategorieMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/Frpos2CategorieMacro.groovy	(revision 2153)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/Frpos2CategorieMacro.groovy	(revision 2154)
@@ -158,7 +158,7 @@
 // CORPS DU SCRIPT
 
 if (!(corpusViewSelection instanceof MainCorpus)) {
-	println "Corpora selection is not a Corpus"
+	println "Corpora selection is not a MainCorpus: "+corpusViewSelection
 	return
 }
 
@@ -210,6 +210,13 @@
 //...
 }
 
+if (!vue.getTypesAVoir(Unite.class).contains(unit_type)) {
+	vue.ajouterType(Unite.class, unit_type)
+}
+if (!vue.getNomsChamps(Unite.class, unit_type).contains(CATEGORIE)) {
+	vue.ajouterProp(Unite.class, unit_type, CATEGORIE)
+}
+
 def nModified = 0
 def nIgnored = 0
 
@@ -249,4 +256,3 @@
 
 // udpate the view (also see also
 // http://forge.cbp.ens-lyon.fr/redmine/issues/2065)
-URSCorpora.getVue(analecCorpus).retablirVueParDefaut()
\ No newline at end of file
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/CreationChainesMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/CreationChainesMacro.groovy	(revision 2153)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/CreationChainesMacro.groovy	(revision 2154)
@@ -15,7 +15,7 @@
 import visuAnalec.vue.Vue
 
 if (!(corpusViewSelection instanceof MainCorpus)) {
-	println "Corpora selection is not a Corpus"
+	println "Corpora selection is not a MainCorpus: "+corpusViewSelection
 	return;
 }
 
@@ -30,7 +30,7 @@
 int nUpdated = 0 // count the number of updated CHAINE
 
 MainCorpus corpus = corpusViewSelection
-def analecCorpus = URSCorpora.getCorpus(corpus); // analec corpus has the same name has the TXM corpus
+def analecCorpus = URSCorpora.getCorpus(corpus); 
 Structure structure = analecCorpus.getStructure()
 if (!structure.getUnites().contains(unit_type)) { // check if the structure contains the unit_type units
 	println "Error: corpus structure does not contains unit with name=$unit_type"
@@ -63,6 +63,26 @@
 	analecCorpus.ajouterVal(Schema.class, "CHAINE", "TYPE REFERENT", "LIEU")
 }
 
+Vue vue = URSCorpora.getVue(corpus)
+if (!vue.getTypesAVoir(Schema.class).contains("CHAINE")) {
+	vue.ajouterType(Schema.class, "CHAINE")
+}
+if (!vue.getNomsChamps(Schema.class, "CHAINE").contains("REF")) {
+	vue.ajouterProp(Schema.class, "CHAINE", "REF")
+}
+if (!vue.getNomsChamps(Schema.class, "CHAINE").contains("GENRE")) {
+	vue.ajouterProp(Schema.class, "CHAINE", "GENRE")
+}
+if (!vue.getNomsChamps(Schema.class, "CHAINE").contains("NOMBRE")) {
+	vue.ajouterProp(Schema.class, "CHAINE", "NOMBRE")
+}
+if (!vue.getNomsChamps(Schema.class, "CHAINE").contains("NB MAILLONS")) {
+	vue.ajouterProp(Schema.class, "CHAINE", "NB MAILLONS")
+}
+if (!vue.getNomsChamps(Schema.class, "CHAINE").contains("TYPE")) {
+	vue.ajouterProp(Schema.class, "CHAINE", "TYPE")
+}
+
 def props = structure.getUniteProperties(unit_type)
 if (!props.contains(ref_property)) { // check the unit_type units have the REF property
 	println "Error: $unit_type units have no proprerty named '$ref_property'"
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/SUJ-PARTINFMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/SUJ-PARTINFMacro.groovy	(revision 2153)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/SUJ-PARTINFMacro.groovy	(revision 2154)
@@ -6,6 +6,7 @@
 import org.txm.*
 import org.txm.rcpapplication.swt.widget.parameters.*
 import org.txm.analec.*
+import org.txm.annotation.urs.*
 import org.txm.searchengine.cqp.*
 import org.txm.searchengine.cqp.corpus.*
 import visuAnalec.Message.*
@@ -26,7 +27,7 @@
 // CORPS DU SCRIPT
 
 if (!(corpusViewSelection instanceof MainCorpus)) {
-	println "Corpora selection is not a Corpus: "+corpusViewSelection
+	println "Corpora selection is not a MainCorpus: "+corpusViewSelection
 	return
 }
 
@@ -49,8 +50,8 @@
 	println "Error: CQP corpus does not contains the word property with name=$pos_property_name"
 	return
 }
-analecCorpus = AnalecCorpora.getCorpus(corpus.getName())
-vue = AnalecCorpora.getVue(corpus.getName())
+analecCorpus = URSCorpora.getCorpus(corpus)
+vue = URSCorpora.getVue(corpus)
 structure = analecCorpus.getStructure()
 if (!structure.getUnites().contains(unit_type)) { // check if the structure contains the unit_type units
 	println "Erreur : le corpus ne contient d'unité de type $unit_type"
@@ -64,6 +65,13 @@
 	return
 }
 
+if (!vue.getTypesAVoir(Unite.class).contains(unit_type)) {
+	vue.ajouterType(Unite.class, unit_type)
+}
+if (!vue.getNomsChamps(Unite.class, unit_type).contains(property_name)) {
+	vue.ajouterProp(Unite.class, unit_type, property_name)
+}
+
 def nModified = 0
 def nIgnored = 0
 
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/AccessibiliteMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/AccessibiliteMacro.groovy	(revision 2153)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/AccessibiliteMacro.groovy	(revision 2154)
@@ -64,6 +64,12 @@
 	structure.ajouterVal(Unite.class, unit_type, ACCESSIBILITE, "Forte")
 	structure.ajouterVal(Unite.class, unit_type, ACCESSIBILITE, "N/A")
 }
+if (!vue.getTypesAVoir(Unite.class).contains(unit_type)) {
+	vue.ajouterType(Unite.class, unit_type)
+}
+if (!vue.getNomsChamps(Unite.class, unit_type).contains(ACCESSIBILITE)) {
+	vue.ajouterProp(Unite.class, unit_type, ACCESSIBILITE)
+}
 
 def nModified = 0
 def nIgnored = 0
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/Fropos2CattexMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/Fropos2CattexMacro.groovy	(revision 2153)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/Fropos2CattexMacro.groovy	(revision 2154)
@@ -151,7 +151,7 @@
 // CORPS DU SCRIPT
 
 if (!(corpusViewSelection instanceof MainCorpus)) {
-	println "Corpora selection is not a Corpus"
+	println "Corpora selection is not a MainCorpus: "+corpusViewSelection
 	return
 }
 
@@ -216,6 +216,13 @@
 //...
 }
 
+if (!vue.getTypesAVoir(Unite.class).contains(unit_type)) {
+	vue.ajouterType(Unite.class, unit_type)
+}
+if (!vue.getNomsChamps(Unite.class, unit_type).contains(CATEGORIE)) {
+	vue.ajouterProp(Unite.class, unit_type, CATEGORIE)
+}
+
 def nModified = 0
 def nIgnored = 0
 
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/VerificationsMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/VerificationsMacro.groovy	(revision 2153)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/VerificationsMacro.groovy	(revision 2154)
@@ -38,7 +38,7 @@
 // CORPS DU SCRIPT
 
 if (!(corpusViewSelection instanceof MainCorpus)) {
-	println "Corpora selection is not a Corpus"
+	println "Corpora selection is not a MainCorpus: "+corpusViewSelection
 	return
 }
 
@@ -65,8 +65,8 @@
 	return
 }
 
-analecCorpus = AnalecCorpora.getCorpus(corpus.getName())
-vue = AnalecCorpora.getVue(corpus.getName())
+analecCorpus = URSCorpora.getCorpus(corpus)
+vue = URSCorpora.getVue(corpus)
 structure = analecCorpus.getStructure()
 
 if (!structure.getUnites().contains(unit_type)) { // check if the structure contains the unit_type units
@@ -255,4 +255,3 @@
 println "- $nIgnored units of type $unit_type have not been modified."
 println "- $nAdded forgotten pronominal units of type $unit_type have been added.\n"
 
-AnalecCorpora.getVue(analecCorpus).retablirVueParDefaut()
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/RetoucheComplementDuNomMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/RetoucheComplementDuNomMacro.groovy	(revision 2153)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/RetoucheComplementDuNomMacro.groovy	(revision 2154)
@@ -7,6 +7,7 @@
 import org.txm.*
 import org.txm.rcpapplication.swt.widget.parameters.*
 import org.txm.analec.*
+import org.txm.annotation.urs.*
 import org.txm.searchengine.cqp.*
 import org.txm.searchengine.cqp.corpus.*
 import visuAnalec.Message.*
@@ -42,11 +43,11 @@
 if (!ParametersDialog.open(this)) return
 
 corpus = corpusViewSelection
-CQI = Toolbox.getCqiClient()
+CQI = CQPSearchEngine.getCqiClient()
 word = corpus.getWordProperty()
 
-analecCorpus = AnalecCorpora.getCorpus(corpus.getName())
-vue = AnalecCorpora.getVue(corpus.getName())
+analecCorpus = URSCorpora.getCorpus(corpus)
+vue = URSCorpora.getVue(corpus)
 structure = analecCorpus.getStructure()
 if (!structure.getUnites().contains(unit_type)) { // check if the structure contains the unit_type units
 	println "Error: corpus structure does not contains unit with name=$unit_type"
@@ -62,6 +63,12 @@
 def check_cat = "CDN.CHECK"
 structure.ajouterVal(Unite.class, unit_type, category_name, check_cat)
 
+if (!vue.getTypesAVoir(Unite.class).contains(unit_type)) {
+	vue.ajouterType(Unite.class, unit_type)
+}
+if (!vue.getNomsChamps(Unite.class, unit_type).contains(category_name)) {
+	vue.ajouterProp(Unite.class, unit_type, category_name)
+}
 
 def nModified = 0
 def nIgnored1 = 0
@@ -78,13 +85,11 @@
 println "$debut1 - $fin1"
 units[1].setDeb( debut1 + 1)
 units[1].setFin( fin1 + 1)
-AnalecCorpora.getVue(analecCorpus).retablirVueParDefaut()
 def debut2 = units[1].getDeb()
 def fin2 = units[1].getFin()
 println "$debut2 - $fin2"
 */
 
-
 for (Unite unit : units) { // process all units
 	
 	def debut = unit.getDeb()
@@ -106,7 +111,6 @@
 			   else println "not resizing"
 			   def debut2 = unit.getDeb()
 			   def fin2 = unit.getFin()
-			   AnalecCorpora.getVue(analecCorpus).retablirVueParDefaut()
 			   println "APRES => Unit $compteur : $debut2 - $fin2"
 			   unit.getProps().put(category_name, check_cat)
 			   break
@@ -124,6 +128,3 @@
 println "- $nIgnored2 units have been ignored because no overlap.\n"
 println "Total ($compteur)."
 
-// END OF PARAMETERS
-AnalecCorpora.getVue(analecCorpus).retablirVueParDefaut()
-println "corpora selection: "+corpusViewSelection
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/CreationAnaphoresMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/CreationAnaphoresMacro.groovy	(revision 2153)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/CreationAnaphoresMacro.groovy	(revision 2154)
@@ -19,7 +19,7 @@
 import visuAnalec.vue.Vue
 
 if (!(corpusViewSelection instanceof MainCorpus)) {
-	println "Corpora selection is not a Corpus"
+	println "Corpora selection is not a MainCorpus: "+corpusViewSelection
 	return;
 }
 
@@ -33,7 +33,7 @@
 int nCreated = 0 // count the number of created RELATION
 
 MainCorpus corpus = corpusViewSelection
-def analecCorpus = URSCorpora.getCorpus(corpus); // analec corpus has the same name has the TXM corpus
+def analecCorpus = URSCorpora.getCorpus(corpus);
 Structure structure = analecCorpus.getStructure()
 if (!structure.getUnites().contains(unit_type)) { // check if the structure contains the unit_type units
 	println "Error: corpus structure does not contains unit with name=$unit_type"
@@ -54,6 +54,13 @@
 	println "Error: This macro can't update existing Relations"
 	return
 }
+Vue vue = URSCorpora.getVue(corpus)
+if (!vue.getTypesAVoir(Relation.class).contains("ANAPHORE")) {
+	vue.ajouterType(Relation.class, "ANAPHORE")
+}
+if (!vue.getNomsChamps(Relation.class, "ANAPHORE").contains("TYPE")) {
+	vue.ajouterProp(Relation.class, "ANAPHORE", "TYPE")
+}
 
 for (Schema schema : analecCorpus.getSchemas(schema_type)) { // parse all CHAINE
 	def units = []
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/LongueurDesMentionsMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/LongueurDesMentionsMacro.groovy	(revision 2153)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/LongueurDesMentionsMacro.groovy	(revision 2154)
@@ -46,7 +46,7 @@
 // CORPS DU SCRIPT
 
 if (!(corpusViewSelection instanceof MainCorpus)) {
-	println "Corpora selection is not a Corpus: "+corpusViewSelection
+	println "Corpora selection is not a MainCorpus: "+corpusViewSelection
 	return
 }
 
@@ -89,6 +89,13 @@
 	//...
 }
 
+if (!vue.getTypesAVoir(Unite.class).contains(unit_type)) {
+	vue.ajouterType(Unite.class, unit_type)
+}
+if (!vue.getNomsChamps(Unite.class, unit_type).contains(LONGUEUR)) {
+	vue.ajouterProp(Unite.class, unit_type, LONGUEUR)
+}
+
 def nModified = 0
 def nIgnored = 0
 
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/Frpos2CategorieDemocratMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/Frpos2CategorieDemocratMacro.groovy	(revision 2153)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/Frpos2CategorieDemocratMacro.groovy	(revision 2154)
@@ -158,7 +158,7 @@
 // CORPS DU SCRIPT
 
 if (!(corpusViewSelection instanceof MainCorpus)) {
-	println "Corpora selection is not a Corpus"
+	println "Corpora selection is not a MainCorpus: "+corpusViewSelection
 	return
 }
 
@@ -210,6 +210,13 @@
 //...
 }
 
+if (!vue.getTypesAVoir(Unite.class).contains(unit_type)) {
+	vue.ajouterType(Unite.class, unit_type)
+}
+if (!vue.getNomsChamps(Unite.class, unit_type).contains(CATEGORIE)) {
+	vue.ajouterProp(Unite.class, unit_type, CATEGORIE)
+}
+
 def nModified = 0
 def nIgnored = 0
 
@@ -249,4 +256,3 @@
 
 // udpate the view (also see also
 // http://forge.cbp.ens-lyon.fr/redmine/issues/2065)
-URSCorpora.getVue(analecCorpus).retablirVueParDefaut()
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/Fropos2CategorieMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/Fropos2CategorieMacro.groovy	(revision 2153)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/Fropos2CategorieMacro.groovy	(revision 2154)
@@ -63,7 +63,7 @@
 // CORPS DU SCRIPT
 
 if (!(corpusViewSelection instanceof MainCorpus)) {
-	println "Corpora selection is not a Corpus"
+	println "Corpora selection is not a MainCorpus: "+corpusViewSelection
 	return
 }
 
@@ -109,6 +109,13 @@
 //...
 }
 
+if (!vue.getTypesAVoir(Unite.class).contains(unit_type)) {
+	vue.ajouterType(Unite.class, unit_type)
+}
+if (!vue.getNomsChamps(Unite.class, unit_type).contains(CATEGORIE)) {
+	vue.ajouterProp(Unite.class, unit_type, CATEGORIE)
+}
+
 def nModified = 0
 def nIgnored = 0
 
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/PremierMaillonMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/PremierMaillonMacro.groovy	(revision 2153)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/PremierMaillonMacro.groovy	(revision 2154)
@@ -18,7 +18,7 @@
 import visuAnalec.vue.Vue
 
 if (!(corpusViewSelection instanceof MainCorpus)) {
-	println "Corpora selection is not a Corpus"
+	println "Corpora selection is not a MainCorpus: "+corpusViewSelection
 	return;
 }
 
@@ -54,6 +54,14 @@
 	return
 }
 
+Vue vue = URSCorpora.getVue(corpus)
+if (!vue.getTypesAVoir(Unite.class).contains(unit_type)) {
+	vue.ajouterType(Unite.class, unit_type)
+}
+if (!vue.getNomsChamps(Unite.class, unit_type).contains(NEW)) {
+	vue.ajouterProp(Unite.class, unit_type, NEW)
+}
+
 int nIgnored = 0; // number of units ignored
 int nYes = 0 // number of "YES" unit set
 int nNo = 0 // number of "NO" unit set
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/Si2SingletonMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/Si2SingletonMacro.groovy	(revision 2153)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/Si2SingletonMacro.groovy	(revision 2154)
@@ -21,7 +21,7 @@
 // CORPS DU SCRIPT
 
 if (!(corpusViewSelection instanceof MainCorpus)) {
-	println "Corpora selection is not a Corpus"
+	println "Corpora selection is not a MainCorpus: "+corpusViewSelection
 	return
 }
 
@@ -83,7 +83,3 @@
 println "Result:"
 println "- $nModified units of type $unitType have been modified."
 println "- $nIgnored units of type $unitType have not been modified.\n"
-
-// udpate the view (also see also
-// http://forge.cbp.ens-lyon.fr/redmine/issues/2065)
-URSCorpora.getVue(analecCorpus).retablirVueParDefaut()
\ No newline at end of file
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/AjoutDefinitudeMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/AjoutDefinitudeMacro.groovy	(revision 2153)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/AjoutDefinitudeMacro.groovy	(revision 2154)
@@ -55,6 +55,13 @@
 	analecCorpus.ajouterVal(Unite.class, unit_type, DEFINITUDE, "AMBIGU");
 	analecCorpus.ajouterVal(Unite.class, unit_type, DEFINITUDE, "NONE");
 }
+Vue vue = URSCorpora.getVue(corpus)
+if (!vue.getTypesAVoir(Unite.class).contains(unit_type)) {
+	vue.ajouterType(Unite.class, unit_type)
+}
+if (!vue.getNomsChamps(Unite.class, unit_type).contains(DEFINITUDE)) {
+	vue.ajouterProp(Unite.class, unit_type, DEFINITUDE)
+}
 
 int nIgnored = 0 // number of ignored units
 int nModified = 0 // number of modified units
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/Frpos2CattexMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/Frpos2CattexMacro.groovy	(revision 2153)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/Frpos2CattexMacro.groovy	(revision 2154)
@@ -164,7 +164,7 @@
 // CORPS DU SCRIPT
 
 if (!(corpusViewSelection instanceof MainCorpus)) {
-	println "Corpora selection is not a Corpus"
+	println "Corpora selection is not a MainCorpus: "+corpusViewSelection
 	return
 }
 
@@ -230,6 +230,13 @@
 	structure.ajouterVal(Unite.class, unit_type, CATEGORIE, "ERREUR")
 }
 
+if (!vue.getTypesAVoir(Unite.class).contains(unit_type)) {
+	vue.ajouterType(Unite.class, unit_type)
+}
+if (!vue.getNomsChamps(Unite.class, unit_type).contains(CATEGORIE)) {
+	vue.ajouterProp(Unite.class, unit_type, CATEGORIE)
+}
+
 def nModified = 0
 def nIgnored = 0
 
@@ -266,7 +273,3 @@
 	println "Some rules should be added to this macro to process the following remaining 'FROPOS / words' values:"
 	errors.keySet().each { println "fropos="+it+"\twords="+errors[it].join(" | ") }
 }
-
-// udpate the view (also see also
-// http://forge.cbp.ens-lyon.fr/redmine/issues/2065)
-URSCorpora.getVue(analecCorpus).retablirVueParDefaut()
\ No newline at end of file
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/PROPERanaphoriquesMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/PROPERanaphoriquesMacro.groovy	(revision 2153)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/democrat/PROPERanaphoriquesMacro.groovy	(revision 2154)
@@ -29,7 +29,7 @@
 // CORPS DU SCRIPT
 
 if (!(corpusViewSelection instanceof MainCorpus)) {
-	println "Corpora selection is not a Corpus: "+corpusViewSelection
+	println "Corpora selection is not a MainCorpus: "+corpusViewSelection
 	return
 }
 
@@ -60,6 +60,13 @@
 structure.ajouterVal(Unite.class, unit_type, CATEGORIE, "PRO.PERA")
 structure.ajouterVal(Unite.class, unit_type, CATEGORIE, "PRO.PERD")
 
+if (!vue.getTypesAVoir(Unite.class).contains(unit_type)) {
+	vue.ajouterType(Unite.class, unit_type)
+}
+if (!vue.getNomsChamps(Unite.class, unit_type).contains(CATEGORIE)) {
+	vue.ajouterProp(Unite.class, unit_type, CATEGORIE)
+}
+
 def nModified = 0
 def nIgnored = 0
 def nProPerA = 0
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/export/ExportToGlozz1_0_0Macro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/export/ExportToGlozz1_0_0Macro.groovy	(revision 2153)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/export/ExportToGlozz1_0_0Macro.groovy	(revision 2154)
@@ -31,7 +31,7 @@
 // CHECK CORPUS
 
 if (!(corpusViewSelection instanceof MainCorpus)) {
-	println "Corpora selection is not a Corpus"
+	println "Corpora selection is not a MainCorpus: "+corpusViewSelection
 	return;
 }
 
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/export/ExportToGlozz1_1_0Macro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/export/ExportToGlozz1_1_0Macro.groovy	(revision 2153)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/export/ExportToGlozz1_1_0Macro.groovy	(revision 2154)
@@ -41,7 +41,7 @@
 // CHECK CORPUS
 
 if (!(corpusViewSelection instanceof MainCorpus)) {
-	println "Corpora selection is not a Corpus"
+	println "Corpora selection is not a MainCorpus: "+corpusViewSelection
 	return;
 }
 
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/export/ExportToGlozzMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/export/ExportToGlozzMacro.groovy	(revision 2153)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/export/ExportToGlozzMacro.groovy	(revision 2154)
@@ -31,7 +31,7 @@
 // CHECK CORPUS
 
 if (!(corpusViewSelection instanceof MainCorpus)) {
-	println "Corpora selection is not a Corpus"
+	println "Corpora selection is not a MainCorpus: "+corpusViewSelection
 	return;
 }
 
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/export/ExportAsMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/export/ExportAsMacro.groovy	(revision 2153)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/export/ExportAsMacro.groovy	(revision 2154)
@@ -24,8 +24,8 @@
 import visuAnalec.elements.*
 
 def scriptName = this.class.getSimpleName()
-if (!(corpusViewSelection instanceof CQPCorpus)) {
-	println "** $scriptName please select a Corpus to run the macro"
+if (!(corpusViewSelection instanceof MainCorpus)) {
+	println "** $scriptName please select a MainCorpus to run the macro"
 	return;
 }
 
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/SchemasProgressionMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/SchemasProgressionMacro.groovy	(revision 2153)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/SchemasProgressionMacro.groovy	(revision 2154)
@@ -102,11 +102,9 @@
 		cql_limit_matches = corpus.getMatches()
 	}
 	
-	mainCorpus = corpus.getMainCorpus()
+	def word = corpus.getWordProperty()
+	def analecCorpus = URSCorpora.getCorpus(corpus)
 
-	def word = mainCorpus.getWordProperty()
-	def analecCorpus = URSCorpora.getCorpus(mainCorpus)
-
 	def errors = AnalecUtils.isPropertyDefined(Schema.class, analecCorpus, schema_ursql)
 	if (errors.size() > 0) {
 		println "** The $schema_ursql schema URSQL cannot be computed in the corpus with types: $errors."
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/edit/UnitsAnnotateMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/edit/UnitsAnnotateMacro.groovy	(revision 2153)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/edit/UnitsAnnotateMacro.groovy	(revision 2154)
@@ -77,10 +77,11 @@
 	def word = corpus.getWordProperty()
 	def analecCorpus = URSCorpora.getCorpus(corpus)
 	Vue analecView = URSCorpora.getVue(corpus)
+	def typesAVoir = analecView.getTypesAVoir(Unite.class)
+	
 	Structure structure = analecCorpus.getStructure()
 
 	AnalecUtils.defineProperty(Unite.class, analecCorpus, unit_ursql, property_name)
-	analecView.initVueParDefaut()
 
 	def selectedUnits = AnalecUtils.selectUnitsInSchema(debug, analecCorpus, corpus, schema_ursql, minimum_schema_size, maximum_schema_size,
 			unit_ursql, position_in_schema, cql_limit, strict_inclusion, position_in_matches);
@@ -89,7 +90,14 @@
 	def n = 0
 	def nerrors = 0
 	for (Unite unit : selectedUnits) {
-		
+		String unit_type = unit.getType()
+		// ensure the unit_type & property_name are declared in the Vue
+		if (!typesAVoir.contains(unit_type)) {
+			analecView.ajouterType(Unite.class, unit_type)
+		}
+		if (!analecView.getNomsChamps(Unite.class, unit_type).contains(property_name)) {
+			analecView.ajouterProp(Unite.class, unit_type, property_name)
+		}
 		if (!analecView.setValeurChamp(unit, property_name, property_value)) {
 			errors << ""+unit.getDeb()+"->"+unit.getFin()
 			nerrors++
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/edit/ConcordanceToUnitsMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/edit/ConcordanceToUnitsMacro.groovy	(revision 2153)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/edit/ConcordanceToUnitsMacro.groovy	(revision 2154)
@@ -12,6 +12,7 @@
 import org.txm.concordance.core.functions.Concordance
 import org.txm.concordance.rcp.editors.ConcordanceEditor
 import visuAnalec.elements.Unite
+import visuAnalec.vue.Vue
 
 // BEGINNING OF PARAMETERS
 
@@ -85,6 +86,14 @@
 	analecCorpus.getStructure().ajouterVal(Unite.class, unit_type, property_name, property_value)
 }
 
+Vue vue = URSCorpora.getVue(corpus)
+if (!vue.getTypesAVoir(Unite.class).contains(unit_type)) {
+	vue.ajouterType(Unite.class, unit_type)
+}
+if (!vue.getNomsChamps(Unite.class, unit_type).contains(property_name)) {
+	vue.ajouterProp(Unite.class, unit_type, property_name)
+}
+
 // browse lines and check
 def units = analecCorpus.getUnites(unit_type)
 def lines = concordance.getLines()
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/DemoMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/DemoMacro.groovy	(revision 2153)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/DemoMacro.groovy	(revision 2154)
@@ -23,6 +23,18 @@
 
 def view = URSCorpora.getVue(corpus)
 
+// set a default vue -> all is visible
+view.retablirVueParDefaut()
+
+// list the viewed types and properties
+for (def type : view.getTypesAVoir(Unite.class)) {
+	println "$type: "+view.getNomsChamps(Unite.class, type)
+}
+
+// manage the viewed&enabled type, properties ; the types and properties must be enabled to use the "view.setValeurChamp(TYPE, PROPERTY, VALUE)" method
+view.ajouterType(Unite.class, "EXEMPLE")
+view.ajouterProp(Unite.class, "EXEMPLE", "PEXEMPLE")
+
 // display annotations per Element type (Unite, Relation, Schema) and per type
 
 // Create annotation type
