From 2df1a598b17ee917cefd5d11be762adee6f616ec Mon Sep 17 00:00:00 2001
From: Kai Brassel <mail@khbrassel.de>
Date: Fri, 30 Apr 2021 17:34:40 +0200
Subject: [PATCH] Units added

---
 .../plugin.properties                         |  3 ++
 .../provider/CatalogItemProvider.java         |  2 +-
 .../provider/LifeCycleItemProvider.java       |  4 +-
 .../provider/MaterialItemProvider.java        |  4 +-
 .../provider/WindowTypeItemProvider.java      |  2 +-
 .../model/buildingphysics.aird                |  8 ++--
 .../model/buildingphysics.ecore               | 28 ++++++++-----
 .../model/buildingphysics.genmodel            | 12 +++++-
 .../buildingphysics/LifeCycle.java            |  8 ++--
 .../buildingphysics/Material.java             | 24 ++++++-----
 .../buildingphysics/WindowType.java           | 17 ++++----
 .../impl/BuildingPhysicsPackageImpl.java      | 36 ++++++++--------
 .../buildingphysics/impl/LifeCycleImpl.java   |  7 +---
 .../buildingphysics/impl/MaterialImpl.java    | 42 ++++++++++---------
 .../buildingphysics/impl/WindowTypeImpl.java  | 15 ++++---
 15 files changed, 118 insertions(+), 94 deletions(-)

diff --git a/de.hftstuttgart.buildingphysics.edit/plugin.properties b/de.hftstuttgart.buildingphysics.edit/plugin.properties
index 6ad3d14..d580acb 100644
--- a/de.hftstuttgart.buildingphysics.edit/plugin.properties
+++ b/de.hftstuttgart.buildingphysics.edit/plugin.properties
@@ -55,3 +55,6 @@ _UI_LifeCycle_constructionDescription_feature = Construction Description
 _UI_LifeCycle_disposalEnergy_feature = Disposal Energy
 _UI_LifeCycle_disposalCarbon_feature = Disposal Carbon
 _UI_LifeCycle_disposalDescription_feature = Disposal Description
+_UI_WindowType__feature = 
+_UI_LifeCycle__feature = 
+_UI_LifeCycle_type_feature = Type
diff --git a/de.hftstuttgart.buildingphysics.edit/src/de/hftstuttgart/buildingphysics/provider/CatalogItemProvider.java b/de.hftstuttgart.buildingphysics.edit/src/de/hftstuttgart/buildingphysics/provider/CatalogItemProvider.java
index f6d1fa5..954fc33 100644
--- a/de.hftstuttgart.buildingphysics.edit/src/de/hftstuttgart/buildingphysics/provider/CatalogItemProvider.java
+++ b/de.hftstuttgart.buildingphysics.edit/src/de/hftstuttgart/buildingphysics/provider/CatalogItemProvider.java
@@ -87,7 +87,7 @@ public class CatalogItemProvider extends ItemProviderAdapter implements IEditing
 						getResourceLocator(), getString("_UI_Catalog_description_feature"),
 						getString("_UI_PropertyDescriptor_description", "_UI_Catalog_description_feature",
 								"_UI_Catalog_type"),
-						BuildingPhysicsPackage.Literals.CATALOG__DESCRIPTION, true, false, false,
+						BuildingPhysicsPackage.Literals.CATALOG__DESCRIPTION, true, true, false,
 						ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
 	}
 
diff --git a/de.hftstuttgart.buildingphysics.edit/src/de/hftstuttgart/buildingphysics/provider/LifeCycleItemProvider.java b/de.hftstuttgart.buildingphysics.edit/src/de/hftstuttgart/buildingphysics/provider/LifeCycleItemProvider.java
index b17042c..90bdd74 100644
--- a/de.hftstuttgart.buildingphysics.edit/src/de/hftstuttgart/buildingphysics/provider/LifeCycleItemProvider.java
+++ b/de.hftstuttgart.buildingphysics.edit/src/de/hftstuttgart/buildingphysics/provider/LifeCycleItemProvider.java
@@ -109,7 +109,7 @@ public class LifeCycleItemProvider extends ItemProviderAdapter implements IEditi
 				getString("_UI_LifeCycle_constructionDescription_feature"),
 				getString("_UI_PropertyDescriptor_description", "_UI_LifeCycle_constructionDescription_feature",
 						"_UI_LifeCycle_type"),
-				BuildingPhysicsPackage.Literals.LIFE_CYCLE__CONSTRUCTION_DESCRIPTION, true, false, false,
+				BuildingPhysicsPackage.Literals.LIFE_CYCLE__CONSTRUCTION_DESCRIPTION, true, true, false,
 				ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
 	}
 
@@ -157,7 +157,7 @@ public class LifeCycleItemProvider extends ItemProviderAdapter implements IEditi
 						getResourceLocator(), getString("_UI_LifeCycle_disposalDescription_feature"),
 						getString("_UI_PropertyDescriptor_description", "_UI_LifeCycle_disposalDescription_feature",
 								"_UI_LifeCycle_type"),
-						BuildingPhysicsPackage.Literals.LIFE_CYCLE__DISPOSAL_DESCRIPTION, true, false, false,
+						BuildingPhysicsPackage.Literals.LIFE_CYCLE__DISPOSAL_DESCRIPTION, true, true, false,
 						ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
 	}
 
diff --git a/de.hftstuttgart.buildingphysics.edit/src/de/hftstuttgart/buildingphysics/provider/MaterialItemProvider.java b/de.hftstuttgart.buildingphysics.edit/src/de/hftstuttgart/buildingphysics/provider/MaterialItemProvider.java
index b3461ba..36817b7 100644
--- a/de.hftstuttgart.buildingphysics.edit/src/de/hftstuttgart/buildingphysics/provider/MaterialItemProvider.java
+++ b/de.hftstuttgart.buildingphysics.edit/src/de/hftstuttgart/buildingphysics/provider/MaterialItemProvider.java
@@ -106,7 +106,7 @@ public class MaterialItemProvider extends ItemProviderAdapter implements IEditin
 						getString("_UI_PropertyDescriptor_description", "_UI_Material_density_feature",
 								"_UI_Material_type"),
 						BuildingPhysicsPackage.Literals.MATERIAL__DENSITY, true, false, false,
-						ItemPropertyDescriptor.REAL_VALUE_IMAGE, null, null));
+						ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
 	}
 
 	/**
@@ -138,7 +138,7 @@ public class MaterialItemProvider extends ItemProviderAdapter implements IEditin
 						getString("_UI_PropertyDescriptor_description", "_UI_Material_conductivity_feature",
 								"_UI_Material_type"),
 						BuildingPhysicsPackage.Literals.MATERIAL__CONDUCTIVITY, true, false, false,
-						ItemPropertyDescriptor.REAL_VALUE_IMAGE, null, null));
+						ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
 	}
 
 	/**
diff --git a/de.hftstuttgart.buildingphysics.edit/src/de/hftstuttgart/buildingphysics/provider/WindowTypeItemProvider.java b/de.hftstuttgart.buildingphysics.edit/src/de/hftstuttgart/buildingphysics/provider/WindowTypeItemProvider.java
index a172b8f..81bcad4 100644
--- a/de.hftstuttgart.buildingphysics.edit/src/de/hftstuttgart/buildingphysics/provider/WindowTypeItemProvider.java
+++ b/de.hftstuttgart.buildingphysics.edit/src/de/hftstuttgart/buildingphysics/provider/WindowTypeItemProvider.java
@@ -158,7 +158,7 @@ public class WindowTypeItemProvider extends ItemProviderAdapter implements IEdit
 						getString("_UI_PropertyDescriptor_description", "_UI_WindowType_frameRatio_feature",
 								"_UI_WindowType_type"),
 						BuildingPhysicsPackage.Literals.WINDOW_TYPE__FRAME_RATIO, true, false, false,
-						ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE, null, null));
+						ItemPropertyDescriptor.REAL_VALUE_IMAGE, null, null));
 	}
 
 	/**
diff --git a/de.hftstuttgart.buildingphysics/model/buildingphysics.aird b/de.hftstuttgart.buildingphysics/model/buildingphysics.aird
index 331f10c..f91d47c 100644
--- a/de.hftstuttgart.buildingphysics/model/buildingphysics.aird
+++ b/de.hftstuttgart.buildingphysics/model/buildingphysics.aird
@@ -7,7 +7,7 @@
     <semanticResources>platform:/resource/de.hftstuttgart.cityunits.model/model/Quantities.genmodel</semanticResources>
     <ownedViews xmi:type="viewpoint:DView" uid="_nfHygB3ZEeuNsK3dZmTkbQ">
       <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
-      <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_JKPtIZUqEeudooziRGqkJA" name="Buildingphysics Class Diagram" repPath="#_JKN38JUqEeudooziRGqkJA" changeId="08a1db9a-34ed-458f-96d3-6cf02c33c4f9">
+      <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_JKPtIZUqEeudooziRGqkJA" name="Buildingphysics Class Diagram" repPath="#_JKN38JUqEeudooziRGqkJA" changeId="49f990c2-65de-4a8b-8ae2-36e8047d10b8">
         <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
         <target xmi:type="ecore:EPackage" href="buildingphysics.ecore#/"/>
       </ownedRepresentationDescriptors>
@@ -356,7 +356,7 @@
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_J2rVU5UqEeudooziRGqkJA" name="frameRatio : EInt" tooltipText="">
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_J2rVU5UqEeudooziRGqkJA" name="frameRatio : EDouble = 0.0" tooltipText="">
         <target xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//WindowType/frameRatio"/>
         <semanticElements xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//WindowType/frameRatio"/>
         <ownedStyle xmi:type="diagram:BundledImage" uid="_J2rVVJUqEeudooziRGqkJA" labelAlignment="LEFT" description="_J2qHNJUqEeudooziRGqkJA">
@@ -468,7 +468,7 @@
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_J2tKg5UqEeudooziRGqkJA" name="density : EDouble = 0.0" tooltipText="">
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_J2tKg5UqEeudooziRGqkJA" name="density : QuantityDouble = kg/m³" tooltipText="">
         <target xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//Material/density"/>
         <semanticElements xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//Material/density"/>
         <ownedStyle xmi:type="diagram:BundledImage" uid="_J2tKhJUqEeudooziRGqkJA" labelAlignment="LEFT" description="_J2qHNJUqEeudooziRGqkJA">
@@ -484,7 +484,7 @@
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_J2txkZUqEeudooziRGqkJA" name="conductivity : EDouble = 0.0" tooltipText="">
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_J2txkZUqEeudooziRGqkJA" name="conductivity : QuantityDouble = W/(mâ‹…K)" tooltipText="">
         <target xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//Material/conductivity"/>
         <semanticElements xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//Material/conductivity"/>
         <ownedStyle xmi:type="diagram:BundledImage" uid="_J2txkpUqEeudooziRGqkJA" labelAlignment="LEFT" description="_J2qHNJUqEeudooziRGqkJA">
diff --git a/de.hftstuttgart.buildingphysics/model/buildingphysics.ecore b/de.hftstuttgart.buildingphysics/model/buildingphysics.ecore
index 6ab9fcb..1fc2690 100644
--- a/de.hftstuttgart.buildingphysics/model/buildingphysics.ecore
+++ b/de.hftstuttgart.buildingphysics/model/buildingphysics.ecore
@@ -16,19 +16,23 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="uValue" lowerBound="1"
         eType="ecore:EDataType ../../de.hftstuttgart.cityunits.model/model/Quantities.ecore#//QuantityDouble"
-        defaultValueLiteral="W/(m²·K)"/>
+        defaultValueLiteral="W/(m²*K)"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="gValue" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="coefficient between 0.0 (window with no solar energy transmittance) and 1.0 (full transmittance of all solar radiation)"/>
+      </eAnnotations>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="glazingNumber" lowerBound="1"
         eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="1"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="frameRatio" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="In % (between 0 and 100)"/>
+        <details key="documentation" value="fraction between 0.0 and 1.0"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="lifeCycle" eType="#//LifeCycle"
-        containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="lifeCycle" unique="false"
+        lowerBound="1" eType="#//LifeCycle" containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Catalog" abstract="true">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
@@ -49,21 +53,23 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Material">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"
         iD="true"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="density" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+        eType="ecore:EDataType ../../de.hftstuttgart.cityunits.model/model/Quantities.ecore#//QuantityDouble"
+        defaultValueLiteral="kg/m³"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="heatCapacity" lowerBound="1"
         eType="ecore:EDataType ../../de.hftstuttgart.cityunits.model/model/Quantities.ecore#//QuantityDouble"
         defaultValueLiteral="J/K"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="conductivity" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+        eType="ecore:EDataType ../../de.hftstuttgart.cityunits.model/model/Quantities.ecore#//QuantityDouble"
+        defaultValueLiteral="W/(m*K)"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="LifeCycle">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="embodiedEnergy" lowerBound="1"
         eType="ecore:EDataType ../../de.hftstuttgart.cityunits.model/model/Quantities.ecore#//QuantityDouble"
-        defaultValueLiteral="kWh"/>
+        defaultValueLiteral="kW*h"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="embodiedCarbon" lowerBound="1"
         eType="ecore:EDataType ../../de.hftstuttgart.cityunits.model/model/Quantities.ecore#//QuantityDouble"
         defaultValueLiteral="kg"/>
@@ -71,7 +77,7 @@
         lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="disposalEnergy" lowerBound="1"
         eType="ecore:EDataType ../../de.hftstuttgart.cityunits.model/model/Quantities.ecore#//QuantityDouble"
-        defaultValueLiteral="kWh"/>
+        defaultValueLiteral="kW*h"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="disposalCarbon" lowerBound="1"
         eType="ecore:EDataType ../../de.hftstuttgart.cityunits.model/model/Quantities.ecore#//QuantityDouble"
         defaultValueLiteral="kg"/>
diff --git a/de.hftstuttgart.buildingphysics/model/buildingphysics.genmodel b/de.hftstuttgart.buildingphysics/model/buildingphysics.genmodel
index dbaa2cc..23d0f9f 100644
--- a/de.hftstuttgart.buildingphysics/model/buildingphysics.genmodel
+++ b/de.hftstuttgart.buildingphysics/model/buildingphysics.genmodel
@@ -23,10 +23,12 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute buildingphysics.ecore#//WindowType/gValue"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute buildingphysics.ecore#//WindowType/glazingNumber"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute buildingphysics.ecore#//WindowType/frameRatio"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference buildingphysics.ecore#//WindowType/lifeCycle"
+          suppressedUnsetVisibility="true"/>
     </genClasses>
     <genClasses ecoreClass="buildingphysics.ecore#//Catalog">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute buildingphysics.ecore#//Catalog/name"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute buildingphysics.ecore#//Catalog/description"/>
+      <genFeatures createChild="false" propertyMultiLine="true" ecoreFeature="ecore:EAttribute buildingphysics.ecore#//Catalog/description"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute buildingphysics.ecore#//Catalog/source"/>
     </genClasses>
     <genClasses ecoreClass="buildingphysics.ecore#//WindowCatalog">
@@ -46,5 +48,13 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute buildingphysics.ecore#//Material/heatCapacity"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute buildingphysics.ecore#//Material/conductivity"/>
     </genClasses>
+    <genClasses ecoreClass="buildingphysics.ecore#//LifeCycle">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute buildingphysics.ecore#//LifeCycle/embodiedEnergy"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute buildingphysics.ecore#//LifeCycle/embodiedCarbon"/>
+      <genFeatures createChild="false" propertyMultiLine="true" ecoreFeature="ecore:EAttribute buildingphysics.ecore#//LifeCycle/constructionDescription"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute buildingphysics.ecore#//LifeCycle/disposalEnergy"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute buildingphysics.ecore#//LifeCycle/disposalCarbon"/>
+      <genFeatures createChild="false" propertyMultiLine="true" ecoreFeature="ecore:EAttribute buildingphysics.ecore#//LifeCycle/disposalDescription"/>
+    </genClasses>
   </genPackages>
 </genmodel:GenModel>
diff --git a/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/LifeCycle.java b/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/LifeCycle.java
index 1dd86a6..81a0a36 100644
--- a/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/LifeCycle.java
+++ b/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/LifeCycle.java
@@ -30,13 +30,13 @@ import org.eclipse.emf.ecore.EObject;
 public interface LifeCycle extends EObject {
 	/**
 	 * Returns the value of the '<em><b>Embodied Energy</b></em>' attribute.
-	 * The default value is <code>"kWh"</code>.
+	 * The default value is <code>"kW*h"</code>.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Embodied Energy</em>' attribute.
 	 * @see #setEmbodiedEnergy(NullableQuantity)
 	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getLifeCycle_EmbodiedEnergy()
-	 * @model default="kWh" dataType="de.hftstuttgart.cityunits.model.quantities.QuantityDouble" required="true"
+	 * @model default="kW*h" dataType="de.hftstuttgart.cityunits.model.quantities.QuantityDouble" required="true"
 	 * @generated
 	 */
 	NullableQuantity getEmbodiedEnergy();
@@ -98,13 +98,13 @@ public interface LifeCycle extends EObject {
 
 	/**
 	 * Returns the value of the '<em><b>Disposal Energy</b></em>' attribute.
-	 * The default value is <code>"kWh"</code>.
+	 * The default value is <code>"kW*h"</code>.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Disposal Energy</em>' attribute.
 	 * @see #setDisposalEnergy(NullableQuantity)
 	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getLifeCycle_DisposalEnergy()
-	 * @model default="kWh" dataType="de.hftstuttgart.cityunits.model.quantities.QuantityDouble" required="true"
+	 * @model default="kW*h" dataType="de.hftstuttgart.cityunits.model.quantities.QuantityDouble" required="true"
 	 * @generated
 	 */
 	NullableQuantity getDisposalEnergy();
diff --git a/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/Material.java b/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/Material.java
index 604c87c..7d9bfe3 100644
--- a/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/Material.java
+++ b/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/Material.java
@@ -32,12 +32,12 @@ public interface Material extends EObject {
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Id</em>' attribute.
-	 * @see #setId(int)
+	 * @see #setId(long)
 	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getMaterial_Id()
 	 * @model id="true" required="true"
 	 * @generated
 	 */
-	int getId();
+	long getId();
 
 	/**
 	 * Sets the value of the '{@link de.hftstuttgart.buildingphysics.Material#getId <em>Id</em>}' attribute.
@@ -47,7 +47,7 @@ public interface Material extends EObject {
 	 * @see #getId()
 	 * @generated
 	 */
-	void setId(int value);
+	void setId(long value);
 
 	/**
 	 * Returns the value of the '<em><b>Name</b></em>' attribute.
@@ -73,15 +73,16 @@ public interface Material extends EObject {
 
 	/**
 	 * Returns the value of the '<em><b>Density</b></em>' attribute.
+	 * The default value is <code>"kg/m\u00b3"</code>.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Density</em>' attribute.
-	 * @see #setDensity(double)
+	 * @see #setDensity(NullableQuantity)
 	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getMaterial_Density()
-	 * @model required="true"
+	 * @model default="kg/m\u00b3" dataType="de.hftstuttgart.cityunits.model.quantities.QuantityDouble" required="true"
 	 * @generated
 	 */
-	double getDensity();
+	NullableQuantity getDensity();
 
 	/**
 	 * Sets the value of the '{@link de.hftstuttgart.buildingphysics.Material#getDensity <em>Density</em>}' attribute.
@@ -91,7 +92,7 @@ public interface Material extends EObject {
 	 * @see #getDensity()
 	 * @generated
 	 */
-	void setDensity(double value);
+	void setDensity(NullableQuantity value);
 
 	/**
 	 * Returns the value of the '<em><b>Heat Capacity</b></em>' attribute.
@@ -118,15 +119,16 @@ public interface Material extends EObject {
 
 	/**
 	 * Returns the value of the '<em><b>Conductivity</b></em>' attribute.
+	 * The default value is <code>"W/(m*K)"</code>.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Conductivity</em>' attribute.
-	 * @see #setConductivity(double)
+	 * @see #setConductivity(NullableQuantity)
 	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getMaterial_Conductivity()
-	 * @model required="true"
+	 * @model default="W/(m*K)" dataType="de.hftstuttgart.cityunits.model.quantities.QuantityDouble" required="true"
 	 * @generated
 	 */
-	double getConductivity();
+	NullableQuantity getConductivity();
 
 	/**
 	 * Sets the value of the '{@link de.hftstuttgart.buildingphysics.Material#getConductivity <em>Conductivity</em>}' attribute.
@@ -136,6 +138,6 @@ public interface Material extends EObject {
 	 * @see #getConductivity()
 	 * @generated
 	 */
-	void setConductivity(double value);
+	void setConductivity(NullableQuantity value);
 
 } // Material
diff --git a/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/WindowType.java b/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/WindowType.java
index 4f48494..63ab6fc 100644
--- a/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/WindowType.java
+++ b/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/WindowType.java
@@ -74,13 +74,13 @@ public interface WindowType extends EObject {
 
 	/**
 	 * Returns the value of the '<em><b>UValue</b></em>' attribute.
-	 * The default value is <code>"W/(m\u00b2\u00b7K)"</code>.
+	 * The default value is <code>"W/(m\u00b2*K)"</code>.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>UValue</em>' attribute.
 	 * @see #setUValue(NullableQuantity)
 	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getWindowType_UValue()
-	 * @model default="W/(m\u00b2\u00b7K)" dataType="de.hftstuttgart.cityunits.model.quantities.QuantityDouble" required="true"
+	 * @model default="W/(m\u00b2*K)" dataType="de.hftstuttgart.cityunits.model.quantities.QuantityDouble" required="true"
 	 * @generated
 	 */
 	NullableQuantity getUValue();
@@ -99,6 +99,9 @@ public interface WindowType extends EObject {
 	 * Returns the value of the '<em><b>GValue</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * coefficient between 0.0 (window with no solar energy transmittance) and 1.0 (full transmittance of all solar radiation)
+	 * <!-- end-model-doc -->
 	 * @return the value of the '<em>GValue</em>' attribute.
 	 * @see #setGValue(double)
 	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getWindowType_GValue()
@@ -145,15 +148,15 @@ public interface WindowType extends EObject {
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * <!-- begin-model-doc -->
-	 * In % (between 0 and 100)
+	 * fraction between 0.0 and 1.0
 	 * <!-- end-model-doc -->
 	 * @return the value of the '<em>Frame Ratio</em>' attribute.
-	 * @see #setFrameRatio(int)
+	 * @see #setFrameRatio(double)
 	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getWindowType_FrameRatio()
 	 * @model required="true"
 	 * @generated
 	 */
-	int getFrameRatio();
+	double getFrameRatio();
 
 	/**
 	 * Sets the value of the '{@link de.hftstuttgart.buildingphysics.WindowType#getFrameRatio <em>Frame Ratio</em>}' attribute.
@@ -163,7 +166,7 @@ public interface WindowType extends EObject {
 	 * @see #getFrameRatio()
 	 * @generated
 	 */
-	void setFrameRatio(int value);
+	void setFrameRatio(double value);
 
 	/**
 	 * Returns the value of the '<em><b>Life Cycle</b></em>' containment reference.
@@ -172,7 +175,7 @@ public interface WindowType extends EObject {
 	 * @return the value of the '<em>Life Cycle</em>' containment reference.
 	 * @see #setLifeCycle(LifeCycle)
 	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getWindowType_LifeCycle()
-	 * @model containment="true"
+	 * @model containment="true" required="true" suppressedUnsetVisibility="true"
 	 * @generated
 	 */
 	LifeCycle getLifeCycle();
diff --git a/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/impl/BuildingPhysicsPackageImpl.java b/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/impl/BuildingPhysicsPackageImpl.java
index 205c3f8..ec62376 100644
--- a/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/impl/BuildingPhysicsPackageImpl.java
+++ b/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/impl/BuildingPhysicsPackageImpl.java
@@ -642,19 +642,20 @@ public class BuildingPhysicsPackageImpl extends EPackageImpl implements Building
 				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getWindowType_Name(), ecorePackage.getEString(), "name", null, 1, 1, WindowType.class,
 				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getWindowType_UValue(), theQuantitiesPackage.getQuantityDouble(), "uValue", "W/(m\u00b2\u00b7K)",
-				1, 1, WindowType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+		initEAttribute(getWindowType_UValue(), theQuantitiesPackage.getQuantityDouble(), "uValue", "W/(m\u00b2*K)", 1,
+				1, WindowType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
 				!IS_DERIVED, IS_ORDERED);
 		initEAttribute(getWindowType_GValue(), ecorePackage.getEDouble(), "gValue", null, 1, 1, WindowType.class,
 				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getWindowType_GlazingNumber(), ecorePackage.getEInt(), "glazingNumber", "1", 1, 1,
 				WindowType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
 				!IS_DERIVED, IS_ORDERED);
-		initEAttribute(getWindowType_FrameRatio(), ecorePackage.getEInt(), "frameRatio", null, 1, 1, WindowType.class,
-				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getWindowType_LifeCycle(), this.getLifeCycle(), null, "lifeCycle", null, 0, 1, WindowType.class,
+		initEAttribute(getWindowType_FrameRatio(), ecorePackage.getEDouble(), "frameRatio", null, 1, 1,
+				WindowType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEReference(getWindowType_LifeCycle(), this.getLifeCycle(), null, "lifeCycle", null, 1, 1, WindowType.class,
 				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
-				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+				!IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(catalogEClass, Catalog.class, "Catalog", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getCatalog_Name(), ecorePackage.getEString(), "name", null, 1, 1, Catalog.class, !IS_TRANSIENT,
@@ -687,33 +688,34 @@ public class BuildingPhysicsPackageImpl extends EPackageImpl implements Building
 
 		initEClass(materialEClass, Material.class, "Material", !IS_ABSTRACT, !IS_INTERFACE,
 				IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getMaterial_Id(), ecorePackage.getEInt(), "id", null, 1, 1, Material.class, !IS_TRANSIENT,
+		initEAttribute(getMaterial_Id(), ecorePackage.getELong(), "id", null, 1, 1, Material.class, !IS_TRANSIENT,
 				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getMaterial_Name(), ecorePackage.getEString(), "name", null, 1, 1, Material.class, !IS_TRANSIENT,
 				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getMaterial_Density(), ecorePackage.getEDouble(), "density", null, 1, 1, Material.class,
-				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getMaterial_Density(), theQuantitiesPackage.getQuantityDouble(), "density", "kg/m\u00b3", 1, 1,
+				Material.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
 		initEAttribute(getMaterial_HeatCapacity(), theQuantitiesPackage.getQuantityDouble(), "heatCapacity", "J/K", 1,
 				1, Material.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
 				!IS_DERIVED, IS_ORDERED);
-		initEAttribute(getMaterial_Conductivity(), ecorePackage.getEDouble(), "conductivity", null, 1, 1,
-				Material.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+		initEAttribute(getMaterial_Conductivity(), theQuantitiesPackage.getQuantityDouble(), "conductivity", "W/(m*K)",
+				1, 1, Material.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
 				!IS_DERIVED, IS_ORDERED);
 
 		initEClass(lifeCycleEClass, LifeCycle.class, "LifeCycle", !IS_ABSTRACT, !IS_INTERFACE,
 				IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getLifeCycle_EmbodiedEnergy(), theQuantitiesPackage.getQuantityDouble(), "embodiedEnergy", "kWh",
-				1, 1, LifeCycle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
-				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getLifeCycle_EmbodiedEnergy(), theQuantitiesPackage.getQuantityDouble(), "embodiedEnergy",
+				"kW*h", 1, 1, LifeCycle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getLifeCycle_EmbodiedCarbon(), theQuantitiesPackage.getQuantityDouble(), "embodiedCarbon", "kg",
 				1, 1, LifeCycle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
 				!IS_DERIVED, IS_ORDERED);
 		initEAttribute(getLifeCycle_ConstructionDescription(), ecorePackage.getEString(), "constructionDescription",
 				null, 1, 1, LifeCycle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
 				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getLifeCycle_DisposalEnergy(), theQuantitiesPackage.getQuantityDouble(), "disposalEnergy", "kWh",
-				1, 1, LifeCycle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
-				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getLifeCycle_DisposalEnergy(), theQuantitiesPackage.getQuantityDouble(), "disposalEnergy",
+				"kW*h", 1, 1, LifeCycle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getLifeCycle_DisposalCarbon(), theQuantitiesPackage.getQuantityDouble(), "disposalCarbon", "kg",
 				1, 1, LifeCycle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
 				!IS_DERIVED, IS_ORDERED);
diff --git a/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/impl/LifeCycleImpl.java b/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/impl/LifeCycleImpl.java
index 73ed45e..a086150 100644
--- a/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/impl/LifeCycleImpl.java
+++ b/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/impl/LifeCycleImpl.java
@@ -4,16 +4,13 @@ package de.hftstuttgart.buildingphysics.impl;
 
 import de.hftstuttgart.buildingphysics.BuildingPhysicsPackage;
 import de.hftstuttgart.buildingphysics.LifeCycle;
-
 import de.hftstuttgart.cityunits.model.NullableQuantity;
 
 import de.hftstuttgart.cityunits.model.quantities.QuantitiesFactory;
 import de.hftstuttgart.cityunits.model.quantities.QuantitiesPackage;
 
 import org.eclipse.emf.common.notify.Notification;
-
 import org.eclipse.emf.ecore.EClass;
-
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
 
@@ -45,7 +42,7 @@ public class LifeCycleImpl extends MinimalEObjectImpl.Container implements LifeC
 	 * @ordered
 	 */
 	protected static final NullableQuantity EMBODIED_ENERGY_EDEFAULT = (NullableQuantity) QuantitiesFactory.eINSTANCE
-			.createFromString(QuantitiesPackage.eINSTANCE.getQuantityDouble(), "kWh");
+			.createFromString(QuantitiesPackage.eINSTANCE.getQuantityDouble(), "kW*h");
 
 	/**
 	 * The cached value of the '{@link #getEmbodiedEnergy() <em>Embodied Energy</em>}' attribute.
@@ -107,7 +104,7 @@ public class LifeCycleImpl extends MinimalEObjectImpl.Container implements LifeC
 	 * @ordered
 	 */
 	protected static final NullableQuantity DISPOSAL_ENERGY_EDEFAULT = (NullableQuantity) QuantitiesFactory.eINSTANCE
-			.createFromString(QuantitiesPackage.eINSTANCE.getQuantityDouble(), "kWh");
+			.createFromString(QuantitiesPackage.eINSTANCE.getQuantityDouble(), "kW*h");
 
 	/**
 	 * The cached value of the '{@link #getDisposalEnergy() <em>Disposal Energy</em>}' attribute.
diff --git a/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/impl/MaterialImpl.java b/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/impl/MaterialImpl.java
index 09d4084..68275dc 100644
--- a/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/impl/MaterialImpl.java
+++ b/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/impl/MaterialImpl.java
@@ -43,7 +43,7 @@ public class MaterialImpl extends MinimalEObjectImpl.Container implements Materi
 	 * @generated
 	 * @ordered
 	 */
-	protected static final int ID_EDEFAULT = 0;
+	protected static final long ID_EDEFAULT = 0L;
 
 	/**
 	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
@@ -53,7 +53,7 @@ public class MaterialImpl extends MinimalEObjectImpl.Container implements Materi
 	 * @generated
 	 * @ordered
 	 */
-	protected int id = ID_EDEFAULT;
+	protected long id = ID_EDEFAULT;
 
 	/**
 	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
@@ -83,7 +83,8 @@ public class MaterialImpl extends MinimalEObjectImpl.Container implements Materi
 	 * @generated
 	 * @ordered
 	 */
-	protected static final double DENSITY_EDEFAULT = 0.0;
+	protected static final NullableQuantity DENSITY_EDEFAULT = (NullableQuantity) QuantitiesFactory.eINSTANCE
+			.createFromString(QuantitiesPackage.eINSTANCE.getQuantityDouble(), "kg/m\u00b3");
 
 	/**
 	 * The cached value of the '{@link #getDensity() <em>Density</em>}' attribute.
@@ -93,7 +94,7 @@ public class MaterialImpl extends MinimalEObjectImpl.Container implements Materi
 	 * @generated
 	 * @ordered
 	 */
-	protected double density = DENSITY_EDEFAULT;
+	protected NullableQuantity density = DENSITY_EDEFAULT;
 
 	/**
 	 * The default value of the '{@link #getHeatCapacity() <em>Heat Capacity</em>}' attribute.
@@ -124,7 +125,8 @@ public class MaterialImpl extends MinimalEObjectImpl.Container implements Materi
 	 * @generated
 	 * @ordered
 	 */
-	protected static final double CONDUCTIVITY_EDEFAULT = 0.0;
+	protected static final NullableQuantity CONDUCTIVITY_EDEFAULT = (NullableQuantity) QuantitiesFactory.eINSTANCE
+			.createFromString(QuantitiesPackage.eINSTANCE.getQuantityDouble(), "W/(m*K)");
 
 	/**
 	 * The cached value of the '{@link #getConductivity() <em>Conductivity</em>}' attribute.
@@ -134,7 +136,7 @@ public class MaterialImpl extends MinimalEObjectImpl.Container implements Materi
 	 * @generated
 	 * @ordered
 	 */
-	protected double conductivity = CONDUCTIVITY_EDEFAULT;
+	protected NullableQuantity conductivity = CONDUCTIVITY_EDEFAULT;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -161,7 +163,7 @@ public class MaterialImpl extends MinimalEObjectImpl.Container implements Materi
 	 * @generated
 	 */
 	@Override
-	public int getId() {
+	public long getId() {
 		return id;
 	}
 
@@ -171,8 +173,8 @@ public class MaterialImpl extends MinimalEObjectImpl.Container implements Materi
 	 * @generated
 	 */
 	@Override
-	public void setId(int newId) {
-		int oldId = id;
+	public void setId(long newId) {
+		long oldId = id;
 		id = newId;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, BuildingPhysicsPackage.MATERIAL__ID, oldId, id));
@@ -208,7 +210,7 @@ public class MaterialImpl extends MinimalEObjectImpl.Container implements Materi
 	 * @generated
 	 */
 	@Override
-	public double getDensity() {
+	public NullableQuantity getDensity() {
 		return density;
 	}
 
@@ -218,8 +220,8 @@ public class MaterialImpl extends MinimalEObjectImpl.Container implements Materi
 	 * @generated
 	 */
 	@Override
-	public void setDensity(double newDensity) {
-		double oldDensity = density;
+	public void setDensity(NullableQuantity newDensity) {
+		NullableQuantity oldDensity = density;
 		density = newDensity;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, BuildingPhysicsPackage.MATERIAL__DENSITY, oldDensity,
@@ -256,7 +258,7 @@ public class MaterialImpl extends MinimalEObjectImpl.Container implements Materi
 	 * @generated
 	 */
 	@Override
-	public double getConductivity() {
+	public NullableQuantity getConductivity() {
 		return conductivity;
 	}
 
@@ -266,8 +268,8 @@ public class MaterialImpl extends MinimalEObjectImpl.Container implements Materi
 	 * @generated
 	 */
 	@Override
-	public void setConductivity(double newConductivity) {
-		double oldConductivity = conductivity;
+	public void setConductivity(NullableQuantity newConductivity) {
+		NullableQuantity oldConductivity = conductivity;
 		conductivity = newConductivity;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, BuildingPhysicsPackage.MATERIAL__CONDUCTIVITY,
@@ -305,19 +307,19 @@ public class MaterialImpl extends MinimalEObjectImpl.Container implements Materi
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 		case BuildingPhysicsPackage.MATERIAL__ID:
-			setId((Integer) newValue);
+			setId((Long) newValue);
 			return;
 		case BuildingPhysicsPackage.MATERIAL__NAME:
 			setName((String) newValue);
 			return;
 		case BuildingPhysicsPackage.MATERIAL__DENSITY:
-			setDensity((Double) newValue);
+			setDensity((NullableQuantity) newValue);
 			return;
 		case BuildingPhysicsPackage.MATERIAL__HEAT_CAPACITY:
 			setHeatCapacity((NullableQuantity) newValue);
 			return;
 		case BuildingPhysicsPackage.MATERIAL__CONDUCTIVITY:
-			setConductivity((Double) newValue);
+			setConductivity((NullableQuantity) newValue);
 			return;
 		}
 		super.eSet(featureID, newValue);
@@ -363,11 +365,11 @@ public class MaterialImpl extends MinimalEObjectImpl.Container implements Materi
 		case BuildingPhysicsPackage.MATERIAL__NAME:
 			return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
 		case BuildingPhysicsPackage.MATERIAL__DENSITY:
-			return density != DENSITY_EDEFAULT;
+			return DENSITY_EDEFAULT == null ? density != null : !DENSITY_EDEFAULT.equals(density);
 		case BuildingPhysicsPackage.MATERIAL__HEAT_CAPACITY:
 			return HEAT_CAPACITY_EDEFAULT == null ? heatCapacity != null : !HEAT_CAPACITY_EDEFAULT.equals(heatCapacity);
 		case BuildingPhysicsPackage.MATERIAL__CONDUCTIVITY:
-			return conductivity != CONDUCTIVITY_EDEFAULT;
+			return CONDUCTIVITY_EDEFAULT == null ? conductivity != null : !CONDUCTIVITY_EDEFAULT.equals(conductivity);
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/impl/WindowTypeImpl.java b/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/impl/WindowTypeImpl.java
index 6414adc..64b931c 100644
--- a/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/impl/WindowTypeImpl.java
+++ b/de.hftstuttgart.buildingphysics/src/de/hftstuttgart/buildingphysics/impl/WindowTypeImpl.java
@@ -9,7 +9,6 @@ import de.hftstuttgart.cityunits.model.NullableQuantity;
 import de.hftstuttgart.cityunits.model.quantities.QuantitiesFactory;
 import de.hftstuttgart.cityunits.model.quantities.QuantitiesPackage;
 import org.eclipse.emf.common.notify.Notification;
-
 import org.eclipse.emf.common.notify.NotificationChain;
 import org.eclipse.emf.ecore.EClass;
 
@@ -86,7 +85,7 @@ public class WindowTypeImpl extends MinimalEObjectImpl.Container implements Wind
 	 * @ordered
 	 */
 	protected static final NullableQuantity UVALUE_EDEFAULT = (NullableQuantity) QuantitiesFactory.eINSTANCE
-			.createFromString(QuantitiesPackage.eINSTANCE.getQuantityDouble(), "W/(m\u00b2\u00b7K)");
+			.createFromString(QuantitiesPackage.eINSTANCE.getQuantityDouble(), "W/(m\u00b2*K)");
 
 	/**
 	 * The cached value of the '{@link #getUValue() <em>UValue</em>}' attribute.
@@ -146,7 +145,7 @@ public class WindowTypeImpl extends MinimalEObjectImpl.Container implements Wind
 	 * @generated
 	 * @ordered
 	 */
-	protected static final int FRAME_RATIO_EDEFAULT = 0;
+	protected static final double FRAME_RATIO_EDEFAULT = 0.0;
 
 	/**
 	 * The cached value of the '{@link #getFrameRatio() <em>Frame Ratio</em>}' attribute.
@@ -156,7 +155,7 @@ public class WindowTypeImpl extends MinimalEObjectImpl.Container implements Wind
 	 * @generated
 	 * @ordered
 	 */
-	protected int frameRatio = FRAME_RATIO_EDEFAULT;
+	protected double frameRatio = FRAME_RATIO_EDEFAULT;
 
 	/**
 	 * The cached value of the '{@link #getLifeCycle() <em>Life Cycle</em>}' containment reference.
@@ -312,7 +311,7 @@ public class WindowTypeImpl extends MinimalEObjectImpl.Container implements Wind
 	 * @generated
 	 */
 	@Override
-	public int getFrameRatio() {
+	public double getFrameRatio() {
 		return frameRatio;
 	}
 
@@ -322,8 +321,8 @@ public class WindowTypeImpl extends MinimalEObjectImpl.Container implements Wind
 	 * @generated
 	 */
 	@Override
-	public void setFrameRatio(int newFrameRatio) {
-		int oldFrameRatio = frameRatio;
+	public void setFrameRatio(double newFrameRatio) {
+		double oldFrameRatio = frameRatio;
 		frameRatio = newFrameRatio;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, BuildingPhysicsPackage.WINDOW_TYPE__FRAME_RATIO,
@@ -446,7 +445,7 @@ public class WindowTypeImpl extends MinimalEObjectImpl.Container implements Wind
 			setGlazingNumber((Integer) newValue);
 			return;
 		case BuildingPhysicsPackage.WINDOW_TYPE__FRAME_RATIO:
-			setFrameRatio((Integer) newValue);
+			setFrameRatio((Double) newValue);
 			return;
 		case BuildingPhysicsPackage.WINDOW_TYPE__LIFE_CYCLE:
 			setLifeCycle((LifeCycle) newValue);
-- 
GitLab