Index: applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFile.java
===================================================================
--- applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFile.java	(revision 33642)
+++ applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFile.java	(revision 33643)
@@ -56,4 +56,5 @@
 
     EdigeoFile(Path path) throws IOException {
+        init();
         try (BufferedReader reader = Files.newBufferedReader(path, StandardCharsets.ISO_8859_1)) {
             String line;
@@ -95,4 +96,8 @@
             }
         }
+    }
+
+    protected void init() {
+        // To be overidden if needed
     }
 
Index: applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileDIC.java
===================================================================
--- applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileDIC.java	(revision 33643)
+++ applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileDIC.java	(revision 33643)
@@ -0,0 +1,27 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.plugins.fr.cadastre.edigeo;
+
+import java.io.IOException;
+import java.nio.file.Path;
+
+/**
+ * Edigeo DIC file.
+ */
+public class EdigeoFileDIC extends EdigeoFile {
+
+    /**
+     * Constructs a new {@code EdigeoFileDIC}.
+     * @param path path to DIC file
+     * @throws IOException if any I/O error occurs
+     */
+    public EdigeoFileDIC(Path path) throws IOException {
+        super(path);
+    }
+
+    @Override
+    protected Block createBlock(String type) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+}
Index: applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileGEN.java
===================================================================
--- applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileGEN.java	(revision 33643)
+++ applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileGEN.java	(revision 33643)
@@ -0,0 +1,27 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.plugins.fr.cadastre.edigeo;
+
+import java.io.IOException;
+import java.nio.file.Path;
+
+/**
+ * Edigeo GEN file.
+ */
+public class EdigeoFileGEN extends EdigeoFile {
+
+    /**
+     * Constructs a new {@code EdigeoFileGEN}.
+     * @param path path to GEN file
+     * @throws IOException if any I/O error occurs
+     */
+    public EdigeoFileGEN(Path path) throws IOException {
+        super(path);
+    }
+
+    @Override
+    protected Block createBlock(String type) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+}
Index: applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileGEO.java
===================================================================
--- applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileGEO.java	(revision 33643)
+++ applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileGEO.java	(revision 33643)
@@ -0,0 +1,27 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.plugins.fr.cadastre.edigeo;
+
+import java.io.IOException;
+import java.nio.file.Path;
+
+/**
+ * Edigeo GEO file.
+ */
+public class EdigeoFileGEO extends EdigeoFile {
+
+    /**
+     * Constructs a new {@code EdigeoFileGEO}.
+     * @param path path to GEO file
+     * @throws IOException if any I/O error occurs
+     */
+    public EdigeoFileGEO(Path path) throws IOException {
+        super(path);
+    }
+
+    @Override
+    protected Block createBlock(String type) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+}
Index: applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileMAT.java
===================================================================
--- applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileMAT.java	(revision 33643)
+++ applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileMAT.java	(revision 33643)
@@ -0,0 +1,27 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.plugins.fr.cadastre.edigeo;
+
+import java.io.IOException;
+import java.nio.file.Path;
+
+/**
+ * Edigeo MAT file.
+ */
+public class EdigeoFileMAT extends EdigeoFile {
+
+    /**
+     * Constructs a new {@code EdigeoFileMAT}.
+     * @param path path to MAT file
+     * @throws IOException if any I/O error occurs
+     */
+    EdigeoFileMAT(Path path) throws IOException {
+        super(path);
+    }
+
+    @Override
+    protected Block createBlock(String type) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+}
Index: applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileQAL.java
===================================================================
--- applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileQAL.java	(revision 33643)
+++ applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileQAL.java	(revision 33643)
@@ -0,0 +1,27 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.plugins.fr.cadastre.edigeo;
+
+import java.io.IOException;
+import java.nio.file.Path;
+
+/**
+ * Edigeo QAL file.
+ */
+public class EdigeoFileQAL extends EdigeoFile {
+
+    /**
+     * Constructs a new {@code EdigeoFileQAL}.
+     * @param path path to QAL file
+     * @throws IOException if any I/O error occurs
+     */
+    public EdigeoFileQAL(Path path) throws IOException {
+        super(path);
+    }
+
+    @Override
+    protected Block createBlock(String type) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+}
Index: applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileSCD.java
===================================================================
--- applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileSCD.java	(revision 33643)
+++ applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileSCD.java	(revision 33643)
@@ -0,0 +1,26 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.plugins.fr.cadastre.edigeo;
+
+import java.io.IOException;
+import java.nio.file.Path;
+
+/**
+ * Edigeo SCD file.
+ */
+public class EdigeoFileSCD extends EdigeoFile {
+
+    /**
+     * Constructs a new {@code EdigeoFileSCD}.
+     * @param path path to SCD file
+     * @throws IOException if any I/O error occurs
+     */
+    public EdigeoFileSCD(Path path) throws IOException {
+        super(path);
+    }
+
+    @Override
+    protected Block createBlock(String type) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+}
Index: applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileTHF.java
===================================================================
--- applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileTHF.java	(revision 33642)
+++ applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileTHF.java	(revision 33643)
@@ -60,100 +60,4 @@
         Support(String type) {
             super(type);
-        }
-
-        /**
-         * Returns author.
-         * @return author
-         */
-        public final String getAuthor() {
-            return author;
-        }
-
-        /**
-         * Returns recipient.
-         * @return recipient
-         */
-        public final String getRecipient() {
-            return recipient;
-        }
-
-        /**
-         * Returns number of geographic lots.
-         * @return number of geographic lots
-         */
-        public final int getnLots() {
-            return nLots;
-        }
-
-        /**
-         * Returns number of volumes.
-         * @return number of volumes
-         */
-        public final int getnVolumes() {
-            return nVolumes;
-        }
-
-        /**
-         * Returns security classification.
-         * @return security classification
-         */
-        public final SecurityClassification getSecurity() {
-            return security;
-        }
-
-        /**
-         * Returns diffusion restriction.
-         * @return diffusion restriction
-         */
-        public final String getDiffusionRestriction() {
-            return diffusionRestriction;
-        }
-
-        /**
-         * Returns Edigeo version.
-         * @return Edigeo version
-         */
-        public final String getEdigeoVersion() {
-            return edigeoVersion;
-        }
-
-        /**
-         * Returns Edigeo date.
-         * @return Edigeo date
-         */
-        public final LocalDate getEdigeoDate() {
-            return edigeoDate;
-        }
-
-        /**
-         * Returns name of transmission.
-         * @return name of transmission
-         */
-        public final String getTransmissionName() {
-            return transmissionName;
-        }
-
-        /**
-         * Returns edition number of transmission.
-         * @return edition number of transmission
-         */
-        public final int getTransmissionEdition() {
-            return transmissionEdition;
-        }
-
-        /**
-         * Returns date of transmission.
-         * @return date of transmission
-         */
-        public final LocalDate getTransmissionDate() {
-            return transmissionDate;
-        }
-
-        /**
-         * Returns general information about transmission.
-         * @return general information about transmission
-         */
-        public final String getTransmissionInformation() {
-            return transmissionInformation;
         }
 
@@ -176,4 +80,100 @@
                 super.processRecord(r);
             }
+        }
+
+        /**
+         * Returns author.
+         * @return author
+         */
+        public final String getAuthor() {
+            return author;
+        }
+
+        /**
+         * Returns recipient.
+         * @return recipient
+         */
+        public final String getRecipient() {
+            return recipient;
+        }
+
+        /**
+         * Returns number of geographic lots.
+         * @return number of geographic lots
+         */
+        public final int getnLots() {
+            return nLots;
+        }
+
+        /**
+         * Returns number of volumes.
+         * @return number of volumes
+         */
+        public final int getnVolumes() {
+            return nVolumes;
+        }
+
+        /**
+         * Returns security classification.
+         * @return security classification
+         */
+        public final SecurityClassification getSecurity() {
+            return security;
+        }
+
+        /**
+         * Returns diffusion restriction.
+         * @return diffusion restriction
+         */
+        public final String getDiffusionRestriction() {
+            return diffusionRestriction;
+        }
+
+        /**
+         * Returns Edigeo version.
+         * @return Edigeo version
+         */
+        public final String getEdigeoVersion() {
+            return edigeoVersion;
+        }
+
+        /**
+         * Returns Edigeo date.
+         * @return Edigeo date
+         */
+        public final LocalDate getEdigeoDate() {
+            return edigeoDate;
+        }
+
+        /**
+         * Returns name of transmission.
+         * @return name of transmission
+         */
+        public final String getTransmissionName() {
+            return transmissionName;
+        }
+
+        /**
+         * Returns edition number of transmission.
+         * @return edition number of transmission
+         */
+        public final int getTransmissionEdition() {
+            return transmissionEdition;
+        }
+
+        /**
+         * Returns date of transmission.
+         * @return date of transmission
+         */
+        public final LocalDate getTransmissionDate() {
+            return transmissionDate;
+        }
+
+        /**
+         * Returns general information about transmission.
+         * @return general information about transmission
+         */
+        public final String getTransmissionInformation() {
+            return transmissionInformation;
         }
     }
@@ -226,4 +226,142 @@
             }
         }
+
+        /**
+         * Returns name.
+         * @return name
+         */
+        public final String getName() {
+            return name;
+        }
+
+        /**
+         * Returns general information.
+         * @return general information
+         */
+        public final String getInformation() {
+            return information;
+        }
+
+        /**
+         * Returns general data subset name.
+         * @return general data subset name
+         */
+        public final String getGenDataName() {
+            return genDataName;
+        }
+
+        /**
+         * Returns general data subset identifier.
+         * @return general data subset identifier
+         */
+        public final String getGenDataId() {
+            return genDataId;
+        }
+
+        /**
+         * Returns coordinates reference subset name.
+         * @return coordinates reference subset name
+         */
+        public final String getCoorRefName() {
+            return coorRefName;
+        }
+
+        /**
+         * Returns coordinates reference subset identifier.
+         * @return coordinates reference subset identifier
+         */
+        public final String getCoorRefId() {
+            return coorRefId;
+        }
+
+        /**
+         * Returns quality subset name.
+         * @return quality subset name
+         */
+        public final String getQualityName() {
+            return qualityName;
+        }
+
+        /**
+         * Returns quality subset identifier.
+         * @return quality subset identifier
+         */
+        public final String getQualityId() {
+            return qualityId;
+        }
+
+        /**
+         * Returns dictionary subset name.
+         * @return dictionary subset name
+         */
+        public final String getDictName() {
+            return dictName;
+        }
+
+        /**
+         * Returns dictionary subset identifier.
+         * @return dictionary subset identifier
+         */
+        public final String getDictId() {
+            return dictId;
+        }
+
+        /**
+         * Returns SCD subset name.
+         * @return SCD subset name
+         */
+        public final String getScdName() {
+            return scdName;
+        }
+
+        /**
+         * Returns SCD subset identifier.
+         * @return SCD subset identifier
+         */
+        public final String getScdId() {
+            return scdId;
+        }
+
+        /**
+         * Returns number of geographic data subsets.
+         * @return number of geographic data subsets
+         */
+        public final int getNumberOfGeoData() {
+            return nGeoData;
+        }
+
+        /**
+         * Returns geographic data subset name at index i.
+         * @param i index
+         * @return geographic data subset name at index i
+         */
+        public final String getGeoDataName(int i) {
+            return geoDataName.get(i);
+        }
+
+        /**
+         * Returns list of geographic data subset names.
+         * @return list of geographic data subset names
+         */
+        public final List<String> getGeoDataNames() {
+            return Collections.unmodifiableList(geoDataName);
+        }
+
+        /**
+         * Returns list of geographic data subset identifiers.
+         * @return list of geographic data subset identifiers
+         */
+        public final List<String> getGeoDataIds() {
+            return Collections.unmodifiableList(geoDataId);
+        }
+
+        /**
+         * Returns geographic data subset identifier at index i.
+         * @param i index
+         * @return geographic data subset identifier at index i
+         */
+        public final String getGeoDataId(int i) {
+            return geoDataId.get(i);
+        }
     }
 
@@ -240,4 +378,9 @@
     }
 
+    @Override
+    protected void init() {
+        lots = new ArrayList<>();
+    }
+
     /**
      * Returns the support descriptor.
@@ -263,7 +406,4 @@
                 return support;
             case "GTL":
-                if (lots == null) {
-                    lots = new ArrayList<>();
-                }
                 Lot lot = new Lot(type);
                 lots.add(lot);
Index: applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileVEC.java
===================================================================
--- applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileVEC.java	(revision 33643)
+++ applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/EdigeoFileVEC.java	(revision 33643)
@@ -0,0 +1,27 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.plugins.fr.cadastre.edigeo;
+
+import java.io.IOException;
+import java.nio.file.Path;
+
+/**
+ * Edigeo VEC file.
+ */
+public class EdigeoFileVEC extends EdigeoFile {
+
+    /**
+     * Constructs a new {@code EdigeoFileVEC}.
+     * @param path path to VEC file
+     * @throws IOException if any I/O error occurs
+     */
+    public EdigeoFileVEC(Path path) throws IOException {
+        super(path);
+    }
+
+    @Override
+    protected Block createBlock(String type) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+}
Index: applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/pci/EdigeoPciReader.java
===================================================================
--- applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/pci/EdigeoPciReader.java	(revision 33642)
+++ applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/edigeo/pci/EdigeoPciReader.java	(revision 33643)
@@ -12,5 +12,12 @@
 import org.openstreetmap.josm.io.AbstractReader;
 import org.openstreetmap.josm.io.IllegalDataException;
+import org.openstreetmap.josm.plugins.fr.cadastre.edigeo.EdigeoFileDIC;
+import org.openstreetmap.josm.plugins.fr.cadastre.edigeo.EdigeoFileGEN;
+import org.openstreetmap.josm.plugins.fr.cadastre.edigeo.EdigeoFileGEO;
+import org.openstreetmap.josm.plugins.fr.cadastre.edigeo.EdigeoFileQAL;
+import org.openstreetmap.josm.plugins.fr.cadastre.edigeo.EdigeoFileSCD;
 import org.openstreetmap.josm.plugins.fr.cadastre.edigeo.EdigeoFileTHF;
+import org.openstreetmap.josm.plugins.fr.cadastre.edigeo.EdigeoFileTHF.Lot;
+import org.openstreetmap.josm.plugins.fr.cadastre.edigeo.EdigeoFileVEC;
 
 /**
@@ -39,6 +46,16 @@
 
     DataSet parse(Path path, ProgressMonitor instance) throws IOException {
-        // Read THF file
+        Path dir = path.getParent();
         EdigeoFileTHF thf = new EdigeoFileTHF(path);
+        for (Lot lot : thf.getLots()) {
+            EdigeoFileGEN gen = new EdigeoFileGEN(dir.resolve(lot.getName()+lot.getGenDataName()+".GEN"));
+            EdigeoFileGEO geo = new EdigeoFileGEO(dir.resolve(lot.getName()+lot.getCoorRefName()+".GEO"));
+            EdigeoFileDIC dic = new EdigeoFileDIC(dir.resolve(lot.getName()+lot.getDictName()+".DIC"));
+            EdigeoFileSCD scd = new EdigeoFileSCD(dir.resolve(lot.getName()+lot.getScdName()+".SCD"));
+            EdigeoFileQAL qal = new EdigeoFileQAL(dir.resolve(lot.getName()+lot.getQualityName()+".QAL"));
+            for (int i = 0; i < lot.getNumberOfGeoData(); i++) {
+                EdigeoFileVEC vec = new EdigeoFileVEC(dir.resolve(lot.getName()+lot.getGeoDataName(i)+".VEC"));
+            }
+        }
         DataSet ds = new DataSet();
         ds.setName(thf.getSupport().getIdentifier());
