diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsdResourceSetImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsdResourceSetImpl.java
index 3675b7c99637ff0028decd76e72051409ab97ed2..b2f72334ef78308572d8df97d8465084a837e8e0 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsdResourceSetImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsdResourceSetImpl.java
@@ -21,10 +21,14 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd.util;
 
 import java.io.IOException;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.Map;
+import java.util.stream.Stream;
 
 import org.eclipse.emf.ecore.resource.Resource;
 import fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentRoot;
+import fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClass;
+import fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses;
 import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS;
 import fr.centralesupelec.edf.riseclipse.util.AbstractRiseClipseConsole;
 import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole;
@@ -227,4 +231,30 @@ public class NsdResourceSetImpl extends RiseClipseResourceSet {
      *     Name: uniqueServiceCDC                      Selector: nsd:ServiceCDC                    Field: @cdc @variant
      *     Within an ServiceNS, there shall not be two ServiceCDC sub-elements with same name and (if defined) variant.
      */
+    
+    public Stream< LNClass > getLNClassStream() {
+        if( nsdResources.isEmpty() ) {
+            return null;
+        }
+        Stream< LNClass > lnClassStream = null;
+        Iterator< NS > it = nsdResources.values().iterator();
+        while( it.hasNext() ) {
+            LNClasses lnClasses = it.next().getLNClasses();
+            if( lnClasses != null ) {
+                if( lnClassStream == null ) {
+                    lnClassStream = lnClasses.getLNClass().stream();
+                }
+                else {
+                    // Warning: Resource leak: 'lnClassStream' is not closed at this location ??
+                    //lnClassStream = Stream.concat( lnClassStream, lnClasses.getLNClass().stream() );
+                    Stream< LNClass > tmp = Stream.concat( lnClassStream, lnClasses.getLNClass().stream() );
+                    lnClassStream = tmp;
+                }
+            }
+        }
+        return lnClassStream;
+    }
+
 }
+
+