diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/plugin.properties b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/plugin.properties
index d28e4e73751ec5a2238adb396f00e541de6a4e40..a97dc9e2dcbaed0e23200c64e3363bdefaf8893f 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/plugin.properties
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/plugin.properties
@@ -583,3 +583,6 @@ _UI_Enumeration_referredByAttributeType_feature = Referred By Attribute Type
 _UI_AgAttributeType_refersToBasicType_feature = Refers To Basic Type
 _UI_AgAttributeType_refersToConstructedAttribute_feature = Refers To Constructed Attribute
 _UI_AgAttributeType_refersToEnumeration_feature = Refers To Enumeration
+_UI_Doc_referredByTitledClass_feature = Referred By Titled Class
+_UI_DocumentedClass_refersToDescDoc_feature = Refers To Desc Doc
+_UI_TitledClass_refersToTitleDoc_feature = Refers To Title Doc
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/DocItemProvider.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/DocItemProvider.java
index 5d6871be33cdcdbd206ef16a3dd716fccce3dea0..ccc61bc8308dde8c313f4d6b80fe4573eb4c855e 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/DocItemProvider.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/DocItemProvider.java
@@ -78,6 +78,7 @@ public class DocItemProvider extends NsdObjectItemProvider {
             addReferredByDocumentedClassPropertyDescriptor( object );
             addReferredByFunctionalConstraintPropertyDescriptor( object );
             addReferredByAgPresenceConditionDerivedStatisticsPropertyDescriptor( object );
+            addReferredByTitledClassPropertyDescriptor( object );
         }
         return itemPropertyDescriptors;
     }
@@ -279,6 +280,28 @@ public class DocItemProvider extends NsdObjectItemProvider {
                         null ) );
     }
 
+    /**
+     * This adds a property descriptor for the Referred By Titled Class feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected void addReferredByTitledClassPropertyDescriptor( Object object ) {
+        itemPropertyDescriptors.add(
+                createItemPropertyDescriptor( ( ( ComposeableAdapterFactory ) adapterFactory ).getRootAdapterFactory(),
+                        getResourceLocator(),
+                        getString( "_UI_Doc_referredByTitledClass_feature" ),
+                        getString( "_UI_PropertyDescriptor_description", "_UI_Doc_referredByTitledClass_feature",
+                                "_UI_Doc_type" ),
+                        NsdPackage.Literals.DOC__REFERRED_BY_TITLED_CLASS,
+                        true,
+                        false,
+                        true,
+                        null,
+                        null,
+                        null ) );
+    }
+
     /**
      * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
      * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/DocumentedClassItemProvider.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/DocumentedClassItemProvider.java
index 4df36e418692043a6e6caf926973087784c11c34..45155f5b9a1419c85658aaca7cec944caaa32d45 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/DocumentedClassItemProvider.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/DocumentedClassItemProvider.java
@@ -63,7 +63,7 @@ public class DocumentedClassItemProvider extends NsdObjectItemProvider {
             addDeprecatedPropertyDescriptor( object );
             addDescIDPropertyDescriptor( object );
             addInformativePropertyDescriptor( object );
-            addRefersToDocPropertyDescriptor( object );
+            addRefersToDescDocPropertyDescriptor( object );
         }
         return itemPropertyDescriptors;
     }
@@ -135,19 +135,19 @@ public class DocumentedClassItemProvider extends NsdObjectItemProvider {
     }
 
     /**
-     * This adds a property descriptor for the Refers To Doc feature.
+     * This adds a property descriptor for the Refers To Desc Doc feature.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      */
-    protected void addRefersToDocPropertyDescriptor( Object object ) {
+    protected void addRefersToDescDocPropertyDescriptor( Object object ) {
         itemPropertyDescriptors.add(
                 createItemPropertyDescriptor( ( ( ComposeableAdapterFactory ) adapterFactory ).getRootAdapterFactory(),
                         getResourceLocator(),
-                        getString( "_UI_DocumentedClass_refersToDoc_feature" ),
-                        getString( "_UI_PropertyDescriptor_description", "_UI_DocumentedClass_refersToDoc_feature",
+                        getString( "_UI_DocumentedClass_refersToDescDoc_feature" ),
+                        getString( "_UI_PropertyDescriptor_description", "_UI_DocumentedClass_refersToDescDoc_feature",
                                 "_UI_DocumentedClass_type" ),
-                        NsdPackage.Literals.DOCUMENTED_CLASS__REFERS_TO_DOC,
+                        NsdPackage.Literals.DOCUMENTED_CLASS__REFERS_TO_DESC_DOC,
                         true,
                         false,
                         true,
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/TitledClassItemProvider.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/TitledClassItemProvider.java
index bd8c60d5859861f55b3f7fa4118cac07091d2600..314b270c68b2a0d3e444c789df95bf87ea77c577 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/TitledClassItemProvider.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/TitledClassItemProvider.java
@@ -62,6 +62,7 @@ public class TitledClassItemProvider extends DocumentedClassItemProvider {
             super.getPropertyDescriptors( object );
 
             addTitleIDPropertyDescriptor( object );
+            addRefersToTitleDocPropertyDescriptor( object );
         }
         return itemPropertyDescriptors;
     }
@@ -88,6 +89,28 @@ public class TitledClassItemProvider extends DocumentedClassItemProvider {
                         null ) );
     }
 
+    /**
+     * This adds a property descriptor for the Refers To Title Doc feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected void addRefersToTitleDocPropertyDescriptor( Object object ) {
+        itemPropertyDescriptors.add(
+                createItemPropertyDescriptor( ( ( ComposeableAdapterFactory ) adapterFactory ).getRootAdapterFactory(),
+                        getResourceLocator(),
+                        getString( "_UI_TitledClass_refersToTitleDoc_feature" ),
+                        getString( "_UI_PropertyDescriptor_description", "_UI_TitledClass_refersToTitleDoc_feature",
+                                "_UI_TitledClass_type" ),
+                        NsdPackage.Literals.TITLED_CLASS__REFERS_TO_TITLE_DOC,
+                        true,
+                        false,
+                        true,
+                        null,
+                        null,
+                        null ) );
+    }
+
     /**
      * This returns TitledClass.gif.
      * <!-- begin-user-doc -->
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore
index 4ed916b32fe7fe467cf8c51bbd18bacb8ed2cd73..0d8e5952d45c7492723c0158e5e3932011b82f43 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore
@@ -919,13 +919,16 @@
         eOpposite="#//BasicType/refersToDoc"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="referredByDocumentedClass"
         ordered="false" upperBound="-1" eType="#//DocumentedClass" transient="true"
-        unsettable="true" resolveProxies="false" eOpposite="#//DocumentedClass/refersToDoc"/>
+        unsettable="true" resolveProxies="false" eOpposite="#//DocumentedClass/refersToDescDoc"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="referredByFunctionalConstraint"
         ordered="false" upperBound="-1" eType="#//FunctionalConstraint" transient="true"
         unsettable="true" resolveProxies="false" eOpposite="#//FunctionalConstraint/refersToDoc"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="referredByAgPresenceConditionDerivedStatistics"
         ordered="false" upperBound="-1" eType="#//AgPresenceConditionDerivedStatistics"
         transient="true" unsettable="true" resolveProxies="false" eOpposite="#//AgPresenceConditionDerivedStatistics/refersToDsPresCondArgsDoc"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="referredByTitledClass"
+        ordered="false" upperBound="-1" eType="#//TitledClass" transient="true" unsettable="true"
+        resolveProxies="false" eOpposite="#//TitledClass/refersToTitleDoc"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DocumentedClass" abstract="true" eSuperTypes="#//NsdObject">
     <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
@@ -953,7 +956,7 @@
         <details key="name" value="informative"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="refersToDoc" ordered="false"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="refersToDescDoc" ordered="false"
         eType="#//Doc" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//Doc/referredByDocumentedClass"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Enumeration" eSuperTypes="#//TitledClass">
@@ -1885,6 +1888,8 @@
         <details key="name" value="titleID"/>
       </eAnnotations>
     </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="refersToTitleDoc" ordered="false"
+        eType="#//Doc" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//Doc/referredByTitledClass"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="UndefinedAttributeTypeKind">
     <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.genmodel b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.genmodel
index f51dc571b1db0fc78110b048a61b999bc128b19d..736e49b033b4adc5b9cca19be7d49ad962c69924 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.genmodel
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.genmodel
@@ -257,12 +257,13 @@
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//Doc/referredByDocumentedClass"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//Doc/referredByFunctionalConstraint"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//Doc/referredByAgPresenceConditionDerivedStatistics"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//Doc/referredByTitledClass"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//DocumentedClass">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//DocumentedClass/deprecated"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//DocumentedClass/descID"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//DocumentedClass/informative"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//DocumentedClass/refersToDoc"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//DocumentedClass/refersToDescDoc"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//Enumeration">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//Enumeration/literal"/>
@@ -436,6 +437,7 @@
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//TitledClass">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//TitledClass/titleID"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//TitledClass/refersToTitleDoc"/>
     </genClasses>
     <genClasses image="false" ecoreClass="nsd.ecore#//NsdObject">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//NsdObject/lineNumber"/>
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Doc.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Doc.java
index 4cd89bc7c7c78df0849d567c2ba2f19eddc33dbc..16182e887ed85b1d31f20565b432585c3b21e55e 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Doc.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Doc.java
@@ -44,6 +44,7 @@ import org.eclipse.emf.ecore.util.FeatureMap;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getReferredByDocumentedClass <em>Referred By Documented Class</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getReferredByFunctionalConstraint <em>Referred By Functional Constraint</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getReferredByAgPresenceConditionDerivedStatistics <em>Referred By Ag Presence Condition Derived Statistics</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getReferredByTitledClass <em>Referred By Titled Class</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDoc()
@@ -366,15 +367,15 @@ public interface Doc extends NsdObject {
     /**
      * Returns the value of the '<em><b>Referred By Documented Class</b></em>' reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass}.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass#getRefersToDoc <em>Refers To Doc</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass#getRefersToDescDoc <em>Refers To Desc Doc</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Referred By Documented Class</em>' reference list.
      * @see #isSetReferredByDocumentedClass()
      * @see #unsetReferredByDocumentedClass()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDoc_ReferredByDocumentedClass()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass#getRefersToDoc
-     * @model opposite="refersToDoc" resolveProxies="false" unsettable="true" transient="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass#getRefersToDescDoc
+     * @model opposite="refersToDescDoc" resolveProxies="false" unsettable="true" transient="true" ordered="false"
      * @generated
      */
     EList< DocumentedClass > getReferredByDocumentedClass();
@@ -474,4 +475,41 @@ public interface Doc extends NsdObject {
      */
     boolean isSetReferredByAgPresenceConditionDerivedStatistics();
 
+    /**
+     * Returns the value of the '<em><b>Referred By Titled Class</b></em>' reference list.
+     * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.TitledClass}.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.TitledClass#getRefersToTitleDoc <em>Refers To Title Doc</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Referred By Titled Class</em>' reference list.
+     * @see #isSetReferredByTitledClass()
+     * @see #unsetReferredByTitledClass()
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDoc_ReferredByTitledClass()
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.TitledClass#getRefersToTitleDoc
+     * @model opposite="refersToTitleDoc" resolveProxies="false" unsettable="true" transient="true" ordered="false"
+     * @generated
+     */
+    EList< TitledClass > getReferredByTitledClass();
+
+    /**
+     * Unsets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getReferredByTitledClass <em>Referred By Titled Class</em>}' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isSetReferredByTitledClass()
+     * @see #getReferredByTitledClass()
+     * @generated
+     */
+    void unsetReferredByTitledClass();
+
+    /**
+     * Returns whether the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getReferredByTitledClass <em>Referred By Titled Class</em>}' reference list is set.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return whether the value of the '<em>Referred By Titled Class</em>' reference list is set.
+     * @see #unsetReferredByTitledClass()
+     * @see #getReferredByTitledClass()
+     * @generated
+     */
+    boolean isSetReferredByTitledClass();
+
 } // Doc
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DocumentedClass.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DocumentedClass.java
index 69beabe2c8c3296ceff986546b1693d5b2aed3fd..a55ab1626a74c4c007bade937756748b07a27b99 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DocumentedClass.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DocumentedClass.java
@@ -31,7 +31,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass#isDeprecated <em>Deprecated</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass#getDescID <em>Desc ID</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass#isInformative <em>Informative</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass#getRefersToDoc <em>Refers To Doc</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass#getRefersToDescDoc <em>Refers To Desc Doc</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDocumentedClass()
@@ -193,54 +193,54 @@ public interface DocumentedClass extends NsdObject {
     boolean isSetInformative();
 
     /**
-     * Returns the value of the '<em><b>Refers To Doc</b></em>' reference.
+     * Returns the value of the '<em><b>Refers To Desc Doc</b></em>' reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getReferredByDocumentedClass <em>Referred By Documented Class</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Refers To Doc</em>' reference.
-     * @see #isSetRefersToDoc()
-     * @see #unsetRefersToDoc()
-     * @see #setRefersToDoc(Doc)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDocumentedClass_RefersToDoc()
+     * @return the value of the '<em>Refers To Desc Doc</em>' reference.
+     * @see #isSetRefersToDescDoc()
+     * @see #unsetRefersToDescDoc()
+     * @see #setRefersToDescDoc(Doc)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDocumentedClass_RefersToDescDoc()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getReferredByDocumentedClass
      * @model opposite="referredByDocumentedClass" resolveProxies="false" unsettable="true" transient="true" ordered="false"
      * @generated
      */
-    Doc getRefersToDoc();
+    Doc getRefersToDescDoc();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass#getRefersToDoc <em>Refers To Doc</em>}' reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass#getRefersToDescDoc <em>Refers To Desc Doc</em>}' reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Refers To Doc</em>' reference.
-     * @see #isSetRefersToDoc()
-     * @see #unsetRefersToDoc()
-     * @see #getRefersToDoc()
+     * @param value the new value of the '<em>Refers To Desc Doc</em>' reference.
+     * @see #isSetRefersToDescDoc()
+     * @see #unsetRefersToDescDoc()
+     * @see #getRefersToDescDoc()
      * @generated
      */
-    void setRefersToDoc( Doc value );
+    void setRefersToDescDoc( Doc value );
 
     /**
-     * Unsets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass#getRefersToDoc <em>Refers To Doc</em>}' reference.
+     * Unsets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass#getRefersToDescDoc <em>Refers To Desc Doc</em>}' reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @see #isSetRefersToDoc()
-     * @see #getRefersToDoc()
-     * @see #setRefersToDoc(Doc)
+     * @see #isSetRefersToDescDoc()
+     * @see #getRefersToDescDoc()
+     * @see #setRefersToDescDoc(Doc)
      * @generated
      */
-    void unsetRefersToDoc();
+    void unsetRefersToDescDoc();
 
     /**
-     * Returns whether the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass#getRefersToDoc <em>Refers To Doc</em>}' reference is set.
+     * Returns whether the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass#getRefersToDescDoc <em>Refers To Desc Doc</em>}' reference is set.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return whether the value of the '<em>Refers To Doc</em>' reference is set.
-     * @see #unsetRefersToDoc()
-     * @see #getRefersToDoc()
-     * @see #setRefersToDoc(Doc)
+     * @return whether the value of the '<em>Refers To Desc Doc</em>' reference is set.
+     * @see #unsetRefersToDescDoc()
+     * @see #getRefersToDescDoc()
+     * @see #setRefersToDescDoc(Doc)
      * @generated
      */
-    boolean isSetRefersToDoc();
+    boolean isSetRefersToDescDoc();
 
 } // DocumentedClass
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NsdPackage.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NsdPackage.java
index f1cd2d046e6ad9803627ff829534d35a718603f3..18a8b85d584e6a4a0cc3daf6eae9544b44158696 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NsdPackage.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NsdPackage.java
@@ -1276,13 +1276,13 @@ public interface NsdPackage extends EPackage {
     int DOCUMENTED_CLASS__INFORMATIVE = NSD_OBJECT_FEATURE_COUNT + 2;
 
     /**
-     * The feature id for the '<em><b>Refers To Doc</b></em>' reference.
+     * The feature id for the '<em><b>Refers To Desc Doc</b></em>' reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int DOCUMENTED_CLASS__REFERS_TO_DOC = NSD_OBJECT_FEATURE_COUNT + 3;
+    int DOCUMENTED_CLASS__REFERS_TO_DESC_DOC = NSD_OBJECT_FEATURE_COUNT + 3;
 
     /**
      * The number of structural features of the '<em>Documented Class</em>' class.
@@ -1357,13 +1357,13 @@ public interface NsdPackage extends EPackage {
     int TITLED_CLASS__INFORMATIVE = DOCUMENTED_CLASS__INFORMATIVE;
 
     /**
-     * The feature id for the '<em><b>Refers To Doc</b></em>' reference.
+     * The feature id for the '<em><b>Refers To Desc Doc</b></em>' reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int TITLED_CLASS__REFERS_TO_DOC = DOCUMENTED_CLASS__REFERS_TO_DOC;
+    int TITLED_CLASS__REFERS_TO_DESC_DOC = DOCUMENTED_CLASS__REFERS_TO_DESC_DOC;
 
     /**
      * The feature id for the '<em><b>Title ID</b></em>' attribute.
@@ -1374,6 +1374,15 @@ public interface NsdPackage extends EPackage {
      */
     int TITLED_CLASS__TITLE_ID = DOCUMENTED_CLASS_FEATURE_COUNT + 0;
 
+    /**
+     * The feature id for the '<em><b>Refers To Title Doc</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TITLED_CLASS__REFERS_TO_TITLE_DOC = DOCUMENTED_CLASS_FEATURE_COUNT + 1;
+
     /**
      * The number of structural features of the '<em>Titled Class</em>' class.
      * <!-- begin-user-doc -->
@@ -1381,7 +1390,7 @@ public interface NsdPackage extends EPackage {
      * @generated
      * @ordered
      */
-    int TITLED_CLASS_FEATURE_COUNT = DOCUMENTED_CLASS_FEATURE_COUNT + 1;
+    int TITLED_CLASS_FEATURE_COUNT = DOCUMENTED_CLASS_FEATURE_COUNT + 2;
 
     /**
      * The operation id for the '<em>Build Explicit Links</em>' operation.
@@ -1447,13 +1456,13 @@ public interface NsdPackage extends EPackage {
     int ANY_LN_CLASS__INFORMATIVE = TITLED_CLASS__INFORMATIVE;
 
     /**
-     * The feature id for the '<em><b>Refers To Doc</b></em>' reference.
+     * The feature id for the '<em><b>Refers To Desc Doc</b></em>' reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int ANY_LN_CLASS__REFERS_TO_DOC = TITLED_CLASS__REFERS_TO_DOC;
+    int ANY_LN_CLASS__REFERS_TO_DESC_DOC = TITLED_CLASS__REFERS_TO_DESC_DOC;
 
     /**
      * The feature id for the '<em><b>Title ID</b></em>' attribute.
@@ -1464,6 +1473,15 @@ public interface NsdPackage extends EPackage {
      */
     int ANY_LN_CLASS__TITLE_ID = TITLED_CLASS__TITLE_ID;
 
+    /**
+     * The feature id for the '<em><b>Refers To Title Doc</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int ANY_LN_CLASS__REFERS_TO_TITLE_DOC = TITLED_CLASS__REFERS_TO_TITLE_DOC;
+
     /**
      * The feature id for the '<em><b>Data Object</b></em>' containment reference list.
      * <!-- begin-user-doc -->
@@ -1582,13 +1600,13 @@ public interface NsdPackage extends EPackage {
     int ABSTRACT_LN_CLASS__INFORMATIVE = ANY_LN_CLASS__INFORMATIVE;
 
     /**
-     * The feature id for the '<em><b>Refers To Doc</b></em>' reference.
+     * The feature id for the '<em><b>Refers To Desc Doc</b></em>' reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int ABSTRACT_LN_CLASS__REFERS_TO_DOC = ANY_LN_CLASS__REFERS_TO_DOC;
+    int ABSTRACT_LN_CLASS__REFERS_TO_DESC_DOC = ANY_LN_CLASS__REFERS_TO_DESC_DOC;
 
     /**
      * The feature id for the '<em><b>Title ID</b></em>' attribute.
@@ -1599,6 +1617,15 @@ public interface NsdPackage extends EPackage {
      */
     int ABSTRACT_LN_CLASS__TITLE_ID = ANY_LN_CLASS__TITLE_ID;
 
+    /**
+     * The feature id for the '<em><b>Refers To Title Doc</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int ABSTRACT_LN_CLASS__REFERS_TO_TITLE_DOC = ANY_LN_CLASS__REFERS_TO_TITLE_DOC;
+
     /**
      * The feature id for the '<em><b>Data Object</b></em>' containment reference list.
      * <!-- begin-user-doc -->
@@ -2104,13 +2131,13 @@ public interface NsdPackage extends EPackage {
     int CDC__INFORMATIVE = TITLED_CLASS__INFORMATIVE;
 
     /**
-     * The feature id for the '<em><b>Refers To Doc</b></em>' reference.
+     * The feature id for the '<em><b>Refers To Desc Doc</b></em>' reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int CDC__REFERS_TO_DOC = TITLED_CLASS__REFERS_TO_DOC;
+    int CDC__REFERS_TO_DESC_DOC = TITLED_CLASS__REFERS_TO_DESC_DOC;
 
     /**
      * The feature id for the '<em><b>Title ID</b></em>' attribute.
@@ -2121,6 +2148,15 @@ public interface NsdPackage extends EPackage {
      */
     int CDC__TITLE_ID = TITLED_CLASS__TITLE_ID;
 
+    /**
+     * The feature id for the '<em><b>Refers To Title Doc</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int CDC__REFERS_TO_TITLE_DOC = TITLED_CLASS__REFERS_TO_TITLE_DOC;
+
     /**
      * The feature id for the '<em><b>Sub Data Object</b></em>' containment reference list.
      * <!-- begin-user-doc -->
@@ -2473,13 +2509,13 @@ public interface NsdPackage extends EPackage {
     int CONSTRUCTED_ATTRIBUTE__INFORMATIVE = TITLED_CLASS__INFORMATIVE;
 
     /**
-     * The feature id for the '<em><b>Refers To Doc</b></em>' reference.
+     * The feature id for the '<em><b>Refers To Desc Doc</b></em>' reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int CONSTRUCTED_ATTRIBUTE__REFERS_TO_DOC = TITLED_CLASS__REFERS_TO_DOC;
+    int CONSTRUCTED_ATTRIBUTE__REFERS_TO_DESC_DOC = TITLED_CLASS__REFERS_TO_DESC_DOC;
 
     /**
      * The feature id for the '<em><b>Title ID</b></em>' attribute.
@@ -2490,6 +2526,15 @@ public interface NsdPackage extends EPackage {
      */
     int CONSTRUCTED_ATTRIBUTE__TITLE_ID = TITLED_CLASS__TITLE_ID;
 
+    /**
+     * The feature id for the '<em><b>Refers To Title Doc</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int CONSTRUCTED_ATTRIBUTE__REFERS_TO_TITLE_DOC = TITLED_CLASS__REFERS_TO_TITLE_DOC;
+
     /**
      * The feature id for the '<em><b>Sub Data Attribute</b></em>' containment reference list.
      * <!-- begin-user-doc -->
@@ -2743,13 +2788,13 @@ public interface NsdPackage extends EPackage {
     int DATA_ATTRIBUTE__INFORMATIVE = DOCUMENTED_CLASS__INFORMATIVE;
 
     /**
-     * The feature id for the '<em><b>Refers To Doc</b></em>' reference.
+     * The feature id for the '<em><b>Refers To Desc Doc</b></em>' reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int DATA_ATTRIBUTE__REFERS_TO_DOC = DOCUMENTED_CLASS__REFERS_TO_DOC;
+    int DATA_ATTRIBUTE__REFERS_TO_DESC_DOC = DOCUMENTED_CLASS__REFERS_TO_DESC_DOC;
 
     /**
      * The feature id for the '<em><b>Pres Cond</b></em>' attribute.
@@ -3094,13 +3139,13 @@ public interface NsdPackage extends EPackage {
     int DATA_OBJECT__INFORMATIVE = DOCUMENTED_CLASS__INFORMATIVE;
 
     /**
-     * The feature id for the '<em><b>Refers To Doc</b></em>' reference.
+     * The feature id for the '<em><b>Refers To Desc Doc</b></em>' reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int DATA_OBJECT__REFERS_TO_DOC = DOCUMENTED_CLASS__REFERS_TO_DOC;
+    int DATA_OBJECT__REFERS_TO_DESC_DOC = DOCUMENTED_CLASS__REFERS_TO_DESC_DOC;
 
     /**
      * The feature id for the '<em><b>Pres Cond</b></em>' attribute.
@@ -3480,6 +3525,15 @@ public interface NsdPackage extends EPackage {
      */
     int DOC__REFERRED_BY_AG_PRESENCE_CONDITION_DERIVED_STATISTICS = NSD_OBJECT_FEATURE_COUNT + 12;
 
+    /**
+     * The feature id for the '<em><b>Referred By Titled Class</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int DOC__REFERRED_BY_TITLED_CLASS = NSD_OBJECT_FEATURE_COUNT + 13;
+
     /**
      * The number of structural features of the '<em>Doc</em>' class.
      * <!-- begin-user-doc -->
@@ -3487,7 +3541,7 @@ public interface NsdPackage extends EPackage {
      * @generated
      * @ordered
      */
-    int DOC_FEATURE_COUNT = NSD_OBJECT_FEATURE_COUNT + 13;
+    int DOC_FEATURE_COUNT = NSD_OBJECT_FEATURE_COUNT + 14;
 
     /**
      * The operation id for the '<em>Build Explicit Links</em>' operation.
@@ -3553,13 +3607,13 @@ public interface NsdPackage extends EPackage {
     int ENUMERATION__INFORMATIVE = TITLED_CLASS__INFORMATIVE;
 
     /**
-     * The feature id for the '<em><b>Refers To Doc</b></em>' reference.
+     * The feature id for the '<em><b>Refers To Desc Doc</b></em>' reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int ENUMERATION__REFERS_TO_DOC = TITLED_CLASS__REFERS_TO_DOC;
+    int ENUMERATION__REFERS_TO_DESC_DOC = TITLED_CLASS__REFERS_TO_DESC_DOC;
 
     /**
      * The feature id for the '<em><b>Title ID</b></em>' attribute.
@@ -3570,6 +3624,15 @@ public interface NsdPackage extends EPackage {
      */
     int ENUMERATION__TITLE_ID = TITLED_CLASS__TITLE_ID;
 
+    /**
+     * The feature id for the '<em><b>Refers To Title Doc</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int ENUMERATION__REFERS_TO_TITLE_DOC = TITLED_CLASS__REFERS_TO_TITLE_DOC;
+
     /**
      * The feature id for the '<em><b>Literal</b></em>' containment reference list.
      * <!-- begin-user-doc -->
@@ -4030,13 +4093,13 @@ public interface NsdPackage extends EPackage {
     int LITERAL__INFORMATIVE = DOCUMENTED_CLASS__INFORMATIVE;
 
     /**
-     * The feature id for the '<em><b>Refers To Doc</b></em>' reference.
+     * The feature id for the '<em><b>Refers To Desc Doc</b></em>' reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int LITERAL__REFERS_TO_DOC = DOCUMENTED_CLASS__REFERS_TO_DOC;
+    int LITERAL__REFERS_TO_DESC_DOC = DOCUMENTED_CLASS__REFERS_TO_DESC_DOC;
 
     /**
      * The feature id for the '<em><b>Literal Val</b></em>' attribute.
@@ -4138,13 +4201,13 @@ public interface NsdPackage extends EPackage {
     int LN_CLASS__INFORMATIVE = ANY_LN_CLASS__INFORMATIVE;
 
     /**
-     * The feature id for the '<em><b>Refers To Doc</b></em>' reference.
+     * The feature id for the '<em><b>Refers To Desc Doc</b></em>' reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int LN_CLASS__REFERS_TO_DOC = ANY_LN_CLASS__REFERS_TO_DOC;
+    int LN_CLASS__REFERS_TO_DESC_DOC = ANY_LN_CLASS__REFERS_TO_DESC_DOC;
 
     /**
      * The feature id for the '<em><b>Title ID</b></em>' attribute.
@@ -4155,6 +4218,15 @@ public interface NsdPackage extends EPackage {
      */
     int LN_CLASS__TITLE_ID = ANY_LN_CLASS__TITLE_ID;
 
+    /**
+     * The feature id for the '<em><b>Refers To Title Doc</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int LN_CLASS__REFERS_TO_TITLE_DOC = ANY_LN_CLASS__REFERS_TO_TITLE_DOC;
+
     /**
      * The feature id for the '<em><b>Data Object</b></em>' containment reference list.
      * <!-- begin-user-doc -->
@@ -5227,13 +5299,13 @@ public interface NsdPackage extends EPackage {
     int SERVICE_CONSTRUCTED_ATTRIBUTE__INFORMATIVE = CONSTRUCTED_ATTRIBUTE__INFORMATIVE;
 
     /**
-     * The feature id for the '<em><b>Refers To Doc</b></em>' reference.
+     * The feature id for the '<em><b>Refers To Desc Doc</b></em>' reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int SERVICE_CONSTRUCTED_ATTRIBUTE__REFERS_TO_DOC = CONSTRUCTED_ATTRIBUTE__REFERS_TO_DOC;
+    int SERVICE_CONSTRUCTED_ATTRIBUTE__REFERS_TO_DESC_DOC = CONSTRUCTED_ATTRIBUTE__REFERS_TO_DESC_DOC;
 
     /**
      * The feature id for the '<em><b>Title ID</b></em>' attribute.
@@ -5244,6 +5316,15 @@ public interface NsdPackage extends EPackage {
      */
     int SERVICE_CONSTRUCTED_ATTRIBUTE__TITLE_ID = CONSTRUCTED_ATTRIBUTE__TITLE_ID;
 
+    /**
+     * The feature id for the '<em><b>Refers To Title Doc</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int SERVICE_CONSTRUCTED_ATTRIBUTE__REFERS_TO_TITLE_DOC = CONSTRUCTED_ATTRIBUTE__REFERS_TO_TITLE_DOC;
+
     /**
      * The feature id for the '<em><b>Sub Data Attribute</b></em>' containment reference list.
      * <!-- begin-user-doc -->
@@ -5443,13 +5524,13 @@ public interface NsdPackage extends EPackage {
     int SERVICE_DATA_ATTRIBUTE__INFORMATIVE = DOCUMENTED_CLASS__INFORMATIVE;
 
     /**
-     * The feature id for the '<em><b>Refers To Doc</b></em>' reference.
+     * The feature id for the '<em><b>Refers To Desc Doc</b></em>' reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int SERVICE_DATA_ATTRIBUTE__REFERS_TO_DOC = DOCUMENTED_CLASS__REFERS_TO_DOC;
+    int SERVICE_DATA_ATTRIBUTE__REFERS_TO_DESC_DOC = DOCUMENTED_CLASS__REFERS_TO_DESC_DOC;
 
     /**
      * The feature id for the '<em><b>Pres Cond</b></em>' attribute.
@@ -5956,13 +6037,13 @@ public interface NsdPackage extends EPackage {
     int SERVICE_PARAMETER__INFORMATIVE = DOCUMENTED_CLASS__INFORMATIVE;
 
     /**
-     * The feature id for the '<em><b>Refers To Doc</b></em>' reference.
+     * The feature id for the '<em><b>Refers To Desc Doc</b></em>' reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int SERVICE_PARAMETER__REFERS_TO_DOC = DOCUMENTED_CLASS__REFERS_TO_DOC;
+    int SERVICE_PARAMETER__REFERS_TO_DESC_DOC = DOCUMENTED_CLASS__REFERS_TO_DESC_DOC;
 
     /**
      * The feature id for the '<em><b>Type</b></em>' attribute.
@@ -6190,13 +6271,13 @@ public interface NsdPackage extends EPackage {
     int SUB_DATA_ATTRIBUTE__INFORMATIVE = DOCUMENTED_CLASS__INFORMATIVE;
 
     /**
-     * The feature id for the '<em><b>Refers To Doc</b></em>' reference.
+     * The feature id for the '<em><b>Refers To Desc Doc</b></em>' reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int SUB_DATA_ATTRIBUTE__REFERS_TO_DOC = DOCUMENTED_CLASS__REFERS_TO_DOC;
+    int SUB_DATA_ATTRIBUTE__REFERS_TO_DESC_DOC = DOCUMENTED_CLASS__REFERS_TO_DESC_DOC;
 
     /**
      * The feature id for the '<em><b>Pres Cond</b></em>' attribute.
@@ -6442,13 +6523,13 @@ public interface NsdPackage extends EPackage {
     int SUB_DATA_OBJECT__INFORMATIVE = DOCUMENTED_CLASS__INFORMATIVE;
 
     /**
-     * The feature id for the '<em><b>Refers To Doc</b></em>' reference.
+     * The feature id for the '<em><b>Refers To Desc Doc</b></em>' reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int SUB_DATA_OBJECT__REFERS_TO_DOC = DOCUMENTED_CLASS__REFERS_TO_DOC;
+    int SUB_DATA_OBJECT__REFERS_TO_DESC_DOC = DOCUMENTED_CLASS__REFERS_TO_DESC_DOC;
 
     /**
      * The feature id for the '<em><b>Pres Cond</b></em>' attribute.
@@ -8702,6 +8783,17 @@ public interface NsdPackage extends EPackage {
      */
     EReference getDoc_ReferredByAgPresenceConditionDerivedStatistics();
 
+    /**
+     * Returns the meta object for the reference list '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getReferredByTitledClass <em>Referred By Titled Class</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the reference list '<em>Referred By Titled Class</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getReferredByTitledClass()
+     * @see #getDoc()
+     * @generated
+     */
+    EReference getDoc_ReferredByTitledClass();
+
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass <em>Documented Class</em>}'.
      * <!-- begin-user-doc -->
@@ -8746,15 +8838,15 @@ public interface NsdPackage extends EPackage {
     EAttribute getDocumentedClass_Informative();
 
     /**
-     * Returns the meta object for the reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass#getRefersToDoc <em>Refers To Doc</em>}'.
+     * Returns the meta object for the reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass#getRefersToDescDoc <em>Refers To Desc Doc</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the reference '<em>Refers To Doc</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass#getRefersToDoc()
+     * @return the meta object for the reference '<em>Refers To Desc Doc</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass#getRefersToDescDoc()
      * @see #getDocumentedClass()
      * @generated
      */
-    EReference getDocumentedClass_RefersToDoc();
+    EReference getDocumentedClass_RefersToDescDoc();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration <em>Enumeration</em>}'.
@@ -10155,6 +10247,17 @@ public interface NsdPackage extends EPackage {
      */
     EAttribute getTitledClass_TitleID();
 
+    /**
+     * Returns the meta object for the reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.TitledClass#getRefersToTitleDoc <em>Refers To Title Doc</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the reference '<em>Refers To Title Doc</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.TitledClass#getRefersToTitleDoc()
+     * @see #getTitledClass()
+     * @generated
+     */
+    EReference getTitledClass_RefersToTitleDoc();
+
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdObject <em>Object</em>}'.
      * <!-- begin-user-doc -->
@@ -11934,6 +12037,14 @@ public interface NsdPackage extends EPackage {
         EReference DOC__REFERRED_BY_AG_PRESENCE_CONDITION_DERIVED_STATISTICS = eINSTANCE
                 .getDoc_ReferredByAgPresenceConditionDerivedStatistics();
 
+        /**
+         * The meta object literal for the '<em><b>Referred By Titled Class</b></em>' reference list feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference DOC__REFERRED_BY_TITLED_CLASS = eINSTANCE.getDoc_ReferredByTitledClass();
+
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DocumentedClassImpl <em>Documented Class</em>}' class.
          * <!-- begin-user-doc -->
@@ -11969,12 +12080,12 @@ public interface NsdPackage extends EPackage {
         EAttribute DOCUMENTED_CLASS__INFORMATIVE = eINSTANCE.getDocumentedClass_Informative();
 
         /**
-         * The meta object literal for the '<em><b>Refers To Doc</b></em>' reference feature.
+         * The meta object literal for the '<em><b>Refers To Desc Doc</b></em>' reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference DOCUMENTED_CLASS__REFERS_TO_DOC = eINSTANCE.getDocumentedClass_RefersToDoc();
+        EReference DOCUMENTED_CLASS__REFERS_TO_DESC_DOC = eINSTANCE.getDocumentedClass_RefersToDescDoc();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.EnumerationImpl <em>Enumeration</em>}' class.
@@ -13091,6 +13202,14 @@ public interface NsdPackage extends EPackage {
          */
         EAttribute TITLED_CLASS__TITLE_ID = eINSTANCE.getTitledClass_TitleID();
 
+        /**
+         * The meta object literal for the '<em><b>Refers To Title Doc</b></em>' reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference TITLED_CLASS__REFERS_TO_TITLE_DOC = eINSTANCE.getTitledClass_RefersToTitleDoc();
+
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdObjectImpl <em>Object</em>}' class.
          * <!-- begin-user-doc -->
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/TitledClass.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/TitledClass.java
index 9b77bec0cabf5ad23e4226bddc7475d2cd800d6c..5c496fb8bf2996401556a5eed16c47e5ff88a4ec 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/TitledClass.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/TitledClass.java
@@ -29,6 +29,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.TitledClass#getTitleID <em>Title ID</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.TitledClass#getRefersToTitleDoc <em>Refers To Title Doc</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getTitledClass()
@@ -89,4 +90,55 @@ public interface TitledClass extends DocumentedClass {
      */
     boolean isSetTitleID();
 
+    /**
+     * Returns the value of the '<em><b>Refers To Title Doc</b></em>' reference.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getReferredByTitledClass <em>Referred By Titled Class</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Refers To Title Doc</em>' reference.
+     * @see #isSetRefersToTitleDoc()
+     * @see #unsetRefersToTitleDoc()
+     * @see #setRefersToTitleDoc(Doc)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getTitledClass_RefersToTitleDoc()
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getReferredByTitledClass
+     * @model opposite="referredByTitledClass" resolveProxies="false" unsettable="true" transient="true" ordered="false"
+     * @generated
+     */
+    Doc getRefersToTitleDoc();
+
+    /**
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.TitledClass#getRefersToTitleDoc <em>Refers To Title Doc</em>}' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Refers To Title Doc</em>' reference.
+     * @see #isSetRefersToTitleDoc()
+     * @see #unsetRefersToTitleDoc()
+     * @see #getRefersToTitleDoc()
+     * @generated
+     */
+    void setRefersToTitleDoc( Doc value );
+
+    /**
+     * Unsets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.TitledClass#getRefersToTitleDoc <em>Refers To Title Doc</em>}' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isSetRefersToTitleDoc()
+     * @see #getRefersToTitleDoc()
+     * @see #setRefersToTitleDoc(Doc)
+     * @generated
+     */
+    void unsetRefersToTitleDoc();
+
+    /**
+     * Returns whether the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.TitledClass#getRefersToTitleDoc <em>Refers To Title Doc</em>}' reference is set.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return whether the value of the '<em>Refers To Title Doc</em>' reference is set.
+     * @see #unsetRefersToTitleDoc()
+     * @see #getRefersToTitleDoc()
+     * @see #setRefersToTitleDoc(Doc)
+     * @generated
+     */
+    boolean isSetRefersToTitleDoc();
+
 } // TitledClass
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbbreviationImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbbreviationImpl.java
index 95704813bd105965eec4a0ba416a7fd7c0992c1a..dd899e2117f6c2e2c7c9abe05af7e5a07a4e45f8 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbbreviationImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbbreviationImpl.java
@@ -581,10 +581,11 @@ public class AbbreviationImpl extends NsdObjectImpl implements Abbreviation {
     @Override
     public boolean buildExplicitLinks( IRiseClipseConsole console, boolean forceUpdate ) {
         if( super.buildExplicitLinks( console, forceUpdate ) ) return true;
-        
+
         if( isSetDescID() ) {
             if( this.eResource().getResourceSet() instanceof NsdResourceSetImpl ) {
-                Doc doc = (( NsdResourceSetImpl ) this.eResource().getResourceSet() ).findDoc( new NsIdentification( getParentAbbreviations().getParentNS() ), getDescID() );
+                Doc doc = ( ( NsdResourceSetImpl ) this.eResource().getResourceSet() )
+                        .findDoc( new NsIdentification( getParentAbbreviations().getParentNS() ), getDescID() );
                 if( doc != null ) setRefersToDoc( doc );
             }
         }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ConstructedAttributeImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ConstructedAttributeImpl.java
index 80d2fad8a2abc41321af6cb6805416c66e7d6398..858a00ee5589ad09dd4a365fa820419bbd0688e2 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ConstructedAttributeImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ConstructedAttributeImpl.java
@@ -545,7 +545,7 @@ public class ConstructedAttributeImpl extends TitledClassImpl implements Constru
         if( getParentConstructedAttributes() != null ) {
             ns = getParentConstructedAttributes().getParentNS();
         }
-        if(( ns == null ) && ( getParentServiceTypeRealizations() != null ) ) {
+        if( ( ns == null ) && ( getParentServiceTypeRealizations() != null ) ) {
             ns = getParentServiceTypeRealizations().getParentServiceNS();
         }
         return new NsIdentification( ns );
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DocImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DocImpl.java
index e3f726ff512e91d76240f63ed4ad3abc8ab13149..e8aa229f0a54c78064e60228d64bd2b5fa707d8d 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DocImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DocImpl.java
@@ -31,6 +31,7 @@ import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NSDoc;
 import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage;
 
 import fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition;
+import fr.centralesupelec.edf.riseclipse.iec61850.nsd.TitledClass;
 import java.util.Collection;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
@@ -67,6 +68,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DocImpl#getReferredByDocumentedClass <em>Referred By Documented Class</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DocImpl#getReferredByFunctionalConstraint <em>Referred By Functional Constraint</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DocImpl#getReferredByAgPresenceConditionDerivedStatistics <em>Referred By Ag Presence Condition Derived Statistics</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DocImpl#getReferredByTitledClass <em>Referred By Titled Class</em>}</li>
  * </ul>
  *
  * @generated
@@ -191,6 +193,16 @@ public class DocImpl extends NsdObjectImpl implements Doc {
      */
     protected EList< AgPresenceConditionDerivedStatistics > referredByAgPresenceConditionDerivedStatistics;
 
+    /**
+     * The cached value of the '{@link #getReferredByTitledClass() <em>Referred By Titled Class</em>}' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getReferredByTitledClass()
+     * @generated
+     * @ordered
+     */
+    protected EList< TitledClass > referredByTitledClass;
+
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -526,7 +538,7 @@ public class DocImpl extends NsdObjectImpl implements Doc {
         if( referredByDocumentedClass == null ) {
             referredByDocumentedClass = new EObjectWithInverseEList.Unsettable< DocumentedClass >(
                     DocumentedClass.class, this, NsdPackage.DOC__REFERRED_BY_DOCUMENTED_CLASS,
-                    NsdPackage.DOCUMENTED_CLASS__REFERS_TO_DOC );
+                    NsdPackage.DOCUMENTED_CLASS__REFERS_TO_DESC_DOC );
         }
         return referredByDocumentedClass;
     }
@@ -627,6 +639,40 @@ public class DocImpl extends NsdObjectImpl implements Doc {
                 && ( ( InternalEList.Unsettable< ? > ) referredByAgPresenceConditionDerivedStatistics ).isSet();
     }
 
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public EList< TitledClass > getReferredByTitledClass() {
+        if( referredByTitledClass == null ) {
+            referredByTitledClass = new EObjectWithInverseEList.Unsettable< TitledClass >( TitledClass.class, this,
+                    NsdPackage.DOC__REFERRED_BY_TITLED_CLASS, NsdPackage.TITLED_CLASS__REFERS_TO_TITLE_DOC );
+        }
+        return referredByTitledClass;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public void unsetReferredByTitledClass() {
+        if( referredByTitledClass != null ) ( ( InternalEList.Unsettable< ? > ) referredByTitledClass ).unset();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public boolean isSetReferredByTitledClass() {
+        return referredByTitledClass != null && ( ( InternalEList.Unsettable< ? > ) referredByTitledClass ).isSet();
+    }
+
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -664,6 +710,9 @@ public class DocImpl extends NsdObjectImpl implements Doc {
         case NsdPackage.DOC__REFERRED_BY_AG_PRESENCE_CONDITION_DERIVED_STATISTICS:
             return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getReferredByAgPresenceConditionDerivedStatistics() )
                     .basicAdd( otherEnd, msgs );
+        case NsdPackage.DOC__REFERRED_BY_TITLED_CLASS:
+            return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getReferredByTitledClass() )
+                    .basicAdd( otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -701,6 +750,8 @@ public class DocImpl extends NsdObjectImpl implements Doc {
         case NsdPackage.DOC__REFERRED_BY_AG_PRESENCE_CONDITION_DERIVED_STATISTICS:
             return ( ( InternalEList< ? > ) getReferredByAgPresenceConditionDerivedStatistics() ).basicRemove( otherEnd,
                     msgs );
+        case NsdPackage.DOC__REFERRED_BY_TITLED_CLASS:
+            return ( ( InternalEList< ? > ) getReferredByTitledClass() ).basicRemove( otherEnd, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -756,6 +807,8 @@ public class DocImpl extends NsdObjectImpl implements Doc {
             return getReferredByFunctionalConstraint();
         case NsdPackage.DOC__REFERRED_BY_AG_PRESENCE_CONDITION_DERIVED_STATISTICS:
             return getReferredByAgPresenceConditionDerivedStatistics();
+        case NsdPackage.DOC__REFERRED_BY_TITLED_CLASS:
+            return getReferredByTitledClass();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -817,6 +870,10 @@ public class DocImpl extends NsdObjectImpl implements Doc {
             getReferredByAgPresenceConditionDerivedStatistics()
                     .addAll( ( Collection< ? extends AgPresenceConditionDerivedStatistics > ) newValue );
             return;
+        case NsdPackage.DOC__REFERRED_BY_TITLED_CLASS:
+            getReferredByTitledClass().clear();
+            getReferredByTitledClass().addAll( ( Collection< ? extends TitledClass > ) newValue );
+            return;
         }
         super.eSet( featureID, newValue );
     }
@@ -868,6 +925,9 @@ public class DocImpl extends NsdObjectImpl implements Doc {
         case NsdPackage.DOC__REFERRED_BY_AG_PRESENCE_CONDITION_DERIVED_STATISTICS:
             unsetReferredByAgPresenceConditionDerivedStatistics();
             return;
+        case NsdPackage.DOC__REFERRED_BY_TITLED_CLASS:
+            unsetReferredByTitledClass();
+            return;
         }
         super.eUnset( featureID );
     }
@@ -906,6 +966,8 @@ public class DocImpl extends NsdObjectImpl implements Doc {
             return isSetReferredByFunctionalConstraint();
         case NsdPackage.DOC__REFERRED_BY_AG_PRESENCE_CONDITION_DERIVED_STATISTICS:
             return isSetReferredByAgPresenceConditionDerivedStatistics();
+        case NsdPackage.DOC__REFERRED_BY_TITLED_CLASS:
+            return isSetReferredByTitledClass();
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DocumentedClassImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DocumentedClassImpl.java
index dcf59af24752a5dcee392b40b598dfa67f81886b..5cd74ab7167b0783c2a67ceac16e4f07d04e4e91 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DocumentedClassImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DocumentedClassImpl.java
@@ -45,7 +45,7 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DocumentedClassImpl#isDeprecated <em>Deprecated</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DocumentedClassImpl#getDescID <em>Desc ID</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DocumentedClassImpl#isInformative <em>Informative</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DocumentedClassImpl#getRefersToDoc <em>Refers To Doc</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DocumentedClassImpl#getRefersToDescDoc <em>Refers To Desc Doc</em>}</li>
  * </ul>
  *
  * @generated
@@ -139,23 +139,23 @@ public abstract class DocumentedClassImpl extends NsdObjectImpl implements Docum
     protected boolean informativeESet;
 
     /**
-     * The cached value of the '{@link #getRefersToDoc() <em>Refers To Doc</em>}' reference.
+     * The cached value of the '{@link #getRefersToDescDoc() <em>Refers To Desc Doc</em>}' reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @see #getRefersToDoc()
+     * @see #getRefersToDescDoc()
      * @generated
      * @ordered
      */
-    protected Doc refersToDoc;
+    protected Doc refersToDescDoc;
 
     /**
-     * This is true if the Refers To Doc reference has been set.
+     * This is true if the Refers To Desc Doc reference has been set.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    protected boolean refersToDocESet;
+    protected boolean refersToDescDocESet;
 
     /**
      * <!-- begin-user-doc -->
@@ -338,8 +338,8 @@ public abstract class DocumentedClassImpl extends NsdObjectImpl implements Docum
      * @generated
      */
     @Override
-    public Doc getRefersToDoc() {
-        return refersToDoc;
+    public Doc getRefersToDescDoc() {
+        return refersToDescDoc;
     }
 
     /**
@@ -347,14 +347,15 @@ public abstract class DocumentedClassImpl extends NsdObjectImpl implements Docum
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetRefersToDoc( Doc newRefersToDoc, NotificationChain msgs ) {
-        Doc oldRefersToDoc = refersToDoc;
-        refersToDoc = newRefersToDoc;
-        boolean oldRefersToDocESet = refersToDocESet;
-        refersToDocESet = true;
+    public NotificationChain basicSetRefersToDescDoc( Doc newRefersToDescDoc, NotificationChain msgs ) {
+        Doc oldRefersToDescDoc = refersToDescDoc;
+        refersToDescDoc = newRefersToDescDoc;
+        boolean oldRefersToDescDocESet = refersToDescDocESet;
+        refersToDescDocESet = true;
         if( eNotificationRequired() ) {
             ENotificationImpl notification = new ENotificationImpl( this, Notification.SET,
-                    NsdPackage.DOCUMENTED_CLASS__REFERS_TO_DOC, oldRefersToDoc, newRefersToDoc, !oldRefersToDocESet );
+                    NsdPackage.DOCUMENTED_CLASS__REFERS_TO_DESC_DOC, oldRefersToDescDoc, newRefersToDescDoc,
+                    !oldRefersToDescDocESet );
             if( msgs == null )
                 msgs = notification;
             else
@@ -369,24 +370,24 @@ public abstract class DocumentedClassImpl extends NsdObjectImpl implements Docum
      * @generated
      */
     @Override
-    public void setRefersToDoc( Doc newRefersToDoc ) {
-        if( newRefersToDoc != refersToDoc ) {
+    public void setRefersToDescDoc( Doc newRefersToDescDoc ) {
+        if( newRefersToDescDoc != refersToDescDoc ) {
             NotificationChain msgs = null;
-            if( refersToDoc != null )
-                msgs = ( ( InternalEObject ) refersToDoc ).eInverseRemove( this,
+            if( refersToDescDoc != null )
+                msgs = ( ( InternalEObject ) refersToDescDoc ).eInverseRemove( this,
                         NsdPackage.DOC__REFERRED_BY_DOCUMENTED_CLASS, Doc.class, msgs );
-            if( newRefersToDoc != null )
-                msgs = ( ( InternalEObject ) newRefersToDoc ).eInverseAdd( this,
+            if( newRefersToDescDoc != null )
+                msgs = ( ( InternalEObject ) newRefersToDescDoc ).eInverseAdd( this,
                         NsdPackage.DOC__REFERRED_BY_DOCUMENTED_CLASS, Doc.class, msgs );
-            msgs = basicSetRefersToDoc( newRefersToDoc, msgs );
+            msgs = basicSetRefersToDescDoc( newRefersToDescDoc, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else {
-            boolean oldRefersToDocESet = refersToDocESet;
-            refersToDocESet = true;
+            boolean oldRefersToDescDocESet = refersToDescDocESet;
+            refersToDescDocESet = true;
             if( eNotificationRequired() )
-                eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.DOCUMENTED_CLASS__REFERS_TO_DOC,
-                        newRefersToDoc, newRefersToDoc, !oldRefersToDocESet ) );
+                eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.DOCUMENTED_CLASS__REFERS_TO_DESC_DOC,
+                        newRefersToDescDoc, newRefersToDescDoc, !oldRefersToDescDocESet ) );
         }
     }
 
@@ -395,14 +396,14 @@ public abstract class DocumentedClassImpl extends NsdObjectImpl implements Docum
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicUnsetRefersToDoc( NotificationChain msgs ) {
-        Doc oldRefersToDoc = refersToDoc;
-        refersToDoc = null;
-        boolean oldRefersToDocESet = refersToDocESet;
-        refersToDocESet = false;
+    public NotificationChain basicUnsetRefersToDescDoc( NotificationChain msgs ) {
+        Doc oldRefersToDescDoc = refersToDescDoc;
+        refersToDescDoc = null;
+        boolean oldRefersToDescDocESet = refersToDescDocESet;
+        refersToDescDocESet = false;
         if( eNotificationRequired() ) {
             ENotificationImpl notification = new ENotificationImpl( this, Notification.UNSET,
-                    NsdPackage.DOCUMENTED_CLASS__REFERS_TO_DOC, oldRefersToDoc, null, oldRefersToDocESet );
+                    NsdPackage.DOCUMENTED_CLASS__REFERS_TO_DESC_DOC, oldRefersToDescDoc, null, oldRefersToDescDocESet );
             if( msgs == null )
                 msgs = notification;
             else
@@ -417,20 +418,20 @@ public abstract class DocumentedClassImpl extends NsdObjectImpl implements Docum
      * @generated
      */
     @Override
-    public void unsetRefersToDoc() {
-        if( refersToDoc != null ) {
+    public void unsetRefersToDescDoc() {
+        if( refersToDescDoc != null ) {
             NotificationChain msgs = null;
-            msgs = ( ( InternalEObject ) refersToDoc ).eInverseRemove( this,
+            msgs = ( ( InternalEObject ) refersToDescDoc ).eInverseRemove( this,
                     NsdPackage.DOC__REFERRED_BY_DOCUMENTED_CLASS, Doc.class, msgs );
-            msgs = basicUnsetRefersToDoc( msgs );
+            msgs = basicUnsetRefersToDescDoc( msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else {
-            boolean oldRefersToDocESet = refersToDocESet;
-            refersToDocESet = false;
+            boolean oldRefersToDescDocESet = refersToDescDocESet;
+            refersToDescDocESet = false;
             if( eNotificationRequired() )
-                eNotify( new ENotificationImpl( this, Notification.UNSET, NsdPackage.DOCUMENTED_CLASS__REFERS_TO_DOC,
-                        null, null, oldRefersToDocESet ) );
+                eNotify( new ENotificationImpl( this, Notification.UNSET,
+                        NsdPackage.DOCUMENTED_CLASS__REFERS_TO_DESC_DOC, null, null, oldRefersToDescDocESet ) );
         }
     }
 
@@ -440,8 +441,8 @@ public abstract class DocumentedClassImpl extends NsdObjectImpl implements Docum
      * @generated
      */
     @Override
-    public boolean isSetRefersToDoc() {
-        return refersToDocESet;
+    public boolean isSetRefersToDescDoc() {
+        return refersToDescDocESet;
     }
 
     /**
@@ -452,11 +453,11 @@ public abstract class DocumentedClassImpl extends NsdObjectImpl implements Docum
     @Override
     public NotificationChain eInverseAdd( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.DOCUMENTED_CLASS__REFERS_TO_DOC:
-            if( refersToDoc != null )
-                msgs = ( ( InternalEObject ) refersToDoc ).eInverseRemove( this,
+        case NsdPackage.DOCUMENTED_CLASS__REFERS_TO_DESC_DOC:
+            if( refersToDescDoc != null )
+                msgs = ( ( InternalEObject ) refersToDescDoc ).eInverseRemove( this,
                         NsdPackage.DOC__REFERRED_BY_DOCUMENTED_CLASS, Doc.class, msgs );
-            return basicSetRefersToDoc( ( Doc ) otherEnd, msgs );
+            return basicSetRefersToDescDoc( ( Doc ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -469,8 +470,8 @@ public abstract class DocumentedClassImpl extends NsdObjectImpl implements Docum
     @Override
     public NotificationChain eInverseRemove( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.DOCUMENTED_CLASS__REFERS_TO_DOC:
-            return basicUnsetRefersToDoc( msgs );
+        case NsdPackage.DOCUMENTED_CLASS__REFERS_TO_DESC_DOC:
+            return basicUnsetRefersToDescDoc( msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -489,8 +490,8 @@ public abstract class DocumentedClassImpl extends NsdObjectImpl implements Docum
             return getDescID();
         case NsdPackage.DOCUMENTED_CLASS__INFORMATIVE:
             return isInformative();
-        case NsdPackage.DOCUMENTED_CLASS__REFERS_TO_DOC:
-            return getRefersToDoc();
+        case NsdPackage.DOCUMENTED_CLASS__REFERS_TO_DESC_DOC:
+            return getRefersToDescDoc();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -512,8 +513,8 @@ public abstract class DocumentedClassImpl extends NsdObjectImpl implements Docum
         case NsdPackage.DOCUMENTED_CLASS__INFORMATIVE:
             setInformative( ( Boolean ) newValue );
             return;
-        case NsdPackage.DOCUMENTED_CLASS__REFERS_TO_DOC:
-            setRefersToDoc( ( Doc ) newValue );
+        case NsdPackage.DOCUMENTED_CLASS__REFERS_TO_DESC_DOC:
+            setRefersToDescDoc( ( Doc ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -536,8 +537,8 @@ public abstract class DocumentedClassImpl extends NsdObjectImpl implements Docum
         case NsdPackage.DOCUMENTED_CLASS__INFORMATIVE:
             unsetInformative();
             return;
-        case NsdPackage.DOCUMENTED_CLASS__REFERS_TO_DOC:
-            unsetRefersToDoc();
+        case NsdPackage.DOCUMENTED_CLASS__REFERS_TO_DESC_DOC:
+            unsetRefersToDescDoc();
             return;
         }
         super.eUnset( featureID );
@@ -557,8 +558,8 @@ public abstract class DocumentedClassImpl extends NsdObjectImpl implements Docum
             return isSetDescID();
         case NsdPackage.DOCUMENTED_CLASS__INFORMATIVE:
             return isSetInformative();
-        case NsdPackage.DOCUMENTED_CLASS__REFERS_TO_DOC:
-            return isSetRefersToDoc();
+        case NsdPackage.DOCUMENTED_CLASS__REFERS_TO_DESC_DOC:
+            return isSetRefersToDescDoc();
         }
         return super.eIsSet( featureID );
     }
@@ -600,7 +601,7 @@ public abstract class DocumentedClassImpl extends NsdObjectImpl implements Docum
             if( this.eResource().getResourceSet() instanceof NsdResourceSetImpl ) {
                 Doc doc = ( ( NsdResourceSetImpl ) this.eResource().getResourceSet() ).findDoc( getNsIdentification(),
                         getDescID() );
-                if( doc != null ) setRefersToDoc( doc );
+                if( doc != null ) setRefersToDescDoc( doc );
             }
         }
 
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LNClassImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LNClassImpl.java
index b6014a18523ddd1f86437a2ad16128f06121ad5e..2b0c694c24877857b545111385056fa4bdbb4e36 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LNClassImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LNClassImpl.java
@@ -22,8 +22,6 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl;
 import fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClass;
 import fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses;
 import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage;
-import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsIdentification;
-
 import org.eclipse.emf.common.notify.Notification;
 
 import org.eclipse.emf.common.notify.NotificationChain;
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdPackageImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdPackageImpl.java
index 2d671bae787f50323c01f915f652364b2aa34994..4b112e86158a07c79f68cfa7e97c2a51fc9c2b77 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdPackageImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdPackageImpl.java
@@ -1984,6 +1984,16 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         return ( EReference ) docEClass.getEStructuralFeatures().get( 12 );
     }
 
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public EReference getDoc_ReferredByTitledClass() {
+        return ( EReference ) docEClass.getEStructuralFeatures().get( 13 );
+    }
+
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -2030,7 +2040,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getDocumentedClass_RefersToDoc() {
+    public EReference getDocumentedClass_RefersToDescDoc() {
         return ( EReference ) documentedClassEClass.getEStructuralFeatures().get( 3 );
     }
 
@@ -3334,6 +3344,16 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         return ( EAttribute ) titledClassEClass.getEStructuralFeatures().get( 0 );
     }
 
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public EReference getTitledClass_RefersToTitleDoc() {
+        return ( EReference ) titledClassEClass.getEStructuralFeatures().get( 1 );
+    }
+
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -4133,12 +4153,13 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         createEReference( docEClass, DOC__REFERRED_BY_DOCUMENTED_CLASS );
         createEReference( docEClass, DOC__REFERRED_BY_FUNCTIONAL_CONSTRAINT );
         createEReference( docEClass, DOC__REFERRED_BY_AG_PRESENCE_CONDITION_DERIVED_STATISTICS );
+        createEReference( docEClass, DOC__REFERRED_BY_TITLED_CLASS );
 
         documentedClassEClass = createEClass( DOCUMENTED_CLASS );
         createEAttribute( documentedClassEClass, DOCUMENTED_CLASS__DEPRECATED );
         createEAttribute( documentedClassEClass, DOCUMENTED_CLASS__DESC_ID );
         createEAttribute( documentedClassEClass, DOCUMENTED_CLASS__INFORMATIVE );
-        createEReference( documentedClassEClass, DOCUMENTED_CLASS__REFERS_TO_DOC );
+        createEReference( documentedClassEClass, DOCUMENTED_CLASS__REFERS_TO_DESC_DOC );
 
         enumerationEClass = createEClass( ENUMERATION );
         createEReference( enumerationEClass, ENUMERATION__LITERAL );
@@ -4296,6 +4317,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
 
         titledClassEClass = createEClass( TITLED_CLASS );
         createEAttribute( titledClassEClass, TITLED_CLASS__TITLE_ID );
+        createEReference( titledClassEClass, TITLED_CLASS__REFERS_TO_TITLE_DOC );
 
         nsdObjectEClass = createEClass( NSD_OBJECT );
         createEAttribute( nsdObjectEClass, NSD_OBJECT__LINE_NUMBER );
@@ -4876,7 +4898,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 "referredByBasicType", null, 0, -1, Doc.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
                 !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
         initEReference( getDoc_ReferredByDocumentedClass(), this.getDocumentedClass(),
-                this.getDocumentedClass_RefersToDoc(), "referredByDocumentedClass", null, 0, -1, Doc.class,
+                this.getDocumentedClass_RefersToDescDoc(), "referredByDocumentedClass", null, 0, -1, Doc.class,
                 IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE,
                 !IS_DERIVED, !IS_ORDERED );
         initEReference( getDoc_ReferredByFunctionalConstraint(), this.getFunctionalConstraint(),
@@ -4888,6 +4910,9 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 this.getAgPresenceConditionDerivedStatistics_RefersToDsPresCondArgsDoc(),
                 "referredByAgPresenceConditionDerivedStatistics", null, 0, -1, Doc.class, IS_TRANSIENT, !IS_VOLATILE,
                 IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getDoc_ReferredByTitledClass(), this.getTitledClass(), this.getTitledClass_RefersToTitleDoc(),
+                "referredByTitledClass", null, 0, -1, Doc.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+                !IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( documentedClassEClass, DocumentedClass.class, "DocumentedClass", IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
@@ -4900,8 +4925,8 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEAttribute( getDocumentedClass_Informative(), theXMLTypePackage.getBoolean(), "informative", "false", 0, 1,
                 DocumentedClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEReference( getDocumentedClass_RefersToDoc(), this.getDoc(), this.getDoc_ReferredByDocumentedClass(),
-                "refersToDoc", null, 0, 1, DocumentedClass.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+        initEReference( getDocumentedClass_RefersToDescDoc(), this.getDoc(), this.getDoc_ReferredByDocumentedClass(),
+                "refersToDescDoc", null, 0, 1, DocumentedClass.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
                 !IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( enumerationEClass, Enumeration.class, "Enumeration", !IS_ABSTRACT, !IS_INTERFACE,
@@ -5334,6 +5359,9 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 IS_GENERATED_INSTANCE_CLASS );
         initEAttribute( getTitledClass_TitleID(), ecorePackage.getEString(), "titleID", null, 0, 1, TitledClass.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
+        initEReference( getTitledClass_RefersToTitleDoc(), this.getDoc(), this.getDoc_ReferredByTitledClass(),
+                "refersToTitleDoc", null, 0, 1, TitledClass.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+                !IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( nsdObjectEClass, NsdObject.class, "NsdObject", IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/TitledClassImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/TitledClassImpl.java
index da40f0ba666bb834fb056d80a5c22a6cb9527195..7ee62413aaa2d739e9b7ae47c94e74bb8d891e58 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/TitledClassImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/TitledClassImpl.java
@@ -19,13 +19,18 @@
  */
 package fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl;
 
+import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc;
 import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage;
 import fr.centralesupelec.edf.riseclipse.iec61850.nsd.TitledClass;
+import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsdResourceSetImpl;
+import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole;
 
 import org.eclipse.emf.common.notify.Notification;
 
+import org.eclipse.emf.common.notify.NotificationChain;
 import org.eclipse.emf.ecore.EClass;
 
+import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
 /**
@@ -37,6 +42,7 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.TitledClassImpl#getTitleID <em>Title ID</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.TitledClassImpl#getRefersToTitleDoc <em>Refers To Title Doc</em>}</li>
  * </ul>
  *
  * @generated
@@ -71,6 +77,25 @@ public abstract class TitledClassImpl extends DocumentedClassImpl implements Tit
      */
     protected boolean titleIDESet;
 
+    /**
+     * The cached value of the '{@link #getRefersToTitleDoc() <em>Refers To Title Doc</em>}' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getRefersToTitleDoc()
+     * @generated
+     * @ordered
+     */
+    protected Doc refersToTitleDoc;
+
+    /**
+     * This is true if the Refers To Title Doc reference has been set.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    protected boolean refersToTitleDocESet;
+
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -142,6 +167,150 @@ public abstract class TitledClassImpl extends DocumentedClassImpl implements Tit
         return titleIDESet;
     }
 
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public Doc getRefersToTitleDoc() {
+        return refersToTitleDoc;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetRefersToTitleDoc( Doc newRefersToTitleDoc, NotificationChain msgs ) {
+        Doc oldRefersToTitleDoc = refersToTitleDoc;
+        refersToTitleDoc = newRefersToTitleDoc;
+        boolean oldRefersToTitleDocESet = refersToTitleDocESet;
+        refersToTitleDocESet = true;
+        if( eNotificationRequired() ) {
+            ENotificationImpl notification = new ENotificationImpl( this, Notification.SET,
+                    NsdPackage.TITLED_CLASS__REFERS_TO_TITLE_DOC, oldRefersToTitleDoc, newRefersToTitleDoc,
+                    !oldRefersToTitleDocESet );
+            if( msgs == null )
+                msgs = notification;
+            else
+                msgs.add( notification );
+        }
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public void setRefersToTitleDoc( Doc newRefersToTitleDoc ) {
+        if( newRefersToTitleDoc != refersToTitleDoc ) {
+            NotificationChain msgs = null;
+            if( refersToTitleDoc != null )
+                msgs = ( ( InternalEObject ) refersToTitleDoc ).eInverseRemove( this,
+                        NsdPackage.DOC__REFERRED_BY_TITLED_CLASS, Doc.class, msgs );
+            if( newRefersToTitleDoc != null )
+                msgs = ( ( InternalEObject ) newRefersToTitleDoc ).eInverseAdd( this,
+                        NsdPackage.DOC__REFERRED_BY_TITLED_CLASS, Doc.class, msgs );
+            msgs = basicSetRefersToTitleDoc( newRefersToTitleDoc, msgs );
+            if( msgs != null ) msgs.dispatch();
+        }
+        else {
+            boolean oldRefersToTitleDocESet = refersToTitleDocESet;
+            refersToTitleDocESet = true;
+            if( eNotificationRequired() )
+                eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.TITLED_CLASS__REFERS_TO_TITLE_DOC,
+                        newRefersToTitleDoc, newRefersToTitleDoc, !oldRefersToTitleDocESet ) );
+        }
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicUnsetRefersToTitleDoc( NotificationChain msgs ) {
+        Doc oldRefersToTitleDoc = refersToTitleDoc;
+        refersToTitleDoc = null;
+        boolean oldRefersToTitleDocESet = refersToTitleDocESet;
+        refersToTitleDocESet = false;
+        if( eNotificationRequired() ) {
+            ENotificationImpl notification = new ENotificationImpl( this, Notification.UNSET,
+                    NsdPackage.TITLED_CLASS__REFERS_TO_TITLE_DOC, oldRefersToTitleDoc, null, oldRefersToTitleDocESet );
+            if( msgs == null )
+                msgs = notification;
+            else
+                msgs.add( notification );
+        }
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public void unsetRefersToTitleDoc() {
+        if( refersToTitleDoc != null ) {
+            NotificationChain msgs = null;
+            msgs = ( ( InternalEObject ) refersToTitleDoc ).eInverseRemove( this,
+                    NsdPackage.DOC__REFERRED_BY_TITLED_CLASS, Doc.class, msgs );
+            msgs = basicUnsetRefersToTitleDoc( msgs );
+            if( msgs != null ) msgs.dispatch();
+        }
+        else {
+            boolean oldRefersToTitleDocESet = refersToTitleDocESet;
+            refersToTitleDocESet = false;
+            if( eNotificationRequired() )
+                eNotify( new ENotificationImpl( this, Notification.UNSET, NsdPackage.TITLED_CLASS__REFERS_TO_TITLE_DOC,
+                        null, null, oldRefersToTitleDocESet ) );
+        }
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public boolean isSetRefersToTitleDoc() {
+        return refersToTitleDocESet;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public NotificationChain eInverseAdd( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
+        switch( featureID ) {
+        case NsdPackage.TITLED_CLASS__REFERS_TO_TITLE_DOC:
+            if( refersToTitleDoc != null )
+                msgs = ( ( InternalEObject ) refersToTitleDoc ).eInverseRemove( this,
+                        NsdPackage.DOC__REFERRED_BY_TITLED_CLASS, Doc.class, msgs );
+            return basicSetRefersToTitleDoc( ( Doc ) otherEnd, msgs );
+        }
+        return super.eInverseAdd( otherEnd, featureID, msgs );
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public NotificationChain eInverseRemove( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
+        switch( featureID ) {
+        case NsdPackage.TITLED_CLASS__REFERS_TO_TITLE_DOC:
+            return basicUnsetRefersToTitleDoc( msgs );
+        }
+        return super.eInverseRemove( otherEnd, featureID, msgs );
+    }
+
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -152,6 +321,8 @@ public abstract class TitledClassImpl extends DocumentedClassImpl implements Tit
         switch( featureID ) {
         case NsdPackage.TITLED_CLASS__TITLE_ID:
             return getTitleID();
+        case NsdPackage.TITLED_CLASS__REFERS_TO_TITLE_DOC:
+            return getRefersToTitleDoc();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -167,6 +338,9 @@ public abstract class TitledClassImpl extends DocumentedClassImpl implements Tit
         case NsdPackage.TITLED_CLASS__TITLE_ID:
             setTitleID( ( String ) newValue );
             return;
+        case NsdPackage.TITLED_CLASS__REFERS_TO_TITLE_DOC:
+            setRefersToTitleDoc( ( Doc ) newValue );
+            return;
         }
         super.eSet( featureID, newValue );
     }
@@ -182,6 +356,9 @@ public abstract class TitledClassImpl extends DocumentedClassImpl implements Tit
         case NsdPackage.TITLED_CLASS__TITLE_ID:
             unsetTitleID();
             return;
+        case NsdPackage.TITLED_CLASS__REFERS_TO_TITLE_DOC:
+            unsetRefersToTitleDoc();
+            return;
         }
         super.eUnset( featureID );
     }
@@ -196,6 +373,8 @@ public abstract class TitledClassImpl extends DocumentedClassImpl implements Tit
         switch( featureID ) {
         case NsdPackage.TITLED_CLASS__TITLE_ID:
             return isSetTitleID();
+        case NsdPackage.TITLED_CLASS__REFERS_TO_TITLE_DOC:
+            return isSetRefersToTitleDoc();
         }
         return super.eIsSet( featureID );
     }
@@ -219,4 +398,19 @@ public abstract class TitledClassImpl extends DocumentedClassImpl implements Tit
         return result.toString();
     }
 
+    @Override
+    public boolean buildExplicitLinks( IRiseClipseConsole console, boolean forceUpdate ) {
+        if( super.buildExplicitLinks( console, forceUpdate ) ) return true;
+
+        if( isSetTitleID() ) {
+            if( this.eResource().getResourceSet() instanceof NsdResourceSetImpl ) {
+                Doc doc = ( ( NsdResourceSetImpl ) this.eResource().getResourceSet() ).findDoc( getNsIdentification(),
+                        getTitleID() );
+                if( doc != null ) setRefersToTitleDoc( doc );
+            }
+        }
+
+        return false;
+    }
+
 } //TitledClassImpl