diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/provider/ConnectedAPItemProvider.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/provider/ConnectedAPItemProvider.java
index 60dea3aa751235c357e1e88c1cfbfcefd6012a3f..7a8c6f1b3dc26e65c2838e4815625b190cbf0727 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/provider/ConnectedAPItemProvider.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/provider/ConnectedAPItemProvider.java
@@ -174,7 +174,6 @@ public class ConnectedAPItemProvider extends UnNamingItemProvider {
             childrenFeatures.add( SclPackage.eINSTANCE.getConnectedAP_PhysConn() );
             childrenFeatures.add( SclPackage.eINSTANCE.getConnectedAP_GSE() );
             childrenFeatures.add( SclPackage.eINSTANCE.getConnectedAP_SMV() );
-            childrenFeatures.add( SclPackage.eINSTANCE.getConnectedAP_ControlBlock() );
         }
         return childrenFeatures;
     }
@@ -237,7 +236,6 @@ public class ConnectedAPItemProvider extends UnNamingItemProvider {
         case SclPackage.CONNECTED_AP__PHYS_CONN:
         case SclPackage.CONNECTED_AP__GSE:
         case SclPackage.CONNECTED_AP__SMV:
-        case SclPackage.CONNECTED_AP__CONTROL_BLOCK:
             fireNotifyChanged( new ViewerNotification( notification, notification.getNotifier(), true, false ) );
             return;
         }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/model/SCL.ecore b/fr.centralesupelec.edf.riseclipse.iec61850.scl/model/SCL.ecore
index dc71da6ff2c922c95f09df08634794422b0c72a9..0c55ddcf33870d89a6d7fceadf31cb48fdefe174 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/model/SCL.ecore
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/model/SCL.ecore
@@ -258,26 +258,11 @@
         upperBound="-1" eType="#//PhysConn" unsettable="true" containment="true" resolveProxies="false"
         eOpposite="#//PhysConn/ParentConnectedAP"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="GSE" ordered="false" upperBound="-1"
-        eType="#//GSE" volatile="true" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//GSE/ParentConnectedAP">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#ControlBlock"/>
-      </eAnnotations>
-    </eStructuralFeatures>
+        eType="#//GSE" unsettable="true" containment="true" resolveProxies="false"
+        eOpposite="#//GSE/ParentConnectedAP"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="SMV" ordered="false" upperBound="-1"
-        eType="#//SMV" volatile="true" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//SMV/ParentConnectedAP">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#ControlBlock"/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="ControlBlock" ordered="false"
-        upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry"
-        transient="true">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="kind" value="group"/>
-      </eAnnotations>
-    </eStructuralFeatures>
+        eType="#//SMV" unsettable="true" containment="true" resolveProxies="false"
+        eOpposite="#//SMV/ParentConnectedAP"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ControlBlock" abstract="true" eSuperTypes="#//UnNaming">
     <eOperations name="getParentConnectedAP" eType="#//ConnectedAP"/>
@@ -622,19 +607,11 @@
         eType="#//DOI" unsettable="true" containment="true" resolveProxies="false"
         eOpposite="#//DOI/ParentAnyLN"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ReportControl" ordered="false"
-        upperBound="-1" eType="#//ReportControl" volatile="true" unsettable="true"
-        containment="true" resolveProxies="false" eOpposite="#//ReportControl/ParentAnyLN">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#ControlWithTriggerOpt"/>
-      </eAnnotations>
-    </eStructuralFeatures>
+        upperBound="-1" eType="#//ReportControl" unsettable="true" containment="true"
+        resolveProxies="false" eOpposite="#//ReportControl/ParentAnyLN"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="LogControl" ordered="false"
-        upperBound="-1" eType="#//LogControl" volatile="true" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//LogControl/ParentAnyLN">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#ControlWithTriggerOpt"/>
-      </eAnnotations>
-    </eStructuralFeatures>
+        upperBound="-1" eType="#//LogControl" unsettable="true" containment="true"
+        resolveProxies="false" eOpposite="#//LogControl/ParentAnyLN"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="DataSet" ordered="false"
         upperBound="-1" eType="#//DataSet" unsettable="true" containment="true" resolveProxies="false"
         eOpposite="#//DataSet/ParentAnyLN"/>
@@ -653,13 +630,6 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="ReferredByLNode" ordered="false"
         upperBound="-1" eType="#//LNode" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//LNode/RefersToAnyLN"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="ControlWithTriggerOpt"
-        ordered="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry"
-        transient="true" unsettable="true">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="kind" value="group"/>
-      </eAnnotations>
-    </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Association" eSuperTypes="#//BaseElement #//AgLNRef">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="associationID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
@@ -1154,25 +1124,11 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="ParentServer" ordered="false"
         eType="#//Server" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//Server/LDevice"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="AnyLN" ordered="false"
-        upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry"
-        transient="true">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="kind" value="group"/>
-      </eAnnotations>
-    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="LN0" ordered="false" eType="#//LN0"
-        volatile="true" unsettable="true" containment="true" eOpposite="#//LN0/ParentLDevice">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#AnyLN"/>
-      </eAnnotations>
-    </eStructuralFeatures>
+        unsettable="true" containment="true" resolveProxies="false" eOpposite="#//LN0/ParentLDevice"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="LN" ordered="false" upperBound="-1"
-        eType="#//LN" volatile="true" unsettable="true" containment="true" eOpposite="#//LN/ParentLDevice">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#AnyLN"/>
-      </eAnnotations>
-    </eStructuralFeatures>
+        eType="#//LN" unsettable="true" containment="true" resolveProxies="false"
+        eOpposite="#//LN/ParentLDevice"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ReferredByIEDName" ordered="false"
         eType="#//IEDName" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//IEDName/RefersToLDevice"/>
@@ -1195,32 +1151,17 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="LN0" eSuperTypes="#//AnyLN">
     <eStructuralFeatures xsi:type="ecore:EReference" name="GSEControl" ordered="false"
-        upperBound="-1" eType="#//GSEControl" volatile="true" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//GSEControl/ParentLN0">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#ControlWithIEDName"/>
-      </eAnnotations>
-    </eStructuralFeatures>
+        upperBound="-1" eType="#//GSEControl" unsettable="true" containment="true"
+        resolveProxies="false" eOpposite="#//GSEControl/ParentLN0"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ParentLDevice" ordered="false"
         eType="#//LDevice" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//LDevice/LN0"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="SampledValueControl" ordered="false"
-        upperBound="-1" eType="#//SampledValueControl" volatile="true" unsettable="true"
-        containment="true" resolveProxies="false" eOpposite="#//SampledValueControl/ParentLN0">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#ControlWithIEDName"/>
-      </eAnnotations>
-    </eStructuralFeatures>
+        upperBound="-1" eType="#//SampledValueControl" unsettable="true" containment="true"
+        resolveProxies="false" eOpposite="#//SampledValueControl/ParentLN0"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="SettingControl" ordered="false"
         eType="#//SettingControl" unsettable="true" containment="true" resolveProxies="false"
         eOpposite="#//SettingControl/ParentLN0"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="ControlWithIEDName" ordered="false"
-        upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry"
-        transient="true" unsettable="true">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="kind" value="group"/>
-      </eAnnotations>
-    </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Log" eSuperTypes="#//UnNaming">
     <eStructuralFeatures xsi:type="ecore:EReference" name="ParentAnyLN" ordered="false"
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/model/SCL.genmodel b/fr.centralesupelec.edf.riseclipse.iec61850.scl/model/SCL.genmodel
index 261da447ea05d10aad9dbe5dd81e92f5e5bedbb0..335fcde77a8d13541cec3afabf45ef1a88002b12 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/model/SCL.genmodel
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/model/SCL.genmodel
@@ -214,7 +214,6 @@
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SCL.ecore#//ConnectedAP/PhysConn"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SCL.ecore#//ConnectedAP/GSE"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SCL.ecore#//ConnectedAP/SMV"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute SCL.ecore#//ConnectedAP/ControlBlock"/>
     </genClasses>
     <genClasses ecoreClass="SCL.ecore#//ControlBlock">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SCL.ecore#//ControlBlock/cbName"/>
@@ -374,7 +373,6 @@
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SCL.ecore#//AnyLN/ReferredByAssociation"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SCL.ecore#//AnyLN/ReferredByIEDName"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SCL.ecore#//AnyLN/ReferredByLNode"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EAttribute SCL.ecore#//AnyLN/ControlWithTriggerOpt"/>
       <genOperations ecoreOperation="SCL.ecore#//AnyLN/getParentLDevice"/>
       <genOperations ecoreOperation="SCL.ecore#//AnyLN/getNamespace"/>
     </genClasses>
@@ -630,7 +628,6 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SCL.ecore#//LDevice/ldName"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SCL.ecore#//LDevice/AccessControl"/>
       <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SCL.ecore#//LDevice/ParentServer"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EAttribute SCL.ecore#//LDevice/AnyLN"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SCL.ecore#//LDevice/LN0"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SCL.ecore#//LDevice/LN"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SCL.ecore#//LDevice/ReferredByIEDName"/>
@@ -648,7 +645,6 @@
       <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SCL.ecore#//LN0/ParentLDevice"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SCL.ecore#//LN0/SampledValueControl"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SCL.ecore#//LN0/SettingControl"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EAttribute SCL.ecore#//LN0/ControlWithIEDName"/>
     </genClasses>
     <genClasses ecoreClass="SCL.ecore#//Log">
       <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SCL.ecore#//Log/ParentAnyLN"/>
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/AnyLN.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/AnyLN.java
index 5e8964b78040358d793cae981e53db47d5871a18..5e634ababdde9c69f47d770110fb5664622ec72d 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/AnyLN.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/AnyLN.java
@@ -21,7 +21,6 @@
 package fr.centralesupelec.edf.riseclipse.iec61850.scl;
 
 import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.util.FeatureMap;
 
 /**
  * <!-- begin-user-doc -->
@@ -47,7 +46,6 @@ import org.eclipse.emf.ecore.util.FeatureMap;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.AnyLN#getReferredByAssociation <em>Referred By Association</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.AnyLN#getReferredByIEDName <em>Referred By IED Name</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.AnyLN#getReferredByLNode <em>Referred By LNode</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.AnyLN#getControlWithTriggerOpt <em>Control With Trigger Opt</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage#getAnyLN()
@@ -421,8 +419,7 @@ public interface AnyLN extends UnNaming {
      * @see #unsetReportControl()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage#getAnyLN_ReportControl()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.ReportControl#getParentAnyLN
-     * @model opposite="ParentAnyLN" containment="true" unsettable="true" volatile="true" ordered="false"
-     *        extendedMetaData="group='#ControlWithTriggerOpt'"
+     * @model opposite="ParentAnyLN" containment="true" unsettable="true" ordered="false"
      * @generated
      */
     EList< ReportControl > getReportControl();
@@ -463,8 +460,7 @@ public interface AnyLN extends UnNaming {
      * @see #unsetLogControl()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage#getAnyLN_LogControl()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.LogControl#getParentAnyLN
-     * @model opposite="ParentAnyLN" containment="true" unsettable="true" volatile="true" ordered="false"
-     *        extendedMetaData="group='#ControlWithTriggerOpt'"
+     * @model opposite="ParentAnyLN" containment="true" unsettable="true" ordered="false"
      * @generated
      */
     EList< LogControl > getLogControl();
@@ -728,42 +724,6 @@ public interface AnyLN extends UnNaming {
      */
     boolean isSetReferredByLNode();
 
-    /**
-     * Returns the value of the '<em><b>Control With Trigger Opt</b></em>' attribute list.
-     * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Control With Trigger Opt</em>' attribute list.
-     * @see #isSetControlWithTriggerOpt()
-     * @see #unsetControlWithTriggerOpt()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage#getAnyLN_ControlWithTriggerOpt()
-     * @model unsettable="true" dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true" transient="true" ordered="false"
-     *        extendedMetaData="kind='group'"
-     * @generated
-     */
-    FeatureMap getControlWithTriggerOpt();
-
-    /**
-     * Unsets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.AnyLN#getControlWithTriggerOpt <em>Control With Trigger Opt</em>}' attribute list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #isSetControlWithTriggerOpt()
-     * @see #getControlWithTriggerOpt()
-     * @generated
-     */
-    void unsetControlWithTriggerOpt();
-
-    /**
-     * Returns whether the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.AnyLN#getControlWithTriggerOpt <em>Control With Trigger Opt</em>}' attribute list is set.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return whether the value of the '<em>Control With Trigger Opt</em>' attribute list is set.
-     * @see #unsetControlWithTriggerOpt()
-     * @see #getControlWithTriggerOpt()
-     * @generated
-     */
-    boolean isSetControlWithTriggerOpt();
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/ConnectedAP.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/ConnectedAP.java
index 80f67eff90aceb211eaa2f262469cfb685d304cd..276196042b553d8e3316181c7d8bd904e0faaf45 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/ConnectedAP.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/ConnectedAP.java
@@ -21,7 +21,6 @@
 package fr.centralesupelec.edf.riseclipse.iec61850.scl;
 
 import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.util.FeatureMap;
 
 /**
  * <!-- begin-user-doc -->
@@ -41,7 +40,6 @@ import org.eclipse.emf.ecore.util.FeatureMap;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.ConnectedAP#getPhysConn <em>Phys Conn</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.ConnectedAP#getGSE <em>GSE</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.ConnectedAP#getSMV <em>SMV</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.ConnectedAP#getControlBlock <em>Control Block</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage#getConnectedAP()
@@ -398,8 +396,7 @@ public interface ConnectedAP extends UnNaming {
      * @see #unsetGSE()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage#getConnectedAP_GSE()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.GSE#getParentConnectedAP
-     * @model opposite="ParentConnectedAP" containment="true" unsettable="true" volatile="true" ordered="false"
-     *        extendedMetaData="group='#ControlBlock'"
+     * @model opposite="ParentConnectedAP" containment="true" unsettable="true" ordered="false"
      * @generated
      */
     EList< GSE > getGSE();
@@ -440,8 +437,7 @@ public interface ConnectedAP extends UnNaming {
      * @see #unsetSMV()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage#getConnectedAP_SMV()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.SMV#getParentConnectedAP
-     * @model opposite="ParentConnectedAP" containment="true" unsettable="true" volatile="true" ordered="false"
-     *        extendedMetaData="group='#ControlBlock'"
+     * @model opposite="ParentConnectedAP" containment="true" unsettable="true" ordered="false"
      * @generated
      */
     EList< SMV > getSMV();
@@ -467,17 +463,4 @@ public interface ConnectedAP extends UnNaming {
      */
     boolean isSetSMV();
 
-    /**
-     * Returns the value of the '<em><b>Control Block</b></em>' attribute list.
-     * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Control Block</em>' attribute list.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage#getConnectedAP_ControlBlock()
-     * @model dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true" transient="true" ordered="false"
-     *        extendedMetaData="kind='group'"
-     * @generated
-     */
-    FeatureMap getControlBlock();
-
 } // ConnectedAP
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/LDevice.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/LDevice.java
index 4aafd189c0ea9b29afecb4efddaa87731fa3d1de..54de597c6374b724f1ef7a70ee4c46bb5374550f 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/LDevice.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/LDevice.java
@@ -21,8 +21,6 @@
 package fr.centralesupelec.edf.riseclipse.iec61850.scl;
 
 import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.util.FeatureMap;
 import fr.centralesupelec.edf.riseclipse.iec61850.scl.IED;
 
 /**
@@ -38,7 +36,6 @@ import fr.centralesupelec.edf.riseclipse.iec61850.scl.IED;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LDevice#getLdName <em>Ld Name</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LDevice#getAccessControl <em>Access Control</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LDevice#getParentServer <em>Parent Server</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LDevice#getAnyLN <em>Any LN</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LDevice#getLN0 <em>LN0</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LDevice#getLN <em>LN</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LDevice#getReferredByIEDName <em>Referred By IED Name</em>}</li>
@@ -236,19 +233,6 @@ public interface LDevice extends UnNaming {
      */
     void setParentServer( Server value );
 
-    /**
-     * Returns the value of the '<em><b>Any LN</b></em>' attribute list.
-     * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Any LN</em>' attribute list.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage#getLDevice_AnyLN()
-     * @model dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true" transient="true" ordered="false"
-     *        extendedMetaData="kind='group'"
-     * @generated
-     */
-    FeatureMap getAnyLN();
-
     /**
      * Returns the value of the '<em><b>LN</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LN}.
@@ -264,8 +248,7 @@ public interface LDevice extends UnNaming {
      * @see #unsetLN()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage#getLDevice_LN()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.LN#getParentLDevice
-     * @model opposite="ParentLDevice" containment="true" unsettable="true" volatile="true" ordered="false"
-     *        extendedMetaData="group='#AnyLN'"
+     * @model opposite="ParentLDevice" containment="true" unsettable="true" ordered="false"
      * @generated
      */
     EList< LN > getLN();
@@ -453,8 +436,7 @@ public interface LDevice extends UnNaming {
      * @see #setLN0(LN0)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage#getLDevice_LN0()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.LN0#getParentLDevice
-     * @model opposite="ParentLDevice" containment="true" unsettable="true" volatile="true" ordered="false"
-     *        extendedMetaData="group='#AnyLN'"
+     * @model opposite="ParentLDevice" containment="true" unsettable="true" ordered="false"
      * @generated
      */
     LN0 getLN0();
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/LN0.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/LN0.java
index 98931e4833c59d1b16e38598626d0ff434fe96a1..a4cb141664ff22becda710e61ed97bba96eaef61 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/LN0.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/LN0.java
@@ -21,7 +21,6 @@
 package fr.centralesupelec.edf.riseclipse.iec61850.scl;
 
 import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.util.FeatureMap;
 
 /**
  * <!-- begin-user-doc -->
@@ -36,7 +35,6 @@ import org.eclipse.emf.ecore.util.FeatureMap;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LN0#getParentLDevice <em>Parent LDevice</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LN0#getSampledValueControl <em>Sampled Value Control</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LN0#getSettingControl <em>Setting Control</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LN0#getControlWithIEDName <em>Control With IED Name</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage#getLN0()
@@ -59,8 +57,7 @@ public interface LN0 extends AnyLN {
      * @see #unsetGSEControl()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage#getLN0_GSEControl()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.GSEControl#getParentLN0
-     * @model opposite="ParentLN0" containment="true" unsettable="true" volatile="true" ordered="false"
-     *        extendedMetaData="group='#ControlWithIEDName'"
+     * @model opposite="ParentLN0" containment="true" unsettable="true" ordered="false"
      * @generated
      */
     EList< GSEControl > getGSEControl();
@@ -126,8 +123,7 @@ public interface LN0 extends AnyLN {
      * @see #unsetSampledValueControl()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage#getLN0_SampledValueControl()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.SampledValueControl#getParentLN0
-     * @model opposite="ParentLN0" containment="true" unsettable="true" volatile="true" ordered="false"
-     *        extendedMetaData="group='#ControlWithIEDName'"
+     * @model opposite="ParentLN0" containment="true" unsettable="true" ordered="false"
      * @generated
      */
     EList< SampledValueControl > getSampledValueControl();
@@ -208,40 +204,4 @@ public interface LN0 extends AnyLN {
      */
     boolean isSetSettingControl();
 
-    /**
-     * Returns the value of the '<em><b>Control With IED Name</b></em>' attribute list.
-     * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Control With IED Name</em>' attribute list.
-     * @see #isSetControlWithIEDName()
-     * @see #unsetControlWithIEDName()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage#getLN0_ControlWithIEDName()
-     * @model unsettable="true" dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true" transient="true" ordered="false"
-     *        extendedMetaData="kind='group'"
-     * @generated
-     */
-    FeatureMap getControlWithIEDName();
-
-    /**
-     * Unsets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LN0#getControlWithIEDName <em>Control With IED Name</em>}' attribute list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #isSetControlWithIEDName()
-     * @see #getControlWithIEDName()
-     * @generated
-     */
-    void unsetControlWithIEDName();
-
-    /**
-     * Returns whether the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LN0#getControlWithIEDName <em>Control With IED Name</em>}' attribute list is set.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return whether the value of the '<em>Control With IED Name</em>' attribute list is set.
-     * @see #unsetControlWithIEDName()
-     * @see #getControlWithIEDName()
-     * @generated
-     */
-    boolean isSetControlWithIEDName();
-
 } // LN0
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/SclPackage.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/SclPackage.java
index cd70cd55d8a5819936568aa0811371bf9806bc30..a3601f3be70edc3f3fd4e46d77ef43e4beca9657 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/SclPackage.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/SclPackage.java
@@ -3702,15 +3702,6 @@ public interface SclPackage extends EPackage {
      */
     int CONNECTED_AP__SMV = UN_NAMING_FEATURE_COUNT + 8;
 
-    /**
-     * The feature id for the '<em><b>Control Block</b></em>' attribute list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int CONNECTED_AP__CONTROL_BLOCK = UN_NAMING_FEATURE_COUNT + 9;
-
     /**
      * The number of structural features of the '<em>Connected AP</em>' class.
      * <!-- begin-user-doc -->
@@ -3718,7 +3709,7 @@ public interface SclPackage extends EPackage {
      * @generated
      * @ordered
      */
-    int CONNECTED_AP_FEATURE_COUNT = UN_NAMING_FEATURE_COUNT + 10;
+    int CONNECTED_AP_FEATURE_COUNT = UN_NAMING_FEATURE_COUNT + 9;
 
     /**
      * The operation id for the '<em>Build Explicit Links</em>' operation.
@@ -7197,15 +7188,6 @@ public interface SclPackage extends EPackage {
      */
     int ANY_LN__REFERRED_BY_LNODE = UN_NAMING_FEATURE_COUNT + 14;
 
-    /**
-     * The feature id for the '<em><b>Control With Trigger Opt</b></em>' attribute list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int ANY_LN__CONTROL_WITH_TRIGGER_OPT = UN_NAMING_FEATURE_COUNT + 15;
-
     /**
      * The number of structural features of the '<em>Any LN</em>' class.
      * <!-- begin-user-doc -->
@@ -7213,7 +7195,7 @@ public interface SclPackage extends EPackage {
      * @generated
      * @ordered
      */
-    int ANY_LN_FEATURE_COUNT = UN_NAMING_FEATURE_COUNT + 16;
+    int ANY_LN_FEATURE_COUNT = UN_NAMING_FEATURE_COUNT + 15;
 
     /**
      * The operation id for the '<em>Build Explicit Links</em>' operation.
@@ -12415,15 +12397,6 @@ public interface SclPackage extends EPackage {
      */
     int LDEVICE__PARENT_SERVER = UN_NAMING_FEATURE_COUNT + 3;
 
-    /**
-     * The feature id for the '<em><b>Any LN</b></em>' attribute list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int LDEVICE__ANY_LN = UN_NAMING_FEATURE_COUNT + 4;
-
     /**
      * The feature id for the '<em><b>LN0</b></em>' containment reference.
      * <!-- begin-user-doc -->
@@ -12431,7 +12404,7 @@ public interface SclPackage extends EPackage {
      * @generated
      * @ordered
      */
-    int LDEVICE__LN0 = UN_NAMING_FEATURE_COUNT + 5;
+    int LDEVICE__LN0 = UN_NAMING_FEATURE_COUNT + 4;
 
     /**
      * The feature id for the '<em><b>LN</b></em>' containment reference list.
@@ -12440,7 +12413,7 @@ public interface SclPackage extends EPackage {
      * @generated
      * @ordered
      */
-    int LDEVICE__LN = UN_NAMING_FEATURE_COUNT + 6;
+    int LDEVICE__LN = UN_NAMING_FEATURE_COUNT + 5;
 
     /**
      * The feature id for the '<em><b>Referred By IED Name</b></em>' reference.
@@ -12449,7 +12422,7 @@ public interface SclPackage extends EPackage {
      * @generated
      * @ordered
      */
-    int LDEVICE__REFERRED_BY_IED_NAME = UN_NAMING_FEATURE_COUNT + 7;
+    int LDEVICE__REFERRED_BY_IED_NAME = UN_NAMING_FEATURE_COUNT + 6;
 
     /**
      * The feature id for the '<em><b>Refers To Higher Level LDevice</b></em>' reference.
@@ -12458,7 +12431,7 @@ public interface SclPackage extends EPackage {
      * @generated
      * @ordered
      */
-    int LDEVICE__REFERS_TO_HIGHER_LEVEL_LDEVICE = UN_NAMING_FEATURE_COUNT + 8;
+    int LDEVICE__REFERS_TO_HIGHER_LEVEL_LDEVICE = UN_NAMING_FEATURE_COUNT + 7;
 
     /**
      * The feature id for the '<em><b>Refers To Lower Level LDevices</b></em>' reference list.
@@ -12467,7 +12440,7 @@ public interface SclPackage extends EPackage {
      * @generated
      * @ordered
      */
-    int LDEVICE__REFERS_TO_LOWER_LEVEL_LDEVICES = UN_NAMING_FEATURE_COUNT + 9;
+    int LDEVICE__REFERS_TO_LOWER_LEVEL_LDEVICES = UN_NAMING_FEATURE_COUNT + 8;
 
     /**
      * The number of structural features of the '<em>LDevice</em>' class.
@@ -12476,7 +12449,7 @@ public interface SclPackage extends EPackage {
      * @generated
      * @ordered
      */
-    int LDEVICE_FEATURE_COUNT = UN_NAMING_FEATURE_COUNT + 10;
+    int LDEVICE_FEATURE_COUNT = UN_NAMING_FEATURE_COUNT + 9;
 
     /**
      * The operation id for the '<em>Build Explicit Links</em>' operation.
@@ -12703,15 +12676,6 @@ public interface SclPackage extends EPackage {
      */
     int LN__REFERRED_BY_LNODE = ANY_LN__REFERRED_BY_LNODE;
 
-    /**
-     * The feature id for the '<em><b>Control With Trigger Opt</b></em>' attribute list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int LN__CONTROL_WITH_TRIGGER_OPT = ANY_LN__CONTROL_WITH_TRIGGER_OPT;
-
     /**
      * The feature id for the '<em><b>Prefix</b></em>' attribute.
      * <!-- begin-user-doc -->
@@ -12982,15 +12946,6 @@ public interface SclPackage extends EPackage {
      */
     int LN0__REFERRED_BY_LNODE = ANY_LN__REFERRED_BY_LNODE;
 
-    /**
-     * The feature id for the '<em><b>Control With Trigger Opt</b></em>' attribute list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int LN0__CONTROL_WITH_TRIGGER_OPT = ANY_LN__CONTROL_WITH_TRIGGER_OPT;
-
     /**
      * The feature id for the '<em><b>GSE Control</b></em>' containment reference list.
      * <!-- begin-user-doc -->
@@ -13027,15 +12982,6 @@ public interface SclPackage extends EPackage {
      */
     int LN0__SETTING_CONTROL = ANY_LN_FEATURE_COUNT + 3;
 
-    /**
-     * The feature id for the '<em><b>Control With IED Name</b></em>' attribute list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int LN0__CONTROL_WITH_IED_NAME = ANY_LN_FEATURE_COUNT + 4;
-
     /**
      * The number of structural features of the '<em>LN0</em>' class.
      * <!-- begin-user-doc -->
@@ -13043,7 +12989,7 @@ public interface SclPackage extends EPackage {
      * @generated
      * @ordered
      */
-    int LN0_FEATURE_COUNT = ANY_LN_FEATURE_COUNT + 5;
+    int LN0_FEATURE_COUNT = ANY_LN_FEATURE_COUNT + 4;
 
     /**
      * The operation id for the '<em>Build Explicit Links</em>' operation.
@@ -22812,17 +22758,6 @@ public interface SclPackage extends EPackage {
      */
     EReference getConnectedAP_SMV();
 
-    /**
-     * Returns the meta object for the attribute list '{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.ConnectedAP#getControlBlock <em>Control Block</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute list '<em>Control Block</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.ConnectedAP#getControlBlock()
-     * @see #getConnectedAP()
-     * @generated
-     */
-    EAttribute getConnectedAP_ControlBlock();
-
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.ControlBlock <em>Control Block</em>}'.
      * <!-- begin-user-doc -->
@@ -25014,17 +24949,6 @@ public interface SclPackage extends EPackage {
      */
     EReference getAnyLN_ReferredByLNode();
 
-    /**
-     * Returns the meta object for the attribute list '{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.AnyLN#getControlWithTriggerOpt <em>Control With Trigger Opt</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute list '<em>Control With Trigger Opt</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.AnyLN#getControlWithTriggerOpt()
-     * @see #getAnyLN()
-     * @generated
-     */
-    EAttribute getAnyLN_ControlWithTriggerOpt();
-
     /**
      * Returns the meta object for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.AnyLN#getParentLDevice() <em>Get Parent LDevice</em>}' operation.
      * <!-- begin-user-doc -->
@@ -27322,17 +27246,6 @@ public interface SclPackage extends EPackage {
      */
     EReference getLDevice_ParentServer();
 
-    /**
-     * Returns the meta object for the attribute list '{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LDevice#getAnyLN <em>Any LN</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute list '<em>Any LN</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.LDevice#getAnyLN()
-     * @see #getLDevice()
-     * @generated
-     */
-    EAttribute getLDevice_AnyLN();
-
     /**
      * Returns the meta object for the containment reference list '{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LDevice#getLN <em>LN</em>}'.
      * <!-- begin-user-doc -->
@@ -27495,17 +27408,6 @@ public interface SclPackage extends EPackage {
      */
     EReference getLN0_SettingControl();
 
-    /**
-     * Returns the meta object for the attribute list '{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LN0#getControlWithIEDName <em>Control With IED Name</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute list '<em>Control With IED Name</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.LN0#getControlWithIEDName()
-     * @see #getLN0()
-     * @generated
-     */
-    EAttribute getLN0_ControlWithIEDName();
-
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.Log <em>Log</em>}'.
      * <!-- begin-user-doc -->
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/AnyLNImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/AnyLNImpl.java
index 925f910b48c307e9e1c9ba83b7d901667457a6c2..64b3095dc4a1a60ea4f6999f6d0e01a0517a8736 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/AnyLNImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/AnyLNImpl.java
@@ -53,10 +53,8 @@ import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.BasicFeatureMap;
 import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
 import org.eclipse.emf.ecore.util.EObjectWithInverseEList;
-import org.eclipse.emf.ecore.util.FeatureMap;
 import org.eclipse.emf.ecore.util.InternalEList;
 
 /**
@@ -82,7 +80,6 @@ import org.eclipse.emf.ecore.util.InternalEList;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.AnyLNImpl#getReferredByAssociation <em>Referred By Association</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.AnyLNImpl#getReferredByIEDName <em>Referred By IED Name</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.AnyLNImpl#getReferredByLNode <em>Referred By LNode</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.AnyLNImpl#getControlWithTriggerOpt <em>Control With Trigger Opt</em>}</li>
  * </ul>
  *
  * @generated
@@ -233,6 +230,26 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
      */
     protected EList< DOI > doi;
 
+    /**
+     * The cached value of the '{@link #getReportControl() <em>Report Control</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getReportControl()
+     * @generated
+     * @ordered
+     */
+    protected EList< ReportControl > reportControl;
+
+    /**
+     * The cached value of the '{@link #getLogControl() <em>Log Control</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getLogControl()
+     * @generated
+     * @ordered
+     */
+    protected EList< LogControl > logControl;
+
     /**
      * The cached value of the '{@link #getDataSet() <em>Data Set</em>}' containment reference list.
      * <!-- begin-user-doc -->
@@ -293,16 +310,6 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
      */
     protected EList< LNode > referredByLNode;
 
-    /**
-     * The cached value of the '{@link #getControlWithTriggerOpt() <em>Control With Trigger Opt</em>}' attribute list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getControlWithTriggerOpt()
-     * @generated
-     * @ordered
-     */
-    protected FeatureMap controlWithTriggerOpt;
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -778,7 +785,11 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
      */
     @Override
     public EList< ReportControl > getReportControl() {
-        return getControlWithTriggerOpt().list( SclPackage.eINSTANCE.getAnyLN_ReportControl() );
+        if( reportControl == null ) {
+            reportControl = new EObjectContainmentWithInverseEList.Unsettable< ReportControl >( ReportControl.class,
+                    this, SclPackage.ANY_LN__REPORT_CONTROL, SclPackage.REPORT_CONTROL__PARENT_ANY_LN );
+        }
+        return reportControl;
     }
 
     /**
@@ -788,7 +799,7 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
      */
     @Override
     public void unsetReportControl() {
-        ( ( FeatureMap.Internal ) getControlWithTriggerOpt() ).clear( SclPackage.eINSTANCE.getAnyLN_ReportControl() );
+        if( reportControl != null ) ( ( InternalEList.Unsettable< ? > ) reportControl ).unset();
     }
 
     /**
@@ -798,8 +809,7 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
      */
     @Override
     public boolean isSetReportControl() {
-        return !( ( FeatureMap.Internal ) getControlWithTriggerOpt() )
-                .isEmpty( SclPackage.eINSTANCE.getAnyLN_ReportControl() );
+        return reportControl != null && ( ( InternalEList.Unsettable< ? > ) reportControl ).isSet();
     }
 
     /**
@@ -809,7 +819,11 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
      */
     @Override
     public EList< LogControl > getLogControl() {
-        return getControlWithTriggerOpt().list( SclPackage.eINSTANCE.getAnyLN_LogControl() );
+        if( logControl == null ) {
+            logControl = new EObjectContainmentWithInverseEList.Unsettable< LogControl >( LogControl.class, this,
+                    SclPackage.ANY_LN__LOG_CONTROL, SclPackage.LOG_CONTROL__PARENT_ANY_LN );
+        }
+        return logControl;
     }
 
     /**
@@ -819,7 +833,7 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
      */
     @Override
     public void unsetLogControl() {
-        ( ( FeatureMap.Internal ) getControlWithTriggerOpt() ).clear( SclPackage.eINSTANCE.getAnyLN_LogControl() );
+        if( logControl != null ) ( ( InternalEList.Unsettable< ? > ) logControl ).unset();
     }
 
     /**
@@ -829,8 +843,7 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
      */
     @Override
     public boolean isSetLogControl() {
-        return !( ( FeatureMap.Internal ) getControlWithTriggerOpt() )
-                .isEmpty( SclPackage.eINSTANCE.getAnyLN_LogControl() );
+        return logControl != null && ( ( InternalEList.Unsettable< ? > ) logControl ).isSet();
     }
 
     /**
@@ -1037,39 +1050,6 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
         return referredByLNode != null && ( ( InternalEList.Unsettable< ? > ) referredByLNode ).isSet();
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public FeatureMap getControlWithTriggerOpt() {
-        if( controlWithTriggerOpt == null ) {
-            controlWithTriggerOpt = new BasicFeatureMap( this, SclPackage.ANY_LN__CONTROL_WITH_TRIGGER_OPT );
-        }
-        return controlWithTriggerOpt;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void unsetControlWithTriggerOpt() {
-        if( controlWithTriggerOpt != null ) ( ( InternalEList.Unsettable< ? > ) controlWithTriggerOpt ).unset();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean isSetControlWithTriggerOpt() {
-        return controlWithTriggerOpt != null && ( ( InternalEList.Unsettable< ? > ) controlWithTriggerOpt ).isSet();
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -1250,8 +1230,6 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
             return ( ( InternalEList< ? > ) getReferredByIEDName() ).basicRemove( otherEnd, msgs );
         case SclPackage.ANY_LN__REFERRED_BY_LNODE:
             return ( ( InternalEList< ? > ) getReferredByLNode() ).basicRemove( otherEnd, msgs );
-        case SclPackage.ANY_LN__CONTROL_WITH_TRIGGER_OPT:
-            return ( ( InternalEList< ? > ) getControlWithTriggerOpt() ).basicRemove( otherEnd, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -1294,9 +1272,6 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
             return getReferredByIEDName();
         case SclPackage.ANY_LN__REFERRED_BY_LNODE:
             return getReferredByLNode();
-        case SclPackage.ANY_LN__CONTROL_WITH_TRIGGER_OPT:
-            if( coreType ) return getControlWithTriggerOpt();
-            return ( ( FeatureMap.Internal ) getControlWithTriggerOpt() ).getWrapper();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -1365,9 +1340,6 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
             getReferredByLNode().clear();
             getReferredByLNode().addAll( ( Collection< ? extends LNode > ) newValue );
             return;
-        case SclPackage.ANY_LN__CONTROL_WITH_TRIGGER_OPT:
-            ( ( FeatureMap.Internal ) getControlWithTriggerOpt() ).set( newValue );
-            return;
         }
         super.eSet( featureID, newValue );
     }
@@ -1425,9 +1397,6 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
         case SclPackage.ANY_LN__REFERRED_BY_LNODE:
             unsetReferredByLNode();
             return;
-        case SclPackage.ANY_LN__CONTROL_WITH_TRIGGER_OPT:
-            unsetControlWithTriggerOpt();
-            return;
         }
         super.eUnset( featureID );
     }
@@ -1470,8 +1439,6 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
             return isSetReferredByIEDName();
         case SclPackage.ANY_LN__REFERRED_BY_LNODE:
             return isSetReferredByLNode();
-        case SclPackage.ANY_LN__CONTROL_WITH_TRIGGER_OPT:
-            return isSetControlWithTriggerOpt();
         }
         return super.eIsSet( featureID );
     }
@@ -1517,8 +1484,6 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
             result.append( lnType );
         else
             result.append( "<unset>" );
-        result.append( ", ControlWithTriggerOpt: " );
-        result.append( controlWithTriggerOpt );
         result.append( ')' );
         return result.toString();
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/ConnectedAPImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/ConnectedAPImpl.java
index 74af5daec916931195aedce196eb34cfc55637d4..1975d2536a33d231ddec9ba9390b50e013c8f854 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/ConnectedAPImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/ConnectedAPImpl.java
@@ -40,10 +40,8 @@ import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.BasicFeatureMap;
 import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
 import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.util.FeatureMap;
 import org.eclipse.emf.ecore.util.InternalEList;
 
 /**
@@ -63,7 +61,6 @@ import org.eclipse.emf.ecore.util.InternalEList;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.ConnectedAPImpl#getPhysConn <em>Phys Conn</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.ConnectedAPImpl#getGSE <em>GSE</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.ConnectedAPImpl#getSMV <em>SMV</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.ConnectedAPImpl#getControlBlock <em>Control Block</em>}</li>
  * </ul>
  *
  * @generated
@@ -205,14 +202,24 @@ public class ConnectedAPImpl extends UnNamingImpl implements ConnectedAP {
     protected EList< PhysConn > physConn;
 
     /**
-     * The cached value of the '{@link #getControlBlock() <em>Control Block</em>}' attribute list.
+     * The cached value of the '{@link #getGSE() <em>GSE</em>}' containment reference list.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @see #getControlBlock()
+     * @see #getGSE()
      * @generated
      * @ordered
      */
-    protected FeatureMap controlBlock;
+    protected EList< GSE > gse;
+
+    /**
+     * The cached value of the '{@link #getSMV() <em>SMV</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSMV()
+     * @generated
+     * @ordered
+     */
+    protected EList< SMV > smv;
 
     /**
      * <!-- begin-user-doc -->
@@ -704,7 +711,11 @@ public class ConnectedAPImpl extends UnNamingImpl implements ConnectedAP {
      */
     @Override
     public EList< GSE > getGSE() {
-        return getControlBlock().list( SclPackage.eINSTANCE.getConnectedAP_GSE() );
+        if( gse == null ) {
+            gse = new EObjectContainmentWithInverseEList.Unsettable< GSE >( GSE.class, this,
+                    SclPackage.CONNECTED_AP__GSE, SclPackage.GSE__PARENT_CONNECTED_AP );
+        }
+        return gse;
     }
 
     /**
@@ -714,7 +725,7 @@ public class ConnectedAPImpl extends UnNamingImpl implements ConnectedAP {
      */
     @Override
     public void unsetGSE() {
-        ( ( FeatureMap.Internal ) getControlBlock() ).clear( SclPackage.eINSTANCE.getConnectedAP_GSE() );
+        if( gse != null ) ( ( InternalEList.Unsettable< ? > ) gse ).unset();
     }
 
     /**
@@ -724,7 +735,7 @@ public class ConnectedAPImpl extends UnNamingImpl implements ConnectedAP {
      */
     @Override
     public boolean isSetGSE() {
-        return !( ( FeatureMap.Internal ) getControlBlock() ).isEmpty( SclPackage.eINSTANCE.getConnectedAP_GSE() );
+        return gse != null && ( ( InternalEList.Unsettable< ? > ) gse ).isSet();
     }
 
     /**
@@ -734,7 +745,11 @@ public class ConnectedAPImpl extends UnNamingImpl implements ConnectedAP {
      */
     @Override
     public EList< SMV > getSMV() {
-        return getControlBlock().list( SclPackage.eINSTANCE.getConnectedAP_SMV() );
+        if( smv == null ) {
+            smv = new EObjectContainmentWithInverseEList.Unsettable< SMV >( SMV.class, this,
+                    SclPackage.CONNECTED_AP__SMV, SclPackage.SMV__PARENT_CONNECTED_AP );
+        }
+        return smv;
     }
 
     /**
@@ -744,7 +759,7 @@ public class ConnectedAPImpl extends UnNamingImpl implements ConnectedAP {
      */
     @Override
     public void unsetSMV() {
-        ( ( FeatureMap.Internal ) getControlBlock() ).clear( SclPackage.eINSTANCE.getConnectedAP_SMV() );
+        if( smv != null ) ( ( InternalEList.Unsettable< ? > ) smv ).unset();
     }
 
     /**
@@ -754,20 +769,7 @@ public class ConnectedAPImpl extends UnNamingImpl implements ConnectedAP {
      */
     @Override
     public boolean isSetSMV() {
-        return !( ( FeatureMap.Internal ) getControlBlock() ).isEmpty( SclPackage.eINSTANCE.getConnectedAP_SMV() );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public FeatureMap getControlBlock() {
-        if( controlBlock == null ) {
-            controlBlock = new BasicFeatureMap( this, SclPackage.CONNECTED_AP__CONTROL_BLOCK );
-        }
-        return controlBlock;
+        return smv != null && ( ( InternalEList.Unsettable< ? > ) smv ).isSet();
     }
 
     /**
@@ -824,8 +826,6 @@ public class ConnectedAPImpl extends UnNamingImpl implements ConnectedAP {
             return ( ( InternalEList< ? > ) getGSE() ).basicRemove( otherEnd, msgs );
         case SclPackage.CONNECTED_AP__SMV:
             return ( ( InternalEList< ? > ) getSMV() ).basicRemove( otherEnd, msgs );
-        case SclPackage.CONNECTED_AP__CONTROL_BLOCK:
-            return ( ( InternalEList< ? > ) getControlBlock() ).basicRemove( otherEnd, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -871,9 +871,6 @@ public class ConnectedAPImpl extends UnNamingImpl implements ConnectedAP {
             return getGSE();
         case SclPackage.CONNECTED_AP__SMV:
             return getSMV();
-        case SclPackage.CONNECTED_AP__CONTROL_BLOCK:
-            if( coreType ) return getControlBlock();
-            return ( ( FeatureMap.Internal ) getControlBlock() ).getWrapper();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -917,9 +914,6 @@ public class ConnectedAPImpl extends UnNamingImpl implements ConnectedAP {
             getSMV().clear();
             getSMV().addAll( ( Collection< ? extends SMV > ) newValue );
             return;
-        case SclPackage.CONNECTED_AP__CONTROL_BLOCK:
-            ( ( FeatureMap.Internal ) getControlBlock() ).set( newValue );
-            return;
         }
         super.eSet( featureID, newValue );
     }
@@ -959,9 +953,6 @@ public class ConnectedAPImpl extends UnNamingImpl implements ConnectedAP {
         case SclPackage.CONNECTED_AP__SMV:
             unsetSMV();
             return;
-        case SclPackage.CONNECTED_AP__CONTROL_BLOCK:
-            getControlBlock().clear();
-            return;
         }
         super.eUnset( featureID );
     }
@@ -992,8 +983,6 @@ public class ConnectedAPImpl extends UnNamingImpl implements ConnectedAP {
             return isSetGSE();
         case SclPackage.CONNECTED_AP__SMV:
             return isSetSMV();
-        case SclPackage.CONNECTED_AP__CONTROL_BLOCK:
-            return controlBlock != null && !controlBlock.isEmpty();
         }
         return super.eIsSet( featureID );
     }
@@ -1023,8 +1012,6 @@ public class ConnectedAPImpl extends UnNamingImpl implements ConnectedAP {
             result.append( redProt );
         else
             result.append( "<unset>" );
-        result.append( ", ControlBlock: " );
-        result.append( controlBlock );
         result.append( ')' );
         return result.toString();
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/LDeviceImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/LDeviceImpl.java
index 3a4a2792460b8e30bfa5ae69b6c643b7344f6327..297028a397d79a407573dd26e4e11a5b079435dd 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/LDeviceImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/LDeviceImpl.java
@@ -30,10 +30,9 @@ import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.BasicFeatureMap;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
 import org.eclipse.emf.ecore.util.EObjectWithInverseEList;
 import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.util.FeatureMap;
 import org.eclipse.emf.ecore.util.InternalEList;
 
 import fr.centralesupelec.edf.riseclipse.iec61850.scl.AccessControl;
@@ -64,7 +63,6 @@ import java.lang.reflect.InvocationTargetException;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.LDeviceImpl#getLdName <em>Ld Name</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.LDeviceImpl#getAccessControl <em>Access Control</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.LDeviceImpl#getParentServer <em>Parent Server</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.LDeviceImpl#getAnyLN <em>Any LN</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.LDeviceImpl#getLN0 <em>LN0</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.LDeviceImpl#getLN <em>LN</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.LDeviceImpl#getReferredByIEDName <em>Referred By IED Name</em>}</li>
@@ -153,14 +151,33 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
     protected boolean accessControlESet;
 
     /**
-     * The cached value of the '{@link #getAnyLN() <em>Any LN</em>}' attribute list.
+     * The cached value of the '{@link #getLN0() <em>LN0</em>}' containment reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @see #getAnyLN()
+     * @see #getLN0()
      * @generated
      * @ordered
      */
-    protected FeatureMap anyLN;
+    protected LN0 ln0;
+
+    /**
+     * This is true if the LN0 containment reference has been set.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    protected boolean ln0ESet;
+
+    /**
+     * The cached value of the '{@link #getLN() <em>LN</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getLN()
+     * @generated
+     * @ordered
+     */
+    protected EList< LN > ln;
 
     /**
      * The cached value of the '{@link #getReferredByIEDName() <em>Referred By IED Name</em>}' reference.
@@ -495,19 +512,6 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
                     newParentServer ) );
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public FeatureMap getAnyLN() {
-        if( anyLN == null ) {
-            anyLN = new BasicFeatureMap( this, SclPackage.LDEVICE__ANY_LN );
-        }
-        return anyLN;
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -515,7 +519,11 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
      */
     @Override
     public EList< LN > getLN() {
-        return getAnyLN().list( SclPackage.eINSTANCE.getLDevice_LN() );
+        if( ln == null ) {
+            ln = new EObjectContainmentWithInverseEList.Unsettable< LN >( LN.class, this, SclPackage.LDEVICE__LN,
+                    SclPackage.LN__PARENT_LDEVICE );
+        }
+        return ln;
     }
 
     /**
@@ -525,7 +533,7 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
      */
     @Override
     public void unsetLN() {
-        ( ( FeatureMap.Internal ) getAnyLN() ).clear( SclPackage.eINSTANCE.getLDevice_LN() );
+        if( ln != null ) ( ( InternalEList.Unsettable< ? > ) ln ).unset();
     }
 
     /**
@@ -535,7 +543,7 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
      */
     @Override
     public boolean isSetLN() {
-        return !( ( FeatureMap.Internal ) getAnyLN() ).isEmpty( SclPackage.eINSTANCE.getLDevice_LN() );
+        return ln != null && ( ( InternalEList.Unsettable< ? > ) ln ).isSet();
     }
 
     /**
@@ -893,7 +901,7 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
      */
     @Override
     public LN0 getLN0() {
-        return ( LN0 ) getAnyLN().get( SclPackage.eINSTANCE.getLDevice_LN0(), true );
+        return ln0;
     }
 
     /**
@@ -902,7 +910,19 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
      * @generated
      */
     public NotificationChain basicSetLN0( LN0 newLN0, NotificationChain msgs ) {
-        return ( ( FeatureMap.Internal ) getAnyLN() ).basicAdd( SclPackage.eINSTANCE.getLDevice_LN0(), newLN0, msgs );
+        LN0 oldLN0 = ln0;
+        ln0 = newLN0;
+        boolean oldLN0ESet = ln0ESet;
+        ln0ESet = true;
+        if( eNotificationRequired() ) {
+            ENotificationImpl notification = new ENotificationImpl( this, Notification.SET, SclPackage.LDEVICE__LN0,
+                    oldLN0, newLN0, !oldLN0ESet );
+            if( msgs == null )
+                msgs = notification;
+            else
+                msgs.add( notification );
+        }
+        return msgs;
     }
 
     /**
@@ -912,18 +932,36 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
      */
     @Override
     public void setLN0( LN0 newLN0 ) {
-        ( ( FeatureMap.Internal ) getAnyLN() ).set( SclPackage.eINSTANCE.getLDevice_LN0(), newLN0 );
+        if( newLN0 != ln0 ) {
+            NotificationChain msgs = null;
+            if( ln0 != null )
+                msgs = ( ( InternalEObject ) ln0 ).eInverseRemove( this, SclPackage.LN0__PARENT_LDEVICE, LN0.class,
+                        msgs );
+            if( newLN0 != null )
+                msgs = ( ( InternalEObject ) newLN0 ).eInverseAdd( this, SclPackage.LN0__PARENT_LDEVICE, LN0.class,
+                        msgs );
+            msgs = basicSetLN0( newLN0, msgs );
+            if( msgs != null ) msgs.dispatch();
+        }
+        else {
+            boolean oldLN0ESet = ln0ESet;
+            ln0ESet = true;
+            if( eNotificationRequired() )
+                eNotify( new ENotificationImpl( this, Notification.SET, SclPackage.LDEVICE__LN0, newLN0, newLN0,
+                        !oldLN0ESet ) );
+        }
     }
 
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @generated NOT
+     * @generated
      */
     public NotificationChain basicUnsetLN0( NotificationChain msgs ) {
-        LN0 oldLN0 = getLN0();
-        getAnyLN().remove( oldLN0 );
-        boolean oldLN0ESet = isSetLN0();
+        LN0 oldLN0 = ln0;
+        ln0 = null;
+        boolean oldLN0ESet = ln0ESet;
+        ln0ESet = false;
         if( eNotificationRequired() ) {
             ENotificationImpl notification = new ENotificationImpl( this, Notification.UNSET, SclPackage.LDEVICE__LN0,
                     oldLN0, null, oldLN0ESet );
@@ -942,7 +980,19 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
      */
     @Override
     public void unsetLN0() {
-        ( ( FeatureMap.Internal ) getAnyLN() ).clear( SclPackage.eINSTANCE.getLDevice_LN0() );
+        if( ln0 != null ) {
+            NotificationChain msgs = null;
+            msgs = ( ( InternalEObject ) ln0 ).eInverseRemove( this, SclPackage.LN0__PARENT_LDEVICE, LN0.class, msgs );
+            msgs = basicUnsetLN0( msgs );
+            if( msgs != null ) msgs.dispatch();
+        }
+        else {
+            boolean oldLN0ESet = ln0ESet;
+            ln0ESet = false;
+            if( eNotificationRequired() )
+                eNotify( new ENotificationImpl( this, Notification.UNSET, SclPackage.LDEVICE__LN0, null, null,
+                        oldLN0ESet ) );
+        }
     }
 
     /**
@@ -952,7 +1002,7 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
      */
     @Override
     public boolean isSetLN0() {
-        return !( ( FeatureMap.Internal ) getAnyLN() ).isEmpty( SclPackage.eINSTANCE.getLDevice_LN0() );
+        return ln0ESet;
     }
 
     /**
@@ -974,7 +1024,6 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
                 msgs = eBasicRemoveFromContainer( msgs );
             return basicSetParentServer( ( Server ) otherEnd, msgs );
         case SclPackage.LDEVICE__LN0:
-            LN0 ln0 = getLN0();
             if( ln0 != null )
                 msgs = ( ( InternalEObject ) ln0 ).eInverseRemove( this,
                         EOPPOSITE_FEATURE_BASE - SclPackage.LDEVICE__LN0, null, msgs );
@@ -1010,8 +1059,6 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
             return basicUnsetAccessControl( msgs );
         case SclPackage.LDEVICE__PARENT_SERVER:
             return basicSetParentServer( null, msgs );
-        case SclPackage.LDEVICE__ANY_LN:
-            return ( ( InternalEList< ? > ) getAnyLN() ).basicRemove( otherEnd, msgs );
         case SclPackage.LDEVICE__LN0:
             return basicUnsetLN0( msgs );
         case SclPackage.LDEVICE__LN:
@@ -1056,9 +1103,6 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
             return getAccessControl();
         case SclPackage.LDEVICE__PARENT_SERVER:
             return getParentServer();
-        case SclPackage.LDEVICE__ANY_LN:
-            if( coreType ) return getAnyLN();
-            return ( ( FeatureMap.Internal ) getAnyLN() ).getWrapper();
         case SclPackage.LDEVICE__LN0:
             return getLN0();
         case SclPackage.LDEVICE__LN:
@@ -1094,9 +1138,6 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
         case SclPackage.LDEVICE__PARENT_SERVER:
             setParentServer( ( Server ) newValue );
             return;
-        case SclPackage.LDEVICE__ANY_LN:
-            ( ( FeatureMap.Internal ) getAnyLN() ).set( newValue );
-            return;
         case SclPackage.LDEVICE__LN0:
             setLN0( ( LN0 ) newValue );
             return;
@@ -1138,9 +1179,6 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
         case SclPackage.LDEVICE__PARENT_SERVER:
             setParentServer( ( Server ) null );
             return;
-        case SclPackage.LDEVICE__ANY_LN:
-            getAnyLN().clear();
-            return;
         case SclPackage.LDEVICE__LN0:
             unsetLN0();
             return;
@@ -1176,8 +1214,6 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
             return isSetAccessControl();
         case SclPackage.LDEVICE__PARENT_SERVER:
             return getParentServer() != null;
-        case SclPackage.LDEVICE__ANY_LN:
-            return anyLN != null && !anyLN.isEmpty();
         case SclPackage.LDEVICE__LN0:
             return isSetLN0();
         case SclPackage.LDEVICE__LN:
@@ -1226,8 +1262,6 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
             result.append( ldName );
         else
             result.append( "<unset>" );
-        result.append( ", AnyLN: " );
-        result.append( anyLN );
         result.append( ')' );
         return result.toString();
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/LN0Impl.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/LN0Impl.java
index b69dd74e164f8711a9d97c8bbb5f1866d7a1d427..559bdff1d50ce085d5091a76c94c8299bcc92fd2 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/LN0Impl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/LN0Impl.java
@@ -27,9 +27,8 @@ import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.BasicFeatureMap;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
 import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.util.FeatureMap;
 import org.eclipse.emf.ecore.util.InternalEList;
 
 import fr.centralesupelec.edf.riseclipse.iec61850.scl.GSEControl;
@@ -51,40 +50,49 @@ import fr.centralesupelec.edf.riseclipse.iec61850.scl.SettingControl;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.LN0Impl#getParentLDevice <em>Parent LDevice</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.LN0Impl#getSampledValueControl <em>Sampled Value Control</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.LN0Impl#getSettingControl <em>Setting Control</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.LN0Impl#getControlWithIEDName <em>Control With IED Name</em>}</li>
  * </ul>
  *
  * @generated
  */
 public class LN0Impl extends AnyLNImpl implements LN0 {
     /**
-     * The cached value of the '{@link #getSettingControl() <em>Setting Control</em>}' containment reference.
+     * The cached value of the '{@link #getGSEControl() <em>GSE Control</em>}' containment reference list.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @see #getSettingControl()
+     * @see #getGSEControl()
      * @generated
      * @ordered
      */
-    protected SettingControl settingControl;
+    protected EList< GSEControl > gseControl;
 
     /**
-     * This is true if the Setting Control containment reference has been set.
+     * The cached value of the '{@link #getSampledValueControl() <em>Sampled Value Control</em>}' containment reference list.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
+     * @see #getSampledValueControl()
      * @generated
      * @ordered
      */
-    protected boolean settingControlESet;
+    protected EList< SampledValueControl > sampledValueControl;
+
+    /**
+     * The cached value of the '{@link #getSettingControl() <em>Setting Control</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSettingControl()
+     * @generated
+     * @ordered
+     */
+    protected SettingControl settingControl;
 
     /**
-     * The cached value of the '{@link #getControlWithIEDName() <em>Control With IED Name</em>}' attribute list.
+     * This is true if the Setting Control containment reference has been set.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @see #getControlWithIEDName()
      * @generated
      * @ordered
      */
-    protected FeatureMap controlWithIEDName;
+    protected boolean settingControlESet;
 
     /**
      * <!-- begin-user-doc -->
@@ -112,7 +120,11 @@ public class LN0Impl extends AnyLNImpl implements LN0 {
      */
     @Override
     public EList< GSEControl > getGSEControl() {
-        return getControlWithIEDName().list( SclPackage.eINSTANCE.getLN0_GSEControl() );
+        if( gseControl == null ) {
+            gseControl = new EObjectContainmentWithInverseEList.Unsettable< GSEControl >( GSEControl.class, this,
+                    SclPackage.LN0__GSE_CONTROL, SclPackage.GSE_CONTROL__PARENT_LN0 );
+        }
+        return gseControl;
     }
 
     /**
@@ -122,7 +134,7 @@ public class LN0Impl extends AnyLNImpl implements LN0 {
      */
     @Override
     public void unsetGSEControl() {
-        ( ( FeatureMap.Internal ) getControlWithIEDName() ).clear( SclPackage.eINSTANCE.getLN0_GSEControl() );
+        if( gseControl != null ) ( ( InternalEList.Unsettable< ? > ) gseControl ).unset();
     }
 
     /**
@@ -132,7 +144,7 @@ public class LN0Impl extends AnyLNImpl implements LN0 {
      */
     @Override
     public boolean isSetGSEControl() {
-        return !( ( FeatureMap.Internal ) getControlWithIEDName() ).isEmpty( SclPackage.eINSTANCE.getLN0_GSEControl() );
+        return gseControl != null && ( ( InternalEList.Unsettable< ? > ) gseControl ).isSet();
     }
 
     /**
@@ -188,7 +200,12 @@ public class LN0Impl extends AnyLNImpl implements LN0 {
      */
     @Override
     public EList< SampledValueControl > getSampledValueControl() {
-        return getControlWithIEDName().list( SclPackage.eINSTANCE.getLN0_SampledValueControl() );
+        if( sampledValueControl == null ) {
+            sampledValueControl = new EObjectContainmentWithInverseEList.Unsettable< SampledValueControl >(
+                    SampledValueControl.class, this, SclPackage.LN0__SAMPLED_VALUE_CONTROL,
+                    SclPackage.SAMPLED_VALUE_CONTROL__PARENT_LN0 );
+        }
+        return sampledValueControl;
     }
 
     /**
@@ -198,7 +215,7 @@ public class LN0Impl extends AnyLNImpl implements LN0 {
      */
     @Override
     public void unsetSampledValueControl() {
-        ( ( FeatureMap.Internal ) getControlWithIEDName() ).clear( SclPackage.eINSTANCE.getLN0_SampledValueControl() );
+        if( sampledValueControl != null ) ( ( InternalEList.Unsettable< ? > ) sampledValueControl ).unset();
     }
 
     /**
@@ -208,8 +225,7 @@ public class LN0Impl extends AnyLNImpl implements LN0 {
      */
     @Override
     public boolean isSetSampledValueControl() {
-        return !( ( FeatureMap.Internal ) getControlWithIEDName() )
-                .isEmpty( SclPackage.eINSTANCE.getLN0_SampledValueControl() );
+        return sampledValueControl != null && ( ( InternalEList.Unsettable< ? > ) sampledValueControl ).isSet();
     }
 
     /**
@@ -324,39 +340,6 @@ public class LN0Impl extends AnyLNImpl implements LN0 {
         return settingControlESet;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public FeatureMap getControlWithIEDName() {
-        if( controlWithIEDName == null ) {
-            controlWithIEDName = new BasicFeatureMap( this, SclPackage.LN0__CONTROL_WITH_IED_NAME );
-        }
-        return controlWithIEDName;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void unsetControlWithIEDName() {
-        if( controlWithIEDName != null ) ( ( InternalEList.Unsettable< ? > ) controlWithIEDName ).unset();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean isSetControlWithIEDName() {
-        return controlWithIEDName != null && ( ( InternalEList.Unsettable< ? > ) controlWithIEDName ).isSet();
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -401,8 +384,6 @@ public class LN0Impl extends AnyLNImpl implements LN0 {
             return ( ( InternalEList< ? > ) getSampledValueControl() ).basicRemove( otherEnd, msgs );
         case SclPackage.LN0__SETTING_CONTROL:
             return basicUnsetSettingControl( msgs );
-        case SclPackage.LN0__CONTROL_WITH_IED_NAME:
-            return ( ( InternalEList< ? > ) getControlWithIEDName() ).basicRemove( otherEnd, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -437,9 +418,6 @@ public class LN0Impl extends AnyLNImpl implements LN0 {
             return getSampledValueControl();
         case SclPackage.LN0__SETTING_CONTROL:
             return getSettingControl();
-        case SclPackage.LN0__CONTROL_WITH_IED_NAME:
-            if( coreType ) return getControlWithIEDName();
-            return ( ( FeatureMap.Internal ) getControlWithIEDName() ).getWrapper();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -467,9 +445,6 @@ public class LN0Impl extends AnyLNImpl implements LN0 {
         case SclPackage.LN0__SETTING_CONTROL:
             setSettingControl( ( SettingControl ) newValue );
             return;
-        case SclPackage.LN0__CONTROL_WITH_IED_NAME:
-            ( ( FeatureMap.Internal ) getControlWithIEDName() ).set( newValue );
-            return;
         }
         super.eSet( featureID, newValue );
     }
@@ -494,9 +469,6 @@ public class LN0Impl extends AnyLNImpl implements LN0 {
         case SclPackage.LN0__SETTING_CONTROL:
             unsetSettingControl();
             return;
-        case SclPackage.LN0__CONTROL_WITH_IED_NAME:
-            unsetControlWithIEDName();
-            return;
         }
         super.eUnset( featureID );
     }
@@ -517,26 +489,8 @@ public class LN0Impl extends AnyLNImpl implements LN0 {
             return isSetSampledValueControl();
         case SclPackage.LN0__SETTING_CONTROL:
             return isSetSettingControl();
-        case SclPackage.LN0__CONTROL_WITH_IED_NAME:
-            return isSetControlWithIEDName();
         }
         return super.eIsSet( featureID );
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public String toString() {
-        if( eIsProxy() ) return super.toString();
-
-        StringBuilder result = new StringBuilder( super.toString() );
-        result.append( " (ControlWithIEDName: " );
-        result.append( controlWithIEDName );
-        result.append( ')' );
-        return result.toString();
-    }
-
 } //LN0Impl
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/SclPackageImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/SclPackageImpl.java
index d8e6402d5250b142464aa270025739c3628494ac..be5cbdc1f0ac367cfc8a8487e4d32832777fb011 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/SclPackageImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/SclPackageImpl.java
@@ -2334,16 +2334,6 @@ public class SclPackageImpl extends EPackageImpl implements SclPackage {
         return ( EReference ) getConnectedAP().getEStructuralFeatures().get( 8 );
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EAttribute getConnectedAP_ControlBlock() {
-        return ( EAttribute ) getConnectedAP().getEStructuralFeatures().get( 9 );
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -4542,16 +4532,6 @@ public class SclPackageImpl extends EPackageImpl implements SclPackage {
         return ( EReference ) getAnyLN().getEStructuralFeatures().get( 14 );
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EAttribute getAnyLN_ControlWithTriggerOpt() {
-        return ( EAttribute ) getAnyLN().getEStructuralFeatures().get( 15 );
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -6850,16 +6830,6 @@ public class SclPackageImpl extends EPackageImpl implements SclPackage {
         return ( EReference ) getLDevice().getEStructuralFeatures().get( 3 );
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EAttribute getLDevice_AnyLN() {
-        return ( EAttribute ) getLDevice().getEStructuralFeatures().get( 4 );
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -6867,7 +6837,7 @@ public class SclPackageImpl extends EPackageImpl implements SclPackage {
      */
     @Override
     public EReference getLDevice_LN() {
-        return ( EReference ) getLDevice().getEStructuralFeatures().get( 6 );
+        return ( EReference ) getLDevice().getEStructuralFeatures().get( 5 );
     }
 
     /**
@@ -6877,7 +6847,7 @@ public class SclPackageImpl extends EPackageImpl implements SclPackage {
      */
     @Override
     public EReference getLDevice_ReferredByIEDName() {
-        return ( EReference ) getLDevice().getEStructuralFeatures().get( 7 );
+        return ( EReference ) getLDevice().getEStructuralFeatures().get( 6 );
     }
 
     /**
@@ -6887,7 +6857,7 @@ public class SclPackageImpl extends EPackageImpl implements SclPackage {
      */
     @Override
     public EReference getLDevice_RefersToHigherLevelLDevice() {
-        return ( EReference ) getLDevice().getEStructuralFeatures().get( 8 );
+        return ( EReference ) getLDevice().getEStructuralFeatures().get( 7 );
     }
 
     /**
@@ -6897,7 +6867,7 @@ public class SclPackageImpl extends EPackageImpl implements SclPackage {
      */
     @Override
     public EReference getLDevice_RefersToLowerLevelLDevices() {
-        return ( EReference ) getLDevice().getEStructuralFeatures().get( 9 );
+        return ( EReference ) getLDevice().getEStructuralFeatures().get( 8 );
     }
 
     /**
@@ -6917,7 +6887,7 @@ public class SclPackageImpl extends EPackageImpl implements SclPackage {
      */
     @Override
     public EReference getLDevice_LN0() {
-        return ( EReference ) getLDevice().getEStructuralFeatures().get( 5 );
+        return ( EReference ) getLDevice().getEStructuralFeatures().get( 4 );
     }
 
     /**
@@ -7018,16 +6988,6 @@ public class SclPackageImpl extends EPackageImpl implements SclPackage {
         return ( EReference ) getLN0().getEStructuralFeatures().get( 3 );
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EAttribute getLN0_ControlWithIEDName() {
-        return ( EAttribute ) getLN0().getEStructuralFeatures().get( 4 );
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/scl.ecore b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/scl.ecore
index dc71da6ff2c922c95f09df08634794422b0c72a9..0c55ddcf33870d89a6d7fceadf31cb48fdefe174 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/scl.ecore
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/scl.ecore
@@ -258,26 +258,11 @@
         upperBound="-1" eType="#//PhysConn" unsettable="true" containment="true" resolveProxies="false"
         eOpposite="#//PhysConn/ParentConnectedAP"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="GSE" ordered="false" upperBound="-1"
-        eType="#//GSE" volatile="true" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//GSE/ParentConnectedAP">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#ControlBlock"/>
-      </eAnnotations>
-    </eStructuralFeatures>
+        eType="#//GSE" unsettable="true" containment="true" resolveProxies="false"
+        eOpposite="#//GSE/ParentConnectedAP"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="SMV" ordered="false" upperBound="-1"
-        eType="#//SMV" volatile="true" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//SMV/ParentConnectedAP">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#ControlBlock"/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="ControlBlock" ordered="false"
-        upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry"
-        transient="true">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="kind" value="group"/>
-      </eAnnotations>
-    </eStructuralFeatures>
+        eType="#//SMV" unsettable="true" containment="true" resolveProxies="false"
+        eOpposite="#//SMV/ParentConnectedAP"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ControlBlock" abstract="true" eSuperTypes="#//UnNaming">
     <eOperations name="getParentConnectedAP" eType="#//ConnectedAP"/>
@@ -622,19 +607,11 @@
         eType="#//DOI" unsettable="true" containment="true" resolveProxies="false"
         eOpposite="#//DOI/ParentAnyLN"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ReportControl" ordered="false"
-        upperBound="-1" eType="#//ReportControl" volatile="true" unsettable="true"
-        containment="true" resolveProxies="false" eOpposite="#//ReportControl/ParentAnyLN">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#ControlWithTriggerOpt"/>
-      </eAnnotations>
-    </eStructuralFeatures>
+        upperBound="-1" eType="#//ReportControl" unsettable="true" containment="true"
+        resolveProxies="false" eOpposite="#//ReportControl/ParentAnyLN"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="LogControl" ordered="false"
-        upperBound="-1" eType="#//LogControl" volatile="true" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//LogControl/ParentAnyLN">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#ControlWithTriggerOpt"/>
-      </eAnnotations>
-    </eStructuralFeatures>
+        upperBound="-1" eType="#//LogControl" unsettable="true" containment="true"
+        resolveProxies="false" eOpposite="#//LogControl/ParentAnyLN"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="DataSet" ordered="false"
         upperBound="-1" eType="#//DataSet" unsettable="true" containment="true" resolveProxies="false"
         eOpposite="#//DataSet/ParentAnyLN"/>
@@ -653,13 +630,6 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="ReferredByLNode" ordered="false"
         upperBound="-1" eType="#//LNode" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//LNode/RefersToAnyLN"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="ControlWithTriggerOpt"
-        ordered="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry"
-        transient="true" unsettable="true">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="kind" value="group"/>
-      </eAnnotations>
-    </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Association" eSuperTypes="#//BaseElement #//AgLNRef">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="associationID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
@@ -1154,25 +1124,11 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="ParentServer" ordered="false"
         eType="#//Server" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//Server/LDevice"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="AnyLN" ordered="false"
-        upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry"
-        transient="true">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="kind" value="group"/>
-      </eAnnotations>
-    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="LN0" ordered="false" eType="#//LN0"
-        volatile="true" unsettable="true" containment="true" eOpposite="#//LN0/ParentLDevice">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#AnyLN"/>
-      </eAnnotations>
-    </eStructuralFeatures>
+        unsettable="true" containment="true" resolveProxies="false" eOpposite="#//LN0/ParentLDevice"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="LN" ordered="false" upperBound="-1"
-        eType="#//LN" volatile="true" unsettable="true" containment="true" eOpposite="#//LN/ParentLDevice">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#AnyLN"/>
-      </eAnnotations>
-    </eStructuralFeatures>
+        eType="#//LN" unsettable="true" containment="true" resolveProxies="false"
+        eOpposite="#//LN/ParentLDevice"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ReferredByIEDName" ordered="false"
         eType="#//IEDName" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//IEDName/RefersToLDevice"/>
@@ -1195,32 +1151,17 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="LN0" eSuperTypes="#//AnyLN">
     <eStructuralFeatures xsi:type="ecore:EReference" name="GSEControl" ordered="false"
-        upperBound="-1" eType="#//GSEControl" volatile="true" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//GSEControl/ParentLN0">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#ControlWithIEDName"/>
-      </eAnnotations>
-    </eStructuralFeatures>
+        upperBound="-1" eType="#//GSEControl" unsettable="true" containment="true"
+        resolveProxies="false" eOpposite="#//GSEControl/ParentLN0"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ParentLDevice" ordered="false"
         eType="#//LDevice" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//LDevice/LN0"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="SampledValueControl" ordered="false"
-        upperBound="-1" eType="#//SampledValueControl" volatile="true" unsettable="true"
-        containment="true" resolveProxies="false" eOpposite="#//SampledValueControl/ParentLN0">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#ControlWithIEDName"/>
-      </eAnnotations>
-    </eStructuralFeatures>
+        upperBound="-1" eType="#//SampledValueControl" unsettable="true" containment="true"
+        resolveProxies="false" eOpposite="#//SampledValueControl/ParentLN0"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="SettingControl" ordered="false"
         eType="#//SettingControl" unsettable="true" containment="true" resolveProxies="false"
         eOpposite="#//SettingControl/ParentLN0"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="ControlWithIEDName" ordered="false"
-        upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry"
-        transient="true" unsettable="true">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="kind" value="group"/>
-      </eAnnotations>
-    </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Log" eSuperTypes="#//UnNaming">
     <eStructuralFeatures xsi:type="ecore:EReference" name="ParentAnyLN" ordered="false"