diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractBuilding.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractBuilding.java
index 66a14b0784e2f74e16bdec0d9aa11bd1baf4d607..8bf25bb89bbb082ddaa6f0624c24174bfb4baacb 100644
--- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractBuilding.java
+++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractBuilding.java
@@ -114,6 +114,9 @@ public abstract class AbstractBuilding extends CityObject {
 	@Override
 	public void reCreateGeometries(GeometryFactory factory, ParserConfiguration config) {
 		for (Geometry geom : getGeometries()) {
+			if (geom instanceof ImplicitGeometryHolder){
+				continue;
+			}
 			if (geom.getType() == GeometryType.MULTI_SURFACE) {
 				MultiSurface ms = CityGmlUtils.createMultiSurface(geom, factory, config);
 				setMultiSurfaceAccordingToLod(geom, ms);
diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractBuildingSubdivision.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractBuildingSubdivision.java
index 5b5240ba4f2ebc3aed85636c42f281635307b2eb..64f743c109acfc98bbcbd1cf1146b2257607f7a3 100644
--- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractBuildingSubdivision.java
+++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractBuildingSubdivision.java
@@ -77,6 +77,9 @@ public abstract class AbstractBuildingSubdivision extends CityObject{
     @Override
     public void reCreateGeometries(GeometryFactory factory, ParserConfiguration config) {
         for (Geometry geom : getGeometries()) {
+            if (geom instanceof ImplicitGeometryHolder){
+                continue;
+            }
             if (geom.getType() == GeometryType.MULTI_SURFACE) {
                 MultiSurface ms = CityGmlUtils.createMultiSurface(geom, factory, config);
                 setMultiSurfaceAccordingToLod(geom, ms);
diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractFurniture.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractFurniture.java
index 139cd63ca88b035755b97ed287582cbfc8f1d3c7..ff02ceb2122e7096f813d4c3ab4ab60512b82a95 100644
--- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractFurniture.java
+++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractFurniture.java
@@ -105,6 +105,9 @@ public abstract class AbstractFurniture extends CityObject{
     @Override
     public void reCreateGeometries(GeometryFactory factory, ParserConfiguration config) {
         for (Geometry geom : getGeometries()) {
+            if (geom instanceof ImplicitGeometryHolder){
+                continue;
+            }
             if (geom.getType() == GeometryType.MULTI_SURFACE) {
                 MultiSurface ms = CityGmlUtils.createMultiSurface(geom, factory, config);
                 setMultiSurfaceAccordingToLod(geom, ms);
diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractRoom.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractRoom.java
index 48cc116f23004cbac0e9aaac5f08b29519d16970..bd917a0cac420d11eb6b7ee90c32771884a2891b 100644
--- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractRoom.java
+++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractRoom.java
@@ -113,6 +113,9 @@ public abstract class AbstractRoom extends CityObject{
     @Override
     public void reCreateGeometries(GeometryFactory factory, ParserConfiguration config) {
         for (Geometry geom : getGeometries()) {
+            if (geom instanceof ImplicitGeometryHolder){
+                continue;
+            }
             if (geom.getType() == GeometryType.MULTI_SURFACE) {
                 MultiSurface ms = CityGmlUtils.createMultiSurface(geom, factory, config);
                 setMultiSurfaceAccordingToLod(geom, ms);
diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractTunnel.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractTunnel.java
index 02dc38ff3963b1610bc40bd823ab582380ae4186..e9aef29c4e30b9442f507e166adc22a523bdacb5 100644
--- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractTunnel.java
+++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/AbstractTunnel.java
@@ -84,6 +84,9 @@ public abstract class AbstractTunnel extends CityObject{
     @Override
     public void reCreateGeometries(GeometryFactory factory, ParserConfiguration config) {
         for (Geometry geom : getGeometries()) {
+            if (geom instanceof ImplicitGeometryHolder){
+                continue;
+            }
             if (geom.getType() == GeometryType.MULTI_SURFACE) {
                 MultiSurface ms = CityGmlUtils.createMultiSurface(geom, factory, config);
                 setMultiSurfaceAccordingToLod(geom, ms);
diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/BoundarySurface.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/BoundarySurface.java
index 13632ebc7d888230ec4650b938435bc9553a29c9..18c16ef4a2be1387844e74d8464a07387c2156ab 100644
--- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/BoundarySurface.java
+++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/BoundarySurface.java
@@ -94,6 +94,9 @@ public class BoundarySurface extends CityObject {
 			gmlObject.setId(getGmlId().getGmlString());
 		}
 		for (Geometry geom : getGeometries()) {
+			if (geom instanceof ImplicitGeometryHolder){
+				continue;
+			}
 			if (geom.getType() == GeometryType.MULTI_SURFACE) {
 				MultiSurface ms = CityGmlUtils.createMultiSurface(geom, factory, config);
 				if (ms != null) {
diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/BridgeConstructiveElement.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/BridgeConstructiveElement.java
index 6a4bb82dd168220b9657b7cec737d211f605a09f..ff5b0756c93f841bbef6b5badb467ab750e48f0e 100644
--- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/BridgeConstructiveElement.java
+++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/BridgeConstructiveElement.java
@@ -70,6 +70,9 @@ public class BridgeConstructiveElement extends CityObject {
 		// unknown which CityGML is handled here
 		// need context information to decide
 		for (Geometry geom : getGeometries()) {
+			if (geom instanceof ImplicitGeometryHolder){
+				continue;
+			}
 			switch (geom.getType()) {
 			case SOLID:
 				Solid solid = CityGmlUtils.createSolid(geom, factory, config);
diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/BridgeObject.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/BridgeObject.java
index bf6acf6b3ab23e3bc5b1a5f29cf8072b46feaa18..18bf2e62fc96e1e9866bd74c966dd5b7a0efe403 100644
--- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/BridgeObject.java
+++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/BridgeObject.java
@@ -80,6 +80,9 @@ public class BridgeObject extends CityObject {
     @Override
     public void reCreateGeometries(GeometryFactory factory, ParserConfiguration config) {
         for (Geometry geom : getGeometries()) {
+            if (geom instanceof ImplicitGeometryHolder){
+                continue;
+            }
             if (geom.getType() == GeometryType.MULTI_SURFACE) {
                 MultiSurface ms = CityGmlUtils.createMultiSurface(geom, factory, config);
                 setMultiSurfaceAccordingToLod(geom, ms);
diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/CityFurniture.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/CityFurniture.java
index 27ea27e9c6cef4e2713af8a55a8a313191752102..144e2d1cd3a402da253a47559bebc1f666bdfdf3 100644
--- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/CityFurniture.java
+++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/CityFurniture.java
@@ -53,6 +53,9 @@ public class CityFurniture extends CityObject{
     @Override
     public void reCreateGeometries(GeometryFactory factory, ParserConfiguration config) {
         for (Geometry geom : getGeometries()) {
+            if (geom instanceof ImplicitGeometryHolder){
+                continue;
+            }
             if (geom.getType() == GeometryType.MULTI_SURFACE) {
                 MultiSurface ms = CityGmlUtils.createMultiSurface(geom, factory, config);
                 setMultiSurfaceAccordingToLod(geom, ms);
diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/GenericCityObject.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/GenericCityObject.java
index 5bfe8d8e6fdfd3b359c3197af7a7b10348e7cf53..d60f774e90991ac1f7aa45f91d33fa40269af09d 100644
--- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/GenericCityObject.java
+++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/GenericCityObject.java
@@ -49,6 +49,9 @@ public class GenericCityObject extends CityObject{
     @Override
     public void reCreateGeometries(GeometryFactory factory, ParserConfiguration config) {
         for (Geometry geom : getGeometries()) {
+            if (geom instanceof ImplicitGeometryHolder){
+                continue;
+            }
             if (geom.getType() == GeometryType.MULTI_SURFACE) {
                 MultiSurface ms = CityGmlUtils.createMultiSurface(geom, factory, config);
                 setMultiSurfaceAccordingToLod(geom, ms);
diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/TransportationObject.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/TransportationObject.java
index d3020ea53520707ece384ace8de109db8cb420c3..5b97c570d7c8642a935720189a91004c874c9e70 100644
--- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/TransportationObject.java
+++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/TransportationObject.java
@@ -70,6 +70,9 @@ public class TransportationObject extends CityObject {
 	@Override
 	public void reCreateGeometries(GeometryFactory factory, ParserConfiguration config) {
 		for (Geometry geom : getGeometries()) {
+			if (geom instanceof ImplicitGeometryHolder){
+				continue;
+			}
 			if (geom.getType() == GeometryType.MULTI_SURFACE) {
 				MultiSurface ms = CityGmlUtils.createMultiSurface(geom, factory, config);
 				switch (type) {
diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/Vegetation.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/Vegetation.java
index 7e2d0924292a58f0915201f30caf42f2d17c0997..112ee128ea1d3fe0894985bb85aa18bcbf6c291f 100644
--- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/Vegetation.java
+++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/Vegetation.java
@@ -68,6 +68,9 @@ public class Vegetation extends CityObject {
 	@Override
 	public void reCreateGeometries(GeometryFactory factory, ParserConfiguration config) {
 		for (Geometry geom : getGeometries()) {
+			if (geom instanceof ImplicitGeometryHolder){
+				continue;
+			}
 			if (geom.getType() == GeometryType.MULTI_SURFACE) {
 				MultiSurface ms = CityGmlUtils.createMultiSurface(geom, factory, config);
 				if (type == VegetationType.SOLITARY_VEGETATION_OBJECT) {
diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/writer/CityGMLWriterUtils.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/writer/CityGMLWriterUtils.java
index 05f543ff8a68cb336701c6b83ac6d38ec82593ea..00c75d547d02c7e812e1282eff3ef345a774a0bd 100644
--- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/writer/CityGMLWriterUtils.java
+++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/writer/CityGMLWriterUtils.java
@@ -172,6 +172,7 @@ public class CityGMLWriterUtils {
 			if (model.isValidated() && val != null) {
 				QualityADEUtils.writeQualityAde(co, val);
 			}
+
 			co.reCreateGeometries(gmlFactory, model.getParserConfig());
 			cModel.getCityObjectMembers().add(new AbstractCityObjectProperty(co.getGmlObject()));
 		}
diff --git a/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/CityDoctorController.java b/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/CityDoctorController.java
index db25ebbb13781e47ab9f3fa86c58bb6c6af885f0..191ab93a8242ca2a6d05b27533a33cd7075d9ccf 100644
--- a/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/CityDoctorController.java
+++ b/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/CityDoctorController.java
@@ -1202,6 +1202,7 @@ public class CityDoctorController {
             Settings.set(Settings.LAST_OPEN_FOLDER, f.getParent());
             try {
                 storeModel(f, saveWithQualityAde);
+                logger.info("Saving successful");
             } catch (CityDoctorWriteException e) {
                 mainWindow.showExceptionDialog(e);
             }