From 907b36b217360ff86fae89fa9be7876273b5b6b2 Mon Sep 17 00:00:00 2001
From: Kai Brassel <mail@khbrassel.de>
Date: Wed, 11 Nov 2020 16:33:01 +0100
Subject: [PATCH] Catalogs modeled for window types and materials plus
 generated classes

---
 .../.classpath                                |    7 +
 de.hftstuttgart.buildingphysics.edit/.project |   28 +
 .../META-INF/MANIFEST.MF                      |   16 +
 .../build.properties                          |   10 +
 .../full/obj16/BuildingPhysicsCatalog.gif     |  Bin 0 -> 129 bytes
 .../icons/full/obj16/Catalog.gif              |  Bin 0 -> 129 bytes
 .../icons/full/obj16/Material.gif             |  Bin 0 -> 129 bytes
 .../icons/full/obj16/MaterialCatalog.gif      |  Bin 0 -> 129 bytes
 .../icons/full/obj16/MaterialCategory.gif     |  Bin 0 -> 129 bytes
 .../icons/full/obj16/WindowCatalog.gif        |  Bin 0 -> 129 bytes
 .../icons/full/obj16/WindowType.gif           |  Bin 0 -> 129 bytes
 .../plugin.properties                         |   48 +
 .../plugin.xml                                |   22 +
 .../BuildingPhysicsCatalogItemProvider.java   |  199 +++
 .../provider/BuildingPhysicsEditPlugin.java   |   87 ++
 ...dingPhysicsItemProviderAdapterFactory.java |  326 +++++
 .../provider/CatalogItemProvider.java         |  188 +++
 .../provider/MaterialCatalogItemProvider.java |  151 +++
 .../MaterialCategoryItemProvider.java         |  192 +++
 .../provider/MaterialItemProvider.java        |  224 ++++
 .../provider/WindowCatalogItemProvider.java   |  150 +++
 .../provider/WindowTypeItemProvider.java      |  243 ++++
 de.hftstuttgart.buildingphysics/.classpath    |    3 +-
 .../META-INF/MANIFEST.MF                      |   13 +-
 .../build.properties                          |   10 +
 .../model/buildingphysics.aird                |  499 +++++++-
 .../model/buildingphysics.ecore               |   53 +-
 .../model/buildingphysics.genmodel            |   36 +-
 .../plugin.properties                         |    4 +
 de.hftstuttgart.buildingphysics/plugin.xml    |   17 +
 .../BuildingPhysicsCatalog.java               |   92 ++
 .../BuildingPhysicsFactory.java               |   87 ++
 .../BuildingPhysicsPackage.java               | 1062 +++++++++++++++++
 .../hftstuttgart/buildingphysics/Catalog.java |   92 ++
 .../buildingphysics/Material.java             |  138 +++
 .../buildingphysics/MaterialCatalog.java      |   36 +
 .../buildingphysics/MaterialCategory.java     |   61 +
 .../buildingphysics/WindowCatalog.java        |   36 +
 .../buildingphysics/WindowType.java           |  164 +++
 .../impl/BuildingPhysicsCatalogImpl.java      |  334 ++++++
 .../impl/BuildingPhysicsFactoryImpl.java      |  156 +++
 .../impl/BuildingPhysicsPackageImpl.java      |  568 +++++++++
 .../buildingphysics/impl/CatalogImpl.java     |  274 +++++
 .../impl/MaterialCatalogImpl.java             |  151 +++
 .../impl/MaterialCategoryImpl.java            |  225 ++++
 .../buildingphysics/impl/MaterialImpl.java    |  384 ++++++
 .../impl/WindowCatalogImpl.java               |  151 +++
 .../buildingphysics/impl/WindowTypeImpl.java  |  427 +++++++
 .../util/BuildingPhysicsAdapterFactory.java   |  233 ++++
 .../util/BuildingPhysicsSwitch.java           |  248 ++++
 50 files changed, 7416 insertions(+), 29 deletions(-)
 create mode 100644 de.hftstuttgart.buildingphysics.edit/.classpath
 create mode 100644 de.hftstuttgart.buildingphysics.edit/.project
 create mode 100644 de.hftstuttgart.buildingphysics.edit/META-INF/MANIFEST.MF
 create mode 100644 de.hftstuttgart.buildingphysics.edit/build.properties
 create mode 100644 de.hftstuttgart.buildingphysics.edit/icons/full/obj16/BuildingPhysicsCatalog.gif
 create mode 100644 de.hftstuttgart.buildingphysics.edit/icons/full/obj16/Catalog.gif
 create mode 100644 de.hftstuttgart.buildingphysics.edit/icons/full/obj16/Material.gif
 create mode 100644 de.hftstuttgart.buildingphysics.edit/icons/full/obj16/MaterialCatalog.gif
 create mode 100644 de.hftstuttgart.buildingphysics.edit/icons/full/obj16/MaterialCategory.gif
 create mode 100644 de.hftstuttgart.buildingphysics.edit/icons/full/obj16/WindowCatalog.gif
 create mode 100644 de.hftstuttgart.buildingphysics.edit/icons/full/obj16/WindowType.gif
 create mode 100644 de.hftstuttgart.buildingphysics.edit/plugin.properties
 create mode 100644 de.hftstuttgart.buildingphysics.edit/plugin.xml
 create mode 100644 de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/BuildingPhysicsCatalogItemProvider.java
 create mode 100644 de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/BuildingPhysicsEditPlugin.java
 create mode 100644 de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/BuildingPhysicsItemProviderAdapterFactory.java
 create mode 100644 de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/CatalogItemProvider.java
 create mode 100644 de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/MaterialCatalogItemProvider.java
 create mode 100644 de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/MaterialCategoryItemProvider.java
 create mode 100644 de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/MaterialItemProvider.java
 create mode 100644 de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/WindowCatalogItemProvider.java
 create mode 100644 de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/WindowTypeItemProvider.java
 create mode 100644 de.hftstuttgart.buildingphysics/build.properties
 create mode 100644 de.hftstuttgart.buildingphysics/plugin.properties
 create mode 100644 de.hftstuttgart.buildingphysics/plugin.xml
 create mode 100644 de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/BuildingPhysicsCatalog.java
 create mode 100644 de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/BuildingPhysicsFactory.java
 create mode 100644 de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/BuildingPhysicsPackage.java
 create mode 100644 de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/Catalog.java
 create mode 100644 de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/Material.java
 create mode 100644 de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/MaterialCatalog.java
 create mode 100644 de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/MaterialCategory.java
 create mode 100644 de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/WindowCatalog.java
 create mode 100644 de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/WindowType.java
 create mode 100644 de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/BuildingPhysicsCatalogImpl.java
 create mode 100644 de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/BuildingPhysicsFactoryImpl.java
 create mode 100644 de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/BuildingPhysicsPackageImpl.java
 create mode 100644 de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/CatalogImpl.java
 create mode 100644 de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/MaterialCatalogImpl.java
 create mode 100644 de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/MaterialCategoryImpl.java
 create mode 100644 de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/MaterialImpl.java
 create mode 100644 de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/WindowCatalogImpl.java
 create mode 100644 de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/WindowTypeImpl.java
 create mode 100644 de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/util/BuildingPhysicsAdapterFactory.java
 create mode 100644 de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/util/BuildingPhysicsSwitch.java

diff --git a/de.hftstuttgart.buildingphysics.edit/.classpath b/de.hftstuttgart.buildingphysics.edit/.classpath
new file mode 100644
index 0000000..8e001f7
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics.edit/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src-gen"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/de.hftstuttgart.buildingphysics.edit/.project b/de.hftstuttgart.buildingphysics.edit/.project
new file mode 100644
index 0000000..fcb86c8
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics.edit/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>de.hftstuttgart.buildingphysics.edit</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+</projectDescription>
diff --git a/de.hftstuttgart.buildingphysics.edit/META-INF/MANIFEST.MF b/de.hftstuttgart.buildingphysics.edit/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..aa5f549
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics.edit/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: de.hftstuttgart.buildingphysics.edit;singleton:=true
+Automatic-Module-Name: de.hftstuttgart.buildingphysics.edit
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: de.hftstuttgart.buildingphysics.provider.BuildingPhysicsEditPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: de.hftstuttgart.buildingphysics.provider
+Require-Bundle: org.eclipse.core.runtime,
+ de.hftstuttgart.buildingphysics;visibility:=reexport,
+ org.eclipse.emf.edit;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/de.hftstuttgart.buildingphysics.edit/build.properties b/de.hftstuttgart.buildingphysics.edit/build.properties
new file mode 100644
index 0000000..a3c4e32
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics.edit/build.properties
@@ -0,0 +1,10 @@
+#
+
+bin.includes = .,\
+               icons/,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties
+jars.compile.order = .
+source.. = src-gen/
+output.. = bin/
diff --git a/de.hftstuttgart.buildingphysics.edit/icons/full/obj16/BuildingPhysicsCatalog.gif b/de.hftstuttgart.buildingphysics.edit/icons/full/obj16/BuildingPhysicsCatalog.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c3370c7ddd5e0817a59de6fd45ad0993b52abe28
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nk%c?77*~b0#hA
zfP;hLPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f
W@}8BN{JP5-JKc^<6cT1+um%9wDljtu

literal 0
HcmV?d00001

diff --git a/de.hftstuttgart.buildingphysics.edit/icons/full/obj16/Catalog.gif b/de.hftstuttgart.buildingphysics.edit/icons/full/obj16/Catalog.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cb1755a712505aeaaa447d9b1cc5940e602f87b6
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH;<LW5GR&
zKUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^%6nF7
S^6M^V>~uRaQAn7P!5RSBPcTCO

literal 0
HcmV?d00001

diff --git a/de.hftstuttgart.buildingphysics.edit/icons/full/obj16/Material.gif b/de.hftstuttgart.buildingphysics.edit/icons/full/obj16/Material.gif
new file mode 100644
index 0000000000000000000000000000000000000000..afb82ea48a50d3fb875ce03cf0ec154e51c97cb7
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nqz4G#%>+UQ=w@
z7OA87lZBCifs;W8q!VNY1B;%)Nzc`LEna{5ro#WQ&~>{h>#dXouLTRg+UR|prgqh=
Vyl15*zwUCzPPZcyg@hRytO10rFBSj*

literal 0
HcmV?d00001

diff --git a/de.hftstuttgart.buildingphysics.edit/icons/full/obj16/MaterialCatalog.gif b/de.hftstuttgart.buildingphysics.edit/icons/full/obj16/MaterialCatalog.gif
new file mode 100644
index 0000000000000000000000000000000000000000..05dc74ad5da0d7b040b29537d5b24f2b120b11d5
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH>`4RXR90
zDE?$&WMJTA&;jWLnZdxKXK>PU^<InDU%sjEKP+_JZpwNqCBbXK!ml=ZAE&8ZH7oB~
TsmZUqoUzmG$V4GwMh0sDy9qDP

literal 0
HcmV?d00001

diff --git a/de.hftstuttgart.buildingphysics.edit/icons/full/obj16/MaterialCategory.gif b/de.hftstuttgart.buildingphysics.edit/icons/full/obj16/MaterialCategory.gif
new file mode 100644
index 0000000000000000000000000000000000000000..338fb8d9a728b682e398849d2038959d01b4e0f2
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Np<getmQF=>7Tg
zFI845{$ycfVBloX0qF#p!N8(taME-2UW?aXzNzp(EOgy&%6cm$!E3?7uQqxgr>R{v
WEALsU$*;SdvD59yL?K~D25SIvEHXv_

literal 0
HcmV?d00001

diff --git a/de.hftstuttgart.buildingphysics.edit/icons/full/obj16/WindowCatalog.gif b/de.hftstuttgart.buildingphysics.edit/icons/full/obj16/WindowCatalog.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9250fecbffd185d174d53f6b7ea979f63ce222d2
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|NqyT)*K7&Sz}q;
zrW2|7lZBCifs;W8q!VNY1B;%)Nzc`LEna{5ro#WQ&~>{h>#dXouLTRg+UR|prgqh=
Vyl15*zwUCzPPZcyg@hRytO0}LFBSj*

literal 0
HcmV?d00001

diff --git a/de.hftstuttgart.buildingphysics.edit/icons/full/obj16/WindowType.gif b/de.hftstuttgart.buildingphysics.edit/icons/full/obj16/WindowType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..30f0c48da8d4450f7e94a696c4de0a7cc41aa728
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH;<LW5L0S
zKUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^%6nF7
S^6M^V>~uRaQAn7P!5RR`@-PYj

literal 0
HcmV?d00001

diff --git a/de.hftstuttgart.buildingphysics.edit/plugin.properties b/de.hftstuttgart.buildingphysics.edit/plugin.properties
new file mode 100644
index 0000000..1dbf52b
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics.edit/plugin.properties
@@ -0,0 +1,48 @@
+#
+
+pluginName = de.hftstuttgart.buildingphysics Edit Support
+providerName = www.example.org
+
+_UI_CreateChild_text = {0}
+_UI_CreateChild_text2 = {1} {0}
+_UI_CreateChild_text3 = {1}
+_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
+_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
+_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
+
+_UI_PropertyDescriptor_description = The {0} of the {1}
+
+_UI_BuildingPhysicsCatalog_type = Catalog
+_UI_WindowType_type = Window Type
+_UI_Catalog_type = Catalog
+_UI_WindowCatalog_type = Window Catalog
+_UI_MaterialCatalog_type = Material Catalog
+_UI_MaterialCategory_type = Material Category
+_UI_Material_type = Material
+_UI_Unknown_type = Object
+
+_UI_Unknown_datatype= Value
+
+_UI_BuildingPhysicsCatalog_author_feature = Author
+_UI_BuildingPhysicsCatalog_windowCatalog_feature = Window Catalog
+_UI_BuildingPhysicsCatalog_materialCatalog_feature = Material Catalog
+_UI_WindowType_id_feature = Id
+_UI_WindowType_name_feature = Name
+_UI_WindowType_uValue_feature = UValue
+_UI_WindowType_gValue_feature = GValue
+_UI_WindowType_glazingNumber_feature = Glazing Number
+_UI_WindowType_frameRatio_feature = Frame Ratio
+_UI_Catalog_name_feature = Name
+_UI_Catalog_description_feature = Description
+_UI_Catalog_source_feature = Source
+_UI_WindowCatalog_windowTypes_feature = Window Types
+_UI_MaterialCatalog_materialCategories_feature = Material Categories
+_UI_MaterialCategory_material_feature = Material
+_UI_MaterialCategory_name_feature = Name
+_UI_Material_id_feature = Id
+_UI_Material_name_feature = Name
+_UI_Material_density_feature = Density
+_UI_Material_heatCapacity_feature = Heat Capacity
+_UI_Material_conductivity_feature = Conductivity
+_UI_Unknown_feature = Unspecified
+
diff --git a/de.hftstuttgart.buildingphysics.edit/plugin.xml b/de.hftstuttgart.buildingphysics.edit/plugin.xml
new file mode 100644
index 0000000..c09744c
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics.edit/plugin.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+      <!-- @generated buildingphysics -->
+      <factory
+            uri="http://www.hftstuttgart.de/buildingphysics"
+            class="de.hftstuttgart.buildingphysics.provider.BuildingPhysicsItemProviderAdapterFactory"
+            supportedTypes=
+              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+               org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+               org.eclipse.emf.edit.provider.ITreeItemContentProvider
+               org.eclipse.emf.edit.provider.IItemLabelProvider
+               org.eclipse.emf.edit.provider.IItemPropertySource"/>
+   </extension>
+
+</plugin>
diff --git a/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/BuildingPhysicsCatalogItemProvider.java b/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/BuildingPhysicsCatalogItemProvider.java
new file mode 100644
index 0000000..5668cfd
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/BuildingPhysicsCatalogItemProvider.java
@@ -0,0 +1,199 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics.provider;
+
+import de.hftstuttgart.buildingphysics.BuildingPhysicsCatalog;
+import de.hftstuttgart.buildingphysics.BuildingPhysicsFactory;
+import de.hftstuttgart.buildingphysics.BuildingPhysicsPackage;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link de.hftstuttgart.buildingphysics.BuildingPhysicsCatalog} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BuildingPhysicsCatalogItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+		IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BuildingPhysicsCatalogItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addAuthorPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Author feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addAuthorPropertyDescriptor(Object object) {
+		itemPropertyDescriptors
+				.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+						getResourceLocator(), getString("_UI_BuildingPhysicsCatalog_author_feature"),
+						getString("_UI_PropertyDescriptor_description", "_UI_BuildingPhysicsCatalog_author_feature",
+								"_UI_BuildingPhysicsCatalog_type"),
+						BuildingPhysicsPackage.Literals.BUILDING_PHYSICS_CATALOG__AUTHOR, true, false, false,
+						ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(BuildingPhysicsPackage.Literals.BUILDING_PHYSICS_CATALOG__WINDOW_CATALOG);
+			childrenFeatures.add(BuildingPhysicsPackage.Literals.BUILDING_PHYSICS_CATALOG__MATERIAL_CATALOG);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns BuildingPhysicsCatalog.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/BuildingPhysicsCatalog"));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected boolean shouldComposeCreationImage() {
+		return true;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((BuildingPhysicsCatalog) object).getAuthor();
+		return label == null || label.length() == 0 ? getString("_UI_BuildingPhysicsCatalog_type")
+				: getString("_UI_BuildingPhysicsCatalog_type") + " " + label;
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(BuildingPhysicsCatalog.class)) {
+		case BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__AUTHOR:
+			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+			return;
+		case BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__WINDOW_CATALOG:
+		case BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__MATERIAL_CATALOG:
+			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+			return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors
+				.add(createChildParameter(BuildingPhysicsPackage.Literals.BUILDING_PHYSICS_CATALOG__WINDOW_CATALOG,
+						BuildingPhysicsFactory.eINSTANCE.createWindowCatalog()));
+
+		newChildDescriptors
+				.add(createChildParameter(BuildingPhysicsPackage.Literals.BUILDING_PHYSICS_CATALOG__MATERIAL_CATALOG,
+						BuildingPhysicsFactory.eINSTANCE.createMaterialCatalog()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return BuildingPhysicsEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/BuildingPhysicsEditPlugin.java b/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/BuildingPhysicsEditPlugin.java
new file mode 100644
index 0000000..f462d00
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/BuildingPhysicsEditPlugin.java
@@ -0,0 +1,87 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * This is the central singleton for the BuildingPhysics edit plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class BuildingPhysicsEditPlugin extends EMFPlugin {
+	/**
+	 * Keep track of the singleton.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final BuildingPhysicsEditPlugin INSTANCE = new BuildingPhysicsEditPlugin();
+
+	/**
+	 * Keep track of the singleton.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static Implementation plugin;
+
+	/**
+	 * Create the instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BuildingPhysicsEditPlugin() {
+		super(new ResourceLocator[] {});
+	}
+
+	/**
+	 * Returns the singleton instance of the Eclipse plugin.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the singleton instance.
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getPluginResourceLocator() {
+		return plugin;
+	}
+
+	/**
+	 * Returns the singleton instance of the Eclipse plugin.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the singleton instance.
+	 * @generated
+	 */
+	public static Implementation getPlugin() {
+		return plugin;
+	}
+
+	/**
+	 * The actual implementation of the Eclipse <b>Plugin</b>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static class Implementation extends EclipsePlugin {
+		/**
+		 * Creates an instance.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public Implementation() {
+			super();
+
+			// Remember the static instance.
+			//
+			plugin = this;
+		}
+	}
+
+}
diff --git a/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/BuildingPhysicsItemProviderAdapterFactory.java b/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/BuildingPhysicsItemProviderAdapterFactory.java
new file mode 100644
index 0000000..92350c0
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/BuildingPhysicsItemProviderAdapterFactory.java
@@ -0,0 +1,326 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics.provider;
+
+import de.hftstuttgart.buildingphysics.util.BuildingPhysicsAdapterFactory;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BuildingPhysicsItemProviderAdapterFactory extends BuildingPhysicsAdapterFactory
+		implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
+	/**
+	 * This keeps track of the root adapter factory that delegates to this adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory parentAdapterFactory;
+
+	/**
+	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+	/**
+	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+	/**
+	 * This constructs an instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BuildingPhysicsItemProviderAdapterFactory() {
+		supportedTypes.add(IEditingDomainItemProvider.class);
+		supportedTypes.add(IStructuredItemContentProvider.class);
+		supportedTypes.add(ITreeItemContentProvider.class);
+		supportedTypes.add(IItemLabelProvider.class);
+		supportedTypes.add(IItemPropertySource.class);
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link de.hftstuttgart.buildingphysics.BuildingPhysicsCatalog} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected BuildingPhysicsCatalogItemProvider buildingPhysicsCatalogItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link de.hftstuttgart.buildingphysics.BuildingPhysicsCatalog}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createBuildingPhysicsCatalogAdapter() {
+		if (buildingPhysicsCatalogItemProvider == null) {
+			buildingPhysicsCatalogItemProvider = new BuildingPhysicsCatalogItemProvider(this);
+		}
+
+		return buildingPhysicsCatalogItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link de.hftstuttgart.buildingphysics.WindowType} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected WindowTypeItemProvider windowTypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link de.hftstuttgart.buildingphysics.WindowType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createWindowTypeAdapter() {
+		if (windowTypeItemProvider == null) {
+			windowTypeItemProvider = new WindowTypeItemProvider(this);
+		}
+
+		return windowTypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link de.hftstuttgart.buildingphysics.WindowCatalog} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected WindowCatalogItemProvider windowCatalogItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link de.hftstuttgart.buildingphysics.WindowCatalog}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createWindowCatalogAdapter() {
+		if (windowCatalogItemProvider == null) {
+			windowCatalogItemProvider = new WindowCatalogItemProvider(this);
+		}
+
+		return windowCatalogItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link de.hftstuttgart.buildingphysics.MaterialCatalog} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MaterialCatalogItemProvider materialCatalogItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link de.hftstuttgart.buildingphysics.MaterialCatalog}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createMaterialCatalogAdapter() {
+		if (materialCatalogItemProvider == null) {
+			materialCatalogItemProvider = new MaterialCatalogItemProvider(this);
+		}
+
+		return materialCatalogItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link de.hftstuttgart.buildingphysics.MaterialCategory} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MaterialCategoryItemProvider materialCategoryItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link de.hftstuttgart.buildingphysics.MaterialCategory}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createMaterialCategoryAdapter() {
+		if (materialCategoryItemProvider == null) {
+			materialCategoryItemProvider = new MaterialCategoryItemProvider(this);
+		}
+
+		return materialCategoryItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link de.hftstuttgart.buildingphysics.Material} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MaterialItemProvider materialItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link de.hftstuttgart.buildingphysics.Material}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createMaterialAdapter() {
+		if (materialItemProvider == null) {
+			materialItemProvider = new MaterialItemProvider(this);
+		}
+
+		return materialItemProvider;
+	}
+
+	/**
+	 * This returns the root adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComposeableAdapterFactory getRootAdapterFactory() {
+		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+	}
+
+	/**
+	 * This sets the composed adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+		this.parentAdapterFactory = parentAdapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object type) {
+		return supportedTypes.contains(type) || super.isFactoryForType(type);
+	}
+
+	/**
+	 * This implementation substitutes the factory itself as the key for the adapter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter adapt(Notifier notifier, Object type) {
+		return super.adapt(notifier, this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object adapt(Object object, Object type) {
+		if (isFactoryForType(type)) {
+			Object adapter = super.adapt(object, type);
+			if (!(type instanceof Class<?>) || (((Class<?>) type).isInstance(adapter))) {
+				return adapter;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * This adds a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.addListener(notifyChangedListener);
+	}
+
+	/**
+	 * This removes a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.removeListener(notifyChangedListener);
+	}
+
+	/**
+	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void fireNotifyChanged(Notification notification) {
+		changeNotifier.fireNotifyChanged(notification);
+
+		if (parentAdapterFactory != null) {
+			parentAdapterFactory.fireNotifyChanged(notification);
+		}
+	}
+
+	/**
+	 * This disposes all of the item providers created by this factory. 
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void dispose() {
+		if (buildingPhysicsCatalogItemProvider != null)
+			buildingPhysicsCatalogItemProvider.dispose();
+		if (windowTypeItemProvider != null)
+			windowTypeItemProvider.dispose();
+		if (windowCatalogItemProvider != null)
+			windowCatalogItemProvider.dispose();
+		if (materialCatalogItemProvider != null)
+			materialCatalogItemProvider.dispose();
+		if (materialCategoryItemProvider != null)
+			materialCategoryItemProvider.dispose();
+		if (materialItemProvider != null)
+			materialItemProvider.dispose();
+	}
+
+}
diff --git a/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/CatalogItemProvider.java b/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/CatalogItemProvider.java
new file mode 100644
index 0000000..f6d1fa5
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/CatalogItemProvider.java
@@ -0,0 +1,188 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics.provider;
+
+import de.hftstuttgart.buildingphysics.BuildingPhysicsPackage;
+import de.hftstuttgart.buildingphysics.Catalog;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link de.hftstuttgart.buildingphysics.Catalog} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CatalogItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+		IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CatalogItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addNamePropertyDescriptor(object);
+			addDescriptionPropertyDescriptor(object);
+			addSourcePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors
+				.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+						getResourceLocator(), getString("_UI_Catalog_name_feature"),
+						getString("_UI_PropertyDescriptor_description", "_UI_Catalog_name_feature", "_UI_Catalog_type"),
+						BuildingPhysicsPackage.Literals.CATALOG__NAME, true, false, false,
+						ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors
+				.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+						getResourceLocator(), getString("_UI_Catalog_description_feature"),
+						getString("_UI_PropertyDescriptor_description", "_UI_Catalog_description_feature",
+								"_UI_Catalog_type"),
+						BuildingPhysicsPackage.Literals.CATALOG__DESCRIPTION, true, false, false,
+						ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Source feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSourcePropertyDescriptor(Object object) {
+		itemPropertyDescriptors
+				.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+						getResourceLocator(), getString("_UI_Catalog_source_feature"),
+						getString("_UI_PropertyDescriptor_description", "_UI_Catalog_source_feature",
+								"_UI_Catalog_type"),
+						BuildingPhysicsPackage.Literals.CATALOG__SOURCE, true, false, false,
+						ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+	}
+
+	/**
+	 * This returns Catalog.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Catalog"));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected boolean shouldComposeCreationImage() {
+		return true;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((Catalog) object).getName();
+		return label == null || label.length() == 0 ? getString("_UI_Catalog_type")
+				: getString("_UI_Catalog_type") + " " + label;
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Catalog.class)) {
+		case BuildingPhysicsPackage.CATALOG__NAME:
+		case BuildingPhysicsPackage.CATALOG__DESCRIPTION:
+		case BuildingPhysicsPackage.CATALOG__SOURCE:
+			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+			return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return BuildingPhysicsEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/MaterialCatalogItemProvider.java b/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/MaterialCatalogItemProvider.java
new file mode 100644
index 0000000..bda4726
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/MaterialCatalogItemProvider.java
@@ -0,0 +1,151 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics.provider;
+
+import de.hftstuttgart.buildingphysics.BuildingPhysicsFactory;
+import de.hftstuttgart.buildingphysics.BuildingPhysicsPackage;
+import de.hftstuttgart.buildingphysics.MaterialCatalog;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link de.hftstuttgart.buildingphysics.MaterialCatalog} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class MaterialCatalogItemProvider extends CatalogItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public MaterialCatalogItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(BuildingPhysicsPackage.Literals.MATERIAL_CATALOG__MATERIAL_CATEGORIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns MaterialCatalog.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/MaterialCatalog"));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected boolean shouldComposeCreationImage() {
+		return true;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((MaterialCatalog) object).getName();
+		return label == null || label.length() == 0 ? getString("_UI_MaterialCatalog_type")
+				: getString("_UI_MaterialCatalog_type") + " " + label;
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(MaterialCatalog.class)) {
+		case BuildingPhysicsPackage.MATERIAL_CATALOG__MATERIAL_CATEGORIES:
+			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+			return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors
+				.add(createChildParameter(BuildingPhysicsPackage.Literals.MATERIAL_CATALOG__MATERIAL_CATEGORIES,
+						BuildingPhysicsFactory.eINSTANCE.createMaterialCategory()));
+	}
+
+}
diff --git a/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/MaterialCategoryItemProvider.java b/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/MaterialCategoryItemProvider.java
new file mode 100644
index 0000000..efe8408
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/MaterialCategoryItemProvider.java
@@ -0,0 +1,192 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics.provider;
+
+import de.hftstuttgart.buildingphysics.BuildingPhysicsFactory;
+import de.hftstuttgart.buildingphysics.BuildingPhysicsPackage;
+import de.hftstuttgart.buildingphysics.MaterialCategory;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link de.hftstuttgart.buildingphysics.MaterialCategory} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class MaterialCategoryItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+		IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public MaterialCategoryItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addNamePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors
+				.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+						getResourceLocator(), getString("_UI_MaterialCategory_name_feature"),
+						getString("_UI_PropertyDescriptor_description", "_UI_MaterialCategory_name_feature",
+								"_UI_MaterialCategory_type"),
+						BuildingPhysicsPackage.Literals.MATERIAL_CATEGORY__NAME, true, false, false,
+						ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(BuildingPhysicsPackage.Literals.MATERIAL_CATEGORY__MATERIAL);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns MaterialCategory.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/MaterialCategory"));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected boolean shouldComposeCreationImage() {
+		return true;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((MaterialCategory) object).getName();
+		return label == null || label.length() == 0 ? getString("_UI_MaterialCategory_type")
+				: getString("_UI_MaterialCategory_type") + " " + label;
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(MaterialCategory.class)) {
+		case BuildingPhysicsPackage.MATERIAL_CATEGORY__NAME:
+			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+			return;
+		case BuildingPhysicsPackage.MATERIAL_CATEGORY__MATERIAL:
+			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+			return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add(createChildParameter(BuildingPhysicsPackage.Literals.MATERIAL_CATEGORY__MATERIAL,
+				BuildingPhysicsFactory.eINSTANCE.createMaterial()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return BuildingPhysicsEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/MaterialItemProvider.java b/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/MaterialItemProvider.java
new file mode 100644
index 0000000..ca08828
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/MaterialItemProvider.java
@@ -0,0 +1,224 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics.provider;
+
+import de.hftstuttgart.buildingphysics.BuildingPhysicsPackage;
+import de.hftstuttgart.buildingphysics.Material;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link de.hftstuttgart.buildingphysics.Material} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class MaterialItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+		IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public MaterialItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addDensityPropertyDescriptor(object);
+			addHeatCapacityPropertyDescriptor(object);
+			addConductivityPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors
+				.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+						getResourceLocator(), getString("_UI_Material_id_feature"),
+						getString("_UI_PropertyDescriptor_description", "_UI_Material_id_feature", "_UI_Material_type"),
+						BuildingPhysicsPackage.Literals.MATERIAL__ID, true, false, false,
+						ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE, null, null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors
+				.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+						getResourceLocator(), getString("_UI_Material_name_feature"),
+						getString("_UI_PropertyDescriptor_description", "_UI_Material_name_feature",
+								"_UI_Material_type"),
+						BuildingPhysicsPackage.Literals.MATERIAL__NAME, true, false, false,
+						ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Density feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDensityPropertyDescriptor(Object object) {
+		itemPropertyDescriptors
+				.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+						getResourceLocator(), getString("_UI_Material_density_feature"),
+						getString("_UI_PropertyDescriptor_description", "_UI_Material_density_feature",
+								"_UI_Material_type"),
+						BuildingPhysicsPackage.Literals.MATERIAL__DENSITY, true, false, false,
+						ItemPropertyDescriptor.REAL_VALUE_IMAGE, null, null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Heat Capacity feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addHeatCapacityPropertyDescriptor(Object object) {
+		itemPropertyDescriptors
+				.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+						getResourceLocator(), getString("_UI_Material_heatCapacity_feature"),
+						getString("_UI_PropertyDescriptor_description", "_UI_Material_heatCapacity_feature",
+								"_UI_Material_type"),
+						BuildingPhysicsPackage.Literals.MATERIAL__HEAT_CAPACITY, true, false, false,
+						ItemPropertyDescriptor.REAL_VALUE_IMAGE, null, null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Conductivity feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addConductivityPropertyDescriptor(Object object) {
+		itemPropertyDescriptors
+				.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+						getResourceLocator(), getString("_UI_Material_conductivity_feature"),
+						getString("_UI_PropertyDescriptor_description", "_UI_Material_conductivity_feature",
+								"_UI_Material_type"),
+						BuildingPhysicsPackage.Literals.MATERIAL__CONDUCTIVITY, true, false, false,
+						ItemPropertyDescriptor.REAL_VALUE_IMAGE, null, null));
+	}
+
+	/**
+	 * This returns Material.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Material"));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected boolean shouldComposeCreationImage() {
+		return true;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((Material) object).getName();
+		return label == null || label.length() == 0 ? getString("_UI_Material_type")
+				: getString("_UI_Material_type") + " " + label;
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Material.class)) {
+		case BuildingPhysicsPackage.MATERIAL__ID:
+		case BuildingPhysicsPackage.MATERIAL__NAME:
+		case BuildingPhysicsPackage.MATERIAL__DENSITY:
+		case BuildingPhysicsPackage.MATERIAL__HEAT_CAPACITY:
+		case BuildingPhysicsPackage.MATERIAL__CONDUCTIVITY:
+			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+			return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return BuildingPhysicsEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/WindowCatalogItemProvider.java b/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/WindowCatalogItemProvider.java
new file mode 100644
index 0000000..6c8c85e
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/WindowCatalogItemProvider.java
@@ -0,0 +1,150 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics.provider;
+
+import de.hftstuttgart.buildingphysics.BuildingPhysicsFactory;
+import de.hftstuttgart.buildingphysics.BuildingPhysicsPackage;
+import de.hftstuttgart.buildingphysics.WindowCatalog;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link de.hftstuttgart.buildingphysics.WindowCatalog} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class WindowCatalogItemProvider extends CatalogItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public WindowCatalogItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(BuildingPhysicsPackage.Literals.WINDOW_CATALOG__WINDOW_TYPES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns WindowCatalog.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/WindowCatalog"));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected boolean shouldComposeCreationImage() {
+		return true;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((WindowCatalog) object).getName();
+		return label == null || label.length() == 0 ? getString("_UI_WindowCatalog_type")
+				: getString("_UI_WindowCatalog_type") + " " + label;
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(WindowCatalog.class)) {
+		case BuildingPhysicsPackage.WINDOW_CATALOG__WINDOW_TYPES:
+			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+			return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add(createChildParameter(BuildingPhysicsPackage.Literals.WINDOW_CATALOG__WINDOW_TYPES,
+				BuildingPhysicsFactory.eINSTANCE.createWindowType()));
+	}
+
+}
diff --git a/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/WindowTypeItemProvider.java b/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/WindowTypeItemProvider.java
new file mode 100644
index 0000000..8400284
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics.edit/src-gen/de/hftstuttgart/buildingphysics/provider/WindowTypeItemProvider.java
@@ -0,0 +1,243 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics.provider;
+
+import de.hftstuttgart.buildingphysics.BuildingPhysicsPackage;
+import de.hftstuttgart.buildingphysics.WindowType;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link de.hftstuttgart.buildingphysics.WindowType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class WindowTypeItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+		IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public WindowTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addIdPropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addUValuePropertyDescriptor(object);
+			addGValuePropertyDescriptor(object);
+			addGlazingNumberPropertyDescriptor(object);
+			addFrameRatioPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors
+				.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+						getResourceLocator(), getString("_UI_WindowType_id_feature"),
+						getString("_UI_PropertyDescriptor_description", "_UI_WindowType_id_feature",
+								"_UI_WindowType_type"),
+						BuildingPhysicsPackage.Literals.WINDOW_TYPE__ID, true, false, false,
+						ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE, null, null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors
+				.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+						getResourceLocator(), getString("_UI_WindowType_name_feature"),
+						getString("_UI_PropertyDescriptor_description", "_UI_WindowType_name_feature",
+								"_UI_WindowType_type"),
+						BuildingPhysicsPackage.Literals.WINDOW_TYPE__NAME, true, false, false,
+						ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+	}
+
+	/**
+	 * This adds a property descriptor for the UValue feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addUValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors
+				.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+						getResourceLocator(), getString("_UI_WindowType_uValue_feature"),
+						getString("_UI_PropertyDescriptor_description", "_UI_WindowType_uValue_feature",
+								"_UI_WindowType_type"),
+						BuildingPhysicsPackage.Literals.WINDOW_TYPE__UVALUE, true, false, false,
+						ItemPropertyDescriptor.REAL_VALUE_IMAGE, null, null));
+	}
+
+	/**
+	 * This adds a property descriptor for the GValue feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addGValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors
+				.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+						getResourceLocator(), getString("_UI_WindowType_gValue_feature"),
+						getString("_UI_PropertyDescriptor_description", "_UI_WindowType_gValue_feature",
+								"_UI_WindowType_type"),
+						BuildingPhysicsPackage.Literals.WINDOW_TYPE__GVALUE, true, false, false,
+						ItemPropertyDescriptor.REAL_VALUE_IMAGE, null, null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Glazing Number feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addGlazingNumberPropertyDescriptor(Object object) {
+		itemPropertyDescriptors
+				.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+						getResourceLocator(), getString("_UI_WindowType_glazingNumber_feature"),
+						getString("_UI_PropertyDescriptor_description", "_UI_WindowType_glazingNumber_feature",
+								"_UI_WindowType_type"),
+						BuildingPhysicsPackage.Literals.WINDOW_TYPE__GLAZING_NUMBER, true, false, false,
+						ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE, null, null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Frame Ratio feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addFrameRatioPropertyDescriptor(Object object) {
+		itemPropertyDescriptors
+				.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+						getResourceLocator(), getString("_UI_WindowType_frameRatio_feature"),
+						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));
+	}
+
+	/**
+	 * This returns WindowType.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/WindowType"));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected boolean shouldComposeCreationImage() {
+		return true;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((WindowType) object).getName();
+		return label == null || label.length() == 0 ? getString("_UI_WindowType_type")
+				: getString("_UI_WindowType_type") + " " + label;
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(WindowType.class)) {
+		case BuildingPhysicsPackage.WINDOW_TYPE__ID:
+		case BuildingPhysicsPackage.WINDOW_TYPE__NAME:
+		case BuildingPhysicsPackage.WINDOW_TYPE__UVALUE:
+		case BuildingPhysicsPackage.WINDOW_TYPE__GVALUE:
+		case BuildingPhysicsPackage.WINDOW_TYPE__GLAZING_NUMBER:
+		case BuildingPhysicsPackage.WINDOW_TYPE__FRAME_RATIO:
+			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+			return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return BuildingPhysicsEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/de.hftstuttgart.buildingphysics/.classpath b/de.hftstuttgart.buildingphysics/.classpath
index c3ba59e..f9f04ed 100644
--- a/de.hftstuttgart.buildingphysics/.classpath
+++ b/de.hftstuttgart.buildingphysics/.classpath
@@ -1,7 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
+	<classpathentry kind="src" path="src-gen"/>
 	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/de.hftstuttgart.buildingphysics/META-INF/MANIFEST.MF b/de.hftstuttgart.buildingphysics/META-INF/MANIFEST.MF
index ab73fec..ca9e9fa 100644
--- a/de.hftstuttgart.buildingphysics/META-INF/MANIFEST.MF
+++ b/de.hftstuttgart.buildingphysics/META-INF/MANIFEST.MF
@@ -1,7 +1,16 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
-Bundle-Name: de.hftstuttgart.buildingphysics
-Bundle-SymbolicName: de.hftstuttgart.buildingphysics; singleton:=true
+Bundle-Name: %pluginName
+Bundle-SymbolicName: de.hftstuttgart.buildingphysics;singleton:=true
+Automatic-Module-Name: de.hftstuttgart.buildingphysics
 Bundle-Version: 0.1.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: de.hftstuttgart.buildingphysics,
+ de.hftstuttgart.buildingphysics.impl,
+ de.hftstuttgart.buildingphysics.util
 Require-Bundle: org.eclipse.emf.ecore;visibility:=reexport,
  org.eclipse.core.runtime
+Bundle-ActivationPolicy: lazy
diff --git a/de.hftstuttgart.buildingphysics/build.properties b/de.hftstuttgart.buildingphysics/build.properties
new file mode 100644
index 0000000..697ca96
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics/build.properties
@@ -0,0 +1,10 @@
+#
+
+bin.includes = .,\
+               model/,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties
+jars.compile.order = .
+source.. = src-gen/
+output.. = bin/
diff --git a/de.hftstuttgart.buildingphysics/model/buildingphysics.aird b/de.hftstuttgart.buildingphysics/model/buildingphysics.aird
index 37f9f39..bdcde9b 100644
--- a/de.hftstuttgart.buildingphysics/model/buildingphysics.aird
+++ b/de.hftstuttgart.buildingphysics/model/buildingphysics.aird
@@ -5,7 +5,7 @@
     <semanticResources>buildingphysics.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="_nfUm0R3ZEeuNsK3dZmTkbQ" name="buildingphysics" repPath="#_nfTYsB3ZEeuNsK3dZmTkbQ" changeId="e24216aa-f42c-4d7f-8575-621e32fdc99f">
+      <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_nfUm0R3ZEeuNsK3dZmTkbQ" name="buildingphysics" repPath="#_nfTYsB3ZEeuNsK3dZmTkbQ" changeId="e1485cb8-aacf-4b66-a292-682c64bb355b">
         <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>
@@ -25,33 +25,234 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_8wJgIh3ZEeuNsK3dZmTkbQ"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_8wHq8R3ZEeuNsK3dZmTkbQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8wHq8h3ZEeuNsK3dZmTkbQ" x="252" y="108" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8wHq8h3ZEeuNsK3dZmTkbQ" x="196" y="20" width="151" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_JiCeQB3aEeuNsK3dZmTkbQ" type="2003" element="_Jh_a8B3aEeuNsK3dZmTkbQ">
           <children xmi:type="notation:Node" xmi:id="_JiCeQx3aEeuNsK3dZmTkbQ" type="5007"/>
           <children xmi:type="notation:Node" xmi:id="_JiCeRB3aEeuNsK3dZmTkbQ" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_UWJ4HCQwEeuaK-RhvCx2-Q" type="3010" element="_UWGNsCQwEeuaK-RhvCx2-Q">
+              <styles xmi:type="notation:FontStyle" xmi:id="_UWJ4HSQwEeuaK-RhvCx2-Q" fontColor="2697711" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_UWJ4HiQwEeuaK-RhvCx2-Q"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_rg8jsCQwEeuaK-RhvCx2-Q" type="3010" element="_rg3rNiQwEeuaK-RhvCx2-Q">
+              <styles xmi:type="notation:FontStyle" xmi:id="_rg8jsSQwEeuaK-RhvCx2-Q" fontName=".AppleSystemUIFont" fontHeight="8" bold="true"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_rg8jsiQwEeuaK-RhvCx2-Q"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_KzRMkCQwEeuaK-RhvCx2-Q" type="3010" element="_KzM7ICQwEeuaK-RhvCx2-Q">
+              <styles xmi:type="notation:FontStyle" xmi:id="_KzRMkSQwEeuaK-RhvCx2-Q" fontColor="2697711" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_KzRMkiQwEeuaK-RhvCx2-Q"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_P1meDCQwEeuaK-RhvCx2-Q" type="3010" element="_P1izoCQwEeuaK-RhvCx2-Q">
+              <styles xmi:type="notation:FontStyle" xmi:id="_P1meDSQwEeuaK-RhvCx2-Q" fontColor="2697711" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_P1meDiQwEeuaK-RhvCx2-Q"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_1upGwCQwEeuaK-RhvCx2-Q" type="3010" element="_1uk1UCQwEeuaK-RhvCx2-Q">
+              <styles xmi:type="notation:FontStyle" xmi:id="_1upGwSQwEeuaK-RhvCx2-Q" fontColor="2697711" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_1upGwiQwEeuaK-RhvCx2-Q"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_9SZzICQwEeuaK-RhvCx2-Q" type="3010" element="_9SWIwCQwEeuaK-RhvCx2-Q">
+              <styles xmi:type="notation:FontStyle" xmi:id="_9SZzISQwEeuaK-RhvCx2-Q" fontColor="2697711" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_9SZzIiQwEeuaK-RhvCx2-Q"/>
+            </children>
             <styles xmi:type="notation:SortingStyle" xmi:id="_JiCeRR3aEeuNsK3dZmTkbQ"/>
             <styles xmi:type="notation:FilteringStyle" xmi:id="_JiCeRh3aEeuNsK3dZmTkbQ"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_JiCeQR3aEeuNsK3dZmTkbQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JiCeQh3aEeuNsK3dZmTkbQ" x="128" y="300" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JiCeQh3aEeuNsK3dZmTkbQ" x="132" y="520" width="151" height="139"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_rPDfQCQsEeuaK-RhvCx2-Q" type="2003" element="_rO2q8CQsEeuaK-RhvCx2-Q">
+          <children xmi:type="notation:Node" xmi:id="_rPF7gCQsEeuaK-RhvCx2-Q" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_rPF7gSQsEeuaK-RhvCx2-Q" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_t1sxYCQsEeuaK-RhvCx2-Q" type="3010" element="_t1nR0CQsEeuaK-RhvCx2-Q">
+              <styles xmi:type="notation:FontStyle" xmi:id="_t1sxYSQsEeuaK-RhvCx2-Q" fontColor="2697711" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_t1sxYiQsEeuaK-RhvCx2-Q"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_yi1O4yQsEeuaK-RhvCx2-Q" type="3010" element="_yixkgCQsEeuaK-RhvCx2-Q">
+              <styles xmi:type="notation:FontStyle" xmi:id="_yi1O5CQsEeuaK-RhvCx2-Q" fontColor="2697711" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_yi1O5SQsEeuaK-RhvCx2-Q"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_2RQBYCQsEeuaK-RhvCx2-Q" type="3010" element="_2RLv8CQsEeuaK-RhvCx2-Q">
+              <styles xmi:type="notation:FontStyle" xmi:id="_2RQBYSQsEeuaK-RhvCx2-Q" fontColor="2697711" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_2RQBYiQsEeuaK-RhvCx2-Q"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_rPF7giQsEeuaK-RhvCx2-Q"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_rPF7gyQsEeuaK-RhvCx2-Q"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_rPDfQSQsEeuaK-RhvCx2-Q" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rPDfQiQsEeuaK-RhvCx2-Q" x="384" y="20" width="151" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_UH9LYCQtEeuaK-RhvCx2-Q" type="2003" element="_UH5hACQtEeuaK-RhvCx2-Q">
+          <children xmi:type="notation:Node" xmi:id="_UH9LYyQtEeuaK-RhvCx2-Q" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_UH9LZCQtEeuaK-RhvCx2-Q" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_UH9LZSQtEeuaK-RhvCx2-Q"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_UH9LZiQtEeuaK-RhvCx2-Q"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_UH9LYSQtEeuaK-RhvCx2-Q" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UH9LYiQtEeuaK-RhvCx2-Q" x="132" y="168" width="151" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_iIuXcCQtEeuaK-RhvCx2-Q" type="2003" element="_iIqtECQtEeuaK-RhvCx2-Q">
+          <children xmi:type="notation:Node" xmi:id="_iIuXcyQtEeuaK-RhvCx2-Q" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_iIuXdCQtEeuaK-RhvCx2-Q" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_iIuXdSQtEeuaK-RhvCx2-Q"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_iIuXdiQtEeuaK-RhvCx2-Q"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_iIuXcSQtEeuaK-RhvCx2-Q" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iIuXciQtEeuaK-RhvCx2-Q" x="296" y="168" width="151" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_S0uzhiQuEeuaK-RhvCx2-Q" type="2003" element="_S0rwMCQuEeuaK-RhvCx2-Q">
+          <children xmi:type="notation:Node" xmi:id="_S0vakCQuEeuaK-RhvCx2-Q" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_S0vakSQuEeuaK-RhvCx2-Q" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_YiDtQCQvEeuaK-RhvCx2-Q" type="3010" element="_Yh_b0CQvEeuaK-RhvCx2-Q">
+              <styles xmi:type="notation:FontStyle" xmi:id="_YiDtQSQvEeuaK-RhvCx2-Q" fontColor="2697711" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_YiDtQiQvEeuaK-RhvCx2-Q"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_S0vakiQuEeuaK-RhvCx2-Q"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_S0vakyQuEeuaK-RhvCx2-Q"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_S0uzhyQuEeuaK-RhvCx2-Q" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S0uziCQuEeuaK-RhvCx2-Q" x="296" y="336" width="151" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_fR3ppiQuEeuaK-RhvCx2-Q" type="2003" element="_fRz_QCQuEeuaK-RhvCx2-Q">
+          <children xmi:type="notation:Node" xmi:id="_fR4QsCQuEeuaK-RhvCx2-Q" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_fR4QsSQuEeuaK-RhvCx2-Q" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_xB2SYCQuEeuaK-RhvCx2-Q" type="3010" element="_xBxZ4CQuEeuaK-RhvCx2-Q">
+              <styles xmi:type="notation:FontStyle" xmi:id="_xB2SYSQuEeuaK-RhvCx2-Q" fontColor="2697711" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_xB2SYiQuEeuaK-RhvCx2-Q"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_AH2oMCQvEeuaK-RhvCx2-Q" type="3010" element="_AHyWwCQvEeuaK-RhvCx2-Q">
+              <styles xmi:type="notation:FontStyle" xmi:id="_AH2oMSQvEeuaK-RhvCx2-Q" fontColor="2697711" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_AH2oMiQvEeuaK-RhvCx2-Q"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_F67aECQvEeuaK-RhvCx2-Q" type="3010" element="_F616gCQvEeuaK-RhvCx2-Q">
+              <styles xmi:type="notation:FontStyle" xmi:id="_F67aESQvEeuaK-RhvCx2-Q" fontColor="2697711" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_F67aEiQvEeuaK-RhvCx2-Q"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_JjNIViQvEeuaK-RhvCx2-Q" type="3010" element="_JjJd8CQvEeuaK-RhvCx2-Q">
+              <styles xmi:type="notation:FontStyle" xmi:id="_JjNIVyQvEeuaK-RhvCx2-Q" fontColor="2697711" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_JjNIWCQvEeuaK-RhvCx2-Q"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_SnZFoCQvEeuaK-RhvCx2-Q" type="3010" element="_SnU0MCQvEeuaK-RhvCx2-Q">
+              <styles xmi:type="notation:FontStyle" xmi:id="_SnZFoSQvEeuaK-RhvCx2-Q" fontColor="2697711" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_SnZFoiQvEeuaK-RhvCx2-Q"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_fR4QsiQuEeuaK-RhvCx2-Q"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_fR4QsyQuEeuaK-RhvCx2-Q"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_fR3ppyQuEeuaK-RhvCx2-Q" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fR3pqCQuEeuaK-RhvCx2-Q" x="296" y="520" width="151" height="139"/>
         </children>
         <styles xmi:type="notation:DiagramStyle" xmi:id="_nfVN4h3ZEeuNsK3dZmTkbQ"/>
-        <edges xmi:type="notation:Edge" xmi:id="_Mrp6kB3aEeuNsK3dZmTkbQ" type="4001" element="_Mrm3QB3aEeuNsK3dZmTkbQ" source="_8wHq8B3ZEeuNsK3dZmTkbQ" target="_JiCeQB3aEeuNsK3dZmTkbQ">
-          <children xmi:type="notation:Node" xmi:id="_MrqhoB3aEeuNsK3dZmTkbQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MrqhoR3aEeuNsK3dZmTkbQ" y="-10"/>
+        <edges xmi:type="notation:Edge" xmi:id="_Yu9ywCQtEeuaK-RhvCx2-Q" type="4001" element="_Mrm3QB3aEeuNsK3dZmTkbQ" source="_UH9LYCQtEeuaK-RhvCx2-Q" target="_JiCeQB3aEeuNsK3dZmTkbQ">
+          <children xmi:type="notation:Node" xmi:id="_Yu-Z0CQtEeuaK-RhvCx2-Q" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Yu-Z0SQtEeuaK-RhvCx2-Q" x="-92" y="-1"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_Yu_A4CQtEeuaK-RhvCx2-Q" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Yu_A4SQtEeuaK-RhvCx2-Q" x="-5"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_Yu_A4iQtEeuaK-RhvCx2-Q" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Yu_A4yQtEeuaK-RhvCx2-Q" x="-147"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_Yu9ywSQtEeuaK-RhvCx2-Q" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_Yu9ywiQtEeuaK-RhvCx2-Q" fontColor="7490599" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Yu9ywyQtEeuaK-RhvCx2-Q" points="[15, 49, -10, -254]$[15, 303, -10, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ndCwwCQtEeuaK-RhvCx2-Q" id="(0.39597315436241604,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YvA2ESQtEeuaK-RhvCx2-Q" id="(0.5637583892617449,0.0)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_Ze17ECQuEeuaK-RhvCx2-Q" type="4001" element="_ZexCkCQuEeuaK-RhvCx2-Q" source="_UH9LYCQtEeuaK-RhvCx2-Q" target="_rPDfQCQsEeuaK-RhvCx2-Q">
+          <children xmi:type="notation:Node" xmi:id="_Ze2iICQuEeuaK-RhvCx2-Q" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ze2iISQuEeuaK-RhvCx2-Q" x="-16" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_Ze2iIiQuEeuaK-RhvCx2-Q" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ze2iIyQuEeuaK-RhvCx2-Q" x="-16" y="5"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_Ze2iJCQuEeuaK-RhvCx2-Q" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ze2iJSQuEeuaK-RhvCx2-Q" x="-16" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_Ze17ESQuEeuaK-RhvCx2-Q" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_Ze17EiQuEeuaK-RhvCx2-Q" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Ze17EyQuEeuaK-RhvCx2-Q" points="[0, -16, -177, 99]$[0, -32, -177, 83]$[178, -32, 1, 83]$[178, -66, 1, 49]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ze2iJiQuEeuaK-RhvCx2-Q" id="(0.6174496644295302,0.05102040816326531)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ze2iJyQuEeuaK-RhvCx2-Q" id="(0.39597315436241604,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_bMoSkCQuEeuaK-RhvCx2-Q" type="4001" element="_bMkoNiQuEeuaK-RhvCx2-Q" source="_iIuXcCQtEeuaK-RhvCx2-Q" target="_rPDfQCQsEeuaK-RhvCx2-Q">
+          <children xmi:type="notation:Node" xmi:id="_bMoSlCQuEeuaK-RhvCx2-Q" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bMoSlSQuEeuaK-RhvCx2-Q" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_bMoSliQuEeuaK-RhvCx2-Q" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bMoSlyQuEeuaK-RhvCx2-Q" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_bMoSmCQuEeuaK-RhvCx2-Q" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bMoSmSQuEeuaK-RhvCx2-Q" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_bMoSkSQuEeuaK-RhvCx2-Q" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_bMoSkiQuEeuaK-RhvCx2-Q" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_bMoSkyQuEeuaK-RhvCx2-Q" points="[0, 0, -72, 99]$[0, -16, -72, 83]$[73, -16, 1, 83]$[73, -50, 1, 49]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bMoSmiQuEeuaK-RhvCx2-Q" id="(0.5570469798657718,0.01020408163265306)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bMoSmyQuEeuaK-RhvCx2-Q" id="(0.39597315436241604,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_iPhtkCQuEeuaK-RhvCx2-Q" type="4001" element="_iPeDMCQuEeuaK-RhvCx2-Q" source="_S0uzhiQuEeuaK-RhvCx2-Q" target="_fR3ppiQuEeuaK-RhvCx2-Q">
+          <children xmi:type="notation:Node" xmi:id="_iPhtlCQuEeuaK-RhvCx2-Q" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iPhtlSQuEeuaK-RhvCx2-Q" x="-4" y="-9"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_iPhtliQuEeuaK-RhvCx2-Q" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iPhtlyQuEeuaK-RhvCx2-Q" x="3" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_iPiUoCQuEeuaK-RhvCx2-Q" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iPiUoSQuEeuaK-RhvCx2-Q" x="-7" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_iPhtkSQuEeuaK-RhvCx2-Q" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_iPhtkiQuEeuaK-RhvCx2-Q" fontColor="7490599" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_iPhtkyQuEeuaK-RhvCx2-Q" points="[30, 0, 9, -86]$[30, 86, 9, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iPiUoiQuEeuaK-RhvCx2-Q" id="(0.2953020134228188,1.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iPiUoyQuEeuaK-RhvCx2-Q" id="(0.436241610738255,0.0)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_nTmEYCQuEeuaK-RhvCx2-Q" type="4001" element="_nThy9iQuEeuaK-RhvCx2-Q" source="_iIuXcCQtEeuaK-RhvCx2-Q" target="_S0uzhiQuEeuaK-RhvCx2-Q">
+          <children xmi:type="notation:Node" xmi:id="_nTmEZCQuEeuaK-RhvCx2-Q" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nTmEZSQuEeuaK-RhvCx2-Q" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_nTmrcCQuEeuaK-RhvCx2-Q" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nTmrcSQuEeuaK-RhvCx2-Q" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_nTmrciQuEeuaK-RhvCx2-Q" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nTmrcyQuEeuaK-RhvCx2-Q" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_nTmEYSQuEeuaK-RhvCx2-Q" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_nTmEYiQuEeuaK-RhvCx2-Q" fontColor="7490599" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nTmEYyQuEeuaK-RhvCx2-Q" points="[10, 0, 10, -70]$[10, 70, 10, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nTmrdCQuEeuaK-RhvCx2-Q" id="(0.42953020134228187,1.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nTmrdSQuEeuaK-RhvCx2-Q" id="(0.42953020134228187,0.0)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_f07d8CQvEeuaK-RhvCx2-Q" type="4001" element="_f03zliQvEeuaK-RhvCx2-Q" source="_8wHq8B3ZEeuNsK3dZmTkbQ" target="_UH9LYCQtEeuaK-RhvCx2-Q">
+          <children xmi:type="notation:Node" xmi:id="_f07d9CQvEeuaK-RhvCx2-Q" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f07d9SQvEeuaK-RhvCx2-Q" x="11" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_f07d9iQvEeuaK-RhvCx2-Q" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f07d9yQvEeuaK-RhvCx2-Q" x="1" y="9"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_f07d-CQvEeuaK-RhvCx2-Q" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f07d-SQvEeuaK-RhvCx2-Q" x="-1" y="10"/>
           </children>
-          <children xmi:type="notation:Node" xmi:id="_Mrqhoh3aEeuNsK3dZmTkbQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mrqhox3aEeuNsK3dZmTkbQ" y="10"/>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_f07d8SQvEeuaK-RhvCx2-Q" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_f07d8iQvEeuaK-RhvCx2-Q" fontColor="7490599" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f07d8yQvEeuaK-RhvCx2-Q" points="[0, 0, 71, -50]$[0, 25, 71, -25]$[-71, 25, 0, -25]$[-71, 50, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f07d-iQvEeuaK-RhvCx2-Q" id="(0.39597315436241604,1.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f07d-yQvEeuaK-RhvCx2-Q" id="(0.348993288590604,0.0)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_iKpYJiQvEeuaK-RhvCx2-Q" type="4001" element="_iKltzCQvEeuaK-RhvCx2-Q" source="_8wHq8B3ZEeuNsK3dZmTkbQ" target="_iIuXcCQtEeuaK-RhvCx2-Q">
+          <children xmi:type="notation:Node" xmi:id="_iKp_MCQvEeuaK-RhvCx2-Q" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iKp_MSQvEeuaK-RhvCx2-Q" x="13" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_iKp_MiQvEeuaK-RhvCx2-Q" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iKp_MyQvEeuaK-RhvCx2-Q" y="10"/>
           </children>
-          <children xmi:type="notation:Node" xmi:id="_MrrIsB3aEeuNsK3dZmTkbQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MrrIsR3aEeuNsK3dZmTkbQ" x="4" y="10"/>
+          <children xmi:type="notation:Node" xmi:id="_iKp_NCQvEeuaK-RhvCx2-Q" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iKp_NSQvEeuaK-RhvCx2-Q" y="10"/>
           </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_Mrp6kR3aEeuNsK3dZmTkbQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_Mrp6kh3aEeuNsK3dZmTkbQ" fontColor="7490599" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Mrp6kx3aEeuNsK3dZmTkbQ" points="[0, 0, 104, -94]$[0, 49, 104, -45]$[-116, 49, -12, -45]$[-116, 94, -12, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MrsW0B3aEeuNsK3dZmTkbQ" id="(0.5423728813559322,1.0)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MrsW0R3aEeuNsK3dZmTkbQ" id="(0.711864406779661,0.0)"/>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_iKpYJyQvEeuaK-RhvCx2-Q" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_iKpYKCQvEeuaK-RhvCx2-Q" fontColor="7490599" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_iKpYKSQvEeuaK-RhvCx2-Q" points="[12, 0, -68, -50]$[12, 25, -68, -25]$[80, 25, 0, -25]$[80, 50, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iKp_NiQvEeuaK-RhvCx2-Q" id="(0.48322147651006714,1.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iKp_NyQvEeuaK-RhvCx2-Q" id="(0.348993288590604,0.0)"/>
         </edges>
       </data>
     </ownedAnnotationEntries>
@@ -72,9 +273,19 @@
             <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
           </endLabelStyleDescription>
         </computedStyleDescriptions>
+        <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_j38ncCQvEeuaK-RhvCx2-Q" sourceArrow="FillDiamond" routingStyle="manhattan">
+          <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_j38ncSQvEeuaK-RhvCx2-Q" showIcon="false" labelExpression="service:render">
+            <labelFormat>bold</labelFormat>
+            <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          </centerLabelStyleDescription>
+          <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_j38nciQvEeuaK-RhvCx2-Q" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
+            <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
+          </endLabelStyleDescription>
+        </computedStyleDescriptions>
       </data>
     </ownedAnnotationEntries>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_8v_IEB3ZEeuNsK3dZmTkbQ" name="BuildingPhysicsCatalog" tooltipText="" outgoingEdges="_Mrm3QB3aEeuNsK3dZmTkbQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_8v_IEB3ZEeuNsK3dZmTkbQ" name="BuildingPhysicsCatalog" tooltipText="" outgoingEdges="_f03zliQvEeuaK-RhvCx2-Q _iKltzCQvEeuaK-RhvCx2-Q" width="12" height="10">
       <target xmi:type="ecore:EClass" href="buildingphysics.ecore#//BuildingPhysicsCatalog"/>
       <semanticElements xmi:type="ecore:EClass" href="buildingphysics.ecore#//BuildingPhysicsCatalog"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -99,14 +310,62 @@
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
       <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
       <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_Jh_a8R3aEeuNsK3dZmTkbQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_Db79MyQxEeuaK-RhvCx2-Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
         <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_UWGNsCQwEeuaK-RhvCx2-Q" name="id : EInt" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//WindowType/id"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//WindowType/id"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_aocVkiQwEeuaK-RhvCx2-Q" labelAlignment="LEFT" description="_FqIYkx3aEeuNsK3dZmTkbQ">
+          <labelFormat>bold</labelFormat>
+        </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="_rg3rNiQwEeuaK-RhvCx2-Q" name="name : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//WindowType/name"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//WindowType/name"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_rg3rNyQwEeuaK-RhvCx2-Q" labelAlignment="LEFT" description="_FqIYkx3aEeuNsK3dZmTkbQ">
+          <labelFormat>bold</labelFormat>
+        </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="_KzM7ICQwEeuaK-RhvCx2-Q" name="uValue : EDouble = 0.0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//WindowType/uValue"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//WindowType/uValue"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_PX9fzyQwEeuaK-RhvCx2-Q" labelAlignment="LEFT" description="_FqIYkx3aEeuNsK3dZmTkbQ">
+          <labelFormat>bold</labelFormat>
+        </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="_P1izoCQwEeuaK-RhvCx2-Q" name="gValue : EDouble = 0.0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//WindowType/gValue"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//WindowType/gValue"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_SfhGmiQwEeuaK-RhvCx2-Q" labelAlignment="LEFT" description="_FqIYkx3aEeuNsK3dZmTkbQ">
+          <labelFormat>bold</labelFormat>
+        </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="_1uk1UCQwEeuaK-RhvCx2-Q" name="glazingNumber : EInt" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//WindowType/glazingNumber"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//WindowType/glazingNumber"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_4EpU0iQwEeuaK-RhvCx2-Q" labelAlignment="LEFT" description="_FqIYkx3aEeuNsK3dZmTkbQ">
+          <labelFormat>bold</labelFormat>
+        </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="_9SWIwCQwEeuaK-RhvCx2-Q" name="frameRatio : EInt" 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="_Db8kQSQxEeuaK-RhvCx2-Q" labelAlignment="LEFT" description="_FqIYkx3aEeuNsK3dZmTkbQ">
+          <labelFormat>bold</labelFormat>
+        </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>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_Mrm3QB3aEeuNsK3dZmTkbQ" name="[0..*] windowTypes" sourceNode="_8v_IEB3ZEeuNsK3dZmTkbQ" targetNode="_Jh_a8B3aEeuNsK3dZmTkbQ">
-      <target xmi:type="ecore:EReference" href="buildingphysics.ecore#//BuildingPhysicsCatalog/windowTypes"/>
-      <semanticElements xmi:type="ecore:EReference" href="buildingphysics.ecore#//BuildingPhysicsCatalog/windowTypes"/>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_Mrm3QB3aEeuNsK3dZmTkbQ" name="[0..*] windowTypes" sourceNode="_UH5hACQtEeuaK-RhvCx2-Q" targetNode="_Jh_a8B3aEeuNsK3dZmTkbQ">
+      <target xmi:type="ecore:EReference" href="buildingphysics.ecore#//WindowCatalog/windowTypes"/>
+      <semanticElements xmi:type="ecore:EReference" href="buildingphysics.ecore#//WindowCatalog/windowTypes"/>
       <ownedStyle xmi:type="diagram:EdgeStyle" uid="_MrneUx3aEeuNsK3dZmTkbQ" description="_MrneUB3aEeuNsK3dZmTkbQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
         <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_MrneVR3aEeuNsK3dZmTkbQ" showIcon="false">
           <customFeatures>labelSize</customFeatures>
@@ -117,6 +376,206 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
     </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_rO2q8CQsEeuaK-RhvCx2-Q" name="Catalog" tooltipText="" incomingEdges="_ZexCkCQuEeuaK-RhvCx2-Q _bMkoNiQuEeuaK-RhvCx2-Q" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="buildingphysics.ecore#//Catalog"/>
+      <semanticElements xmi:type="ecore:EClass" href="buildingphysics.ecore#//Catalog"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_HD0mtSQtEeuaK-RhvCx2-Q" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+        <labelFormat>italic</labelFormat>
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_t1nR0CQsEeuaK-RhvCx2-Q" name="name : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//Catalog/name"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//Catalog/name"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_xbNfgSQsEeuaK-RhvCx2-Q" labelAlignment="LEFT" description="_FqIYkx3aEeuNsK3dZmTkbQ">
+          <labelFormat>bold</labelFormat>
+        </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="_yixkgCQsEeuaK-RhvCx2-Q" name="description : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//Catalog/description"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//Catalog/description"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_1q82YiQsEeuaK-RhvCx2-Q" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" 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']/@style"/>
+        </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="_2RLv8CQsEeuaK-RhvCx2-Q" name="source : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//Catalog/source"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//Catalog/source"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_HD1NxCQtEeuaK-RhvCx2-Q" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" 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']/@style"/>
+        </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>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_UH5hACQtEeuaK-RhvCx2-Q" name="WindowCatalog" tooltipText="" outgoingEdges="_Mrm3QB3aEeuNsK3dZmTkbQ _ZexCkCQuEeuaK-RhvCx2-Q" incomingEdges="_f03zliQvEeuaK-RhvCx2-Q" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="buildingphysics.ecore#//WindowCatalog"/>
+      <semanticElements xmi:type="ecore:EClass" href="buildingphysics.ecore#//WindowCatalog"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_UH5hASQtEeuaK-RhvCx2-Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_iIqtECQtEeuaK-RhvCx2-Q" name="MaterialCatalog" tooltipText="" outgoingEdges="_bMkoNiQuEeuaK-RhvCx2-Q _nThy9iQuEeuaK-RhvCx2-Q" incomingEdges="_iKltzCQvEeuaK-RhvCx2-Q" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="buildingphysics.ecore#//MaterialCatalog"/>
+      <semanticElements xmi:type="ecore:EClass" href="buildingphysics.ecore#//MaterialCatalog"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_iIqtESQtEeuaK-RhvCx2-Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_S0rwMCQuEeuaK-RhvCx2-Q" name="MaterialCategory" tooltipText="" outgoingEdges="_iPeDMCQuEeuaK-RhvCx2-Q" incomingEdges="_nThy9iQuEeuaK-RhvCx2-Q" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="buildingphysics.ecore#//MaterialCategory"/>
+      <semanticElements xmi:type="ecore:EClass" href="buildingphysics.ecore#//MaterialCategory"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_bQ8VZiQvEeuaK-RhvCx2-Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_Yh_b0CQvEeuaK-RhvCx2-Q" name="name : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//MaterialCategory/name"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//MaterialCategory/name"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_boAKgyQvEeuaK-RhvCx2-Q" labelAlignment="LEFT" description="_FqIYkx3aEeuNsK3dZmTkbQ">
+          <labelFormat>bold</labelFormat>
+        </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>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ZexCkCQuEeuaK-RhvCx2-Q" sourceNode="_UH5hACQtEeuaK-RhvCx2-Q" targetNode="_rO2q8CQsEeuaK-RhvCx2-Q">
+      <target xmi:type="ecore:EClass" href="buildingphysics.ecore#//WindowCatalog"/>
+      <semanticElements xmi:type="ecore:EClass" href="buildingphysics.ecore#//WindowCatalog"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_ZexpoCQuEeuaK-RhvCx2-Q" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_ZexpoSQuEeuaK-RhvCx2-Q" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_ZexpoiQuEeuaK-RhvCx2-Q" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_bMkoNiQuEeuaK-RhvCx2-Q" sourceNode="_iIqtECQtEeuaK-RhvCx2-Q" targetNode="_rO2q8CQsEeuaK-RhvCx2-Q">
+      <target xmi:type="ecore:EClass" href="buildingphysics.ecore#//MaterialCatalog"/>
+      <semanticElements xmi:type="ecore:EClass" href="buildingphysics.ecore#//MaterialCatalog"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_bMkoNyQuEeuaK-RhvCx2-Q" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_bMkoOCQuEeuaK-RhvCx2-Q" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_bMkoOSQuEeuaK-RhvCx2-Q" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_fRz_QCQuEeuaK-RhvCx2-Q" name="Material" tooltipText="" incomingEdges="_iPeDMCQuEeuaK-RhvCx2-Q" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="buildingphysics.ecore#//Material"/>
+      <semanticElements xmi:type="ecore:EClass" href="buildingphysics.ecore#//Material"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_TwZVHCQvEeuaK-RhvCx2-Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_xBxZ4CQuEeuaK-RhvCx2-Q" name="id : EInt" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//Material/id"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//Material/id"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_z-3dJCQuEeuaK-RhvCx2-Q" labelAlignment="LEFT" description="_FqIYkx3aEeuNsK3dZmTkbQ">
+          <labelFormat>bold</labelFormat>
+        </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="_AHyWwCQvEeuaK-RhvCx2-Q" name="name : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//Material/name"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//Material/name"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_Ci2rAiQvEeuaK-RhvCx2-Q" labelAlignment="LEFT" description="_FqIYkx3aEeuNsK3dZmTkbQ">
+          <labelFormat>bold</labelFormat>
+        </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="_F616gCQvEeuaK-RhvCx2-Q" name="density : EDouble = 0.0" 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="_IiFpkyQvEeuaK-RhvCx2-Q" labelAlignment="LEFT" description="_FqIYkx3aEeuNsK3dZmTkbQ">
+          <labelFormat>bold</labelFormat>
+        </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="_JjJd8CQvEeuaK-RhvCx2-Q" name="heatCapacity : EDouble = 0.0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//Material/heatCapacity"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="buildingphysics.ecore#//Material/heatCapacity"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_NygaVyQvEeuaK-RhvCx2-Q" labelAlignment="LEFT" description="_FqIYkx3aEeuNsK3dZmTkbQ">
+          <labelFormat>bold</labelFormat>
+        </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="_SnU0MCQvEeuaK-RhvCx2-Q" name="conductivity : EDouble = 0.0" 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="_UYqO-CQvEeuaK-RhvCx2-Q" labelAlignment="LEFT" description="_FqIYkx3aEeuNsK3dZmTkbQ">
+          <labelFormat>bold</labelFormat>
+        </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>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_iPeDMCQuEeuaK-RhvCx2-Q" name="[0..*] material" sourceNode="_S0rwMCQuEeuaK-RhvCx2-Q" targetNode="_fRz_QCQuEeuaK-RhvCx2-Q">
+      <target xmi:type="ecore:EReference" href="buildingphysics.ecore#//MaterialCategory/material"/>
+      <semanticElements xmi:type="ecore:EReference" href="buildingphysics.ecore#//MaterialCategory/material"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_iPeDMSQuEeuaK-RhvCx2-Q" description="_MrneUB3aEeuNsK3dZmTkbQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_iPeDMyQuEeuaK-RhvCx2-Q" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_iPeDMiQuEeuaK-RhvCx2-Q" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_nThy9iQuEeuaK-RhvCx2-Q" name="[0..*] materialCategories" sourceNode="_iIqtECQtEeuaK-RhvCx2-Q" targetNode="_S0rwMCQuEeuaK-RhvCx2-Q">
+      <target xmi:type="ecore:EReference" href="buildingphysics.ecore#//MaterialCatalog/materialCategories"/>
+      <semanticElements xmi:type="ecore:EReference" href="buildingphysics.ecore#//MaterialCatalog/materialCategories"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_nThy9yQuEeuaK-RhvCx2-Q" description="_MrneUB3aEeuNsK3dZmTkbQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_nThy-SQuEeuaK-RhvCx2-Q" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_nThy-CQuEeuaK-RhvCx2-Q" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_f03zliQvEeuaK-RhvCx2-Q" name="[1..1] windowCatalog" sourceNode="_8v_IEB3ZEeuNsK3dZmTkbQ" targetNode="_UH5hACQtEeuaK-RhvCx2-Q">
+      <target xmi:type="ecore:EReference" href="buildingphysics.ecore#//BuildingPhysicsCatalog/windowCatalog"/>
+      <semanticElements xmi:type="ecore:EReference" href="buildingphysics.ecore#//BuildingPhysicsCatalog/windowCatalog"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_j38ncyQvEeuaK-RhvCx2-Q" description="_j38ncCQvEeuaK-RhvCx2-Q" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_j38ndSQvEeuaK-RhvCx2-Q" showIcon="false">
+          <labelFormat>bold</labelFormat>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_j38ndCQvEeuaK-RhvCx2-Q" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_iKltzCQvEeuaK-RhvCx2-Q" name="[1..1] materialCatalog" sourceNode="_8v_IEB3ZEeuNsK3dZmTkbQ" targetNode="_iIqtECQtEeuaK-RhvCx2-Q">
+      <target xmi:type="ecore:EReference" href="buildingphysics.ecore#//BuildingPhysicsCatalog/materialCatalog"/>
+      <semanticElements xmi:type="ecore:EReference" href="buildingphysics.ecore#//BuildingPhysicsCatalog/materialCatalog"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_lSq5BiQvEeuaK-RhvCx2-Q" description="_j38ncCQvEeuaK-RhvCx2-Q" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_lSq5CCQvEeuaK-RhvCx2-Q" showIcon="false">
+          <labelFormat>bold</labelFormat>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_lSq5ByQvEeuaK-RhvCx2-Q" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
     <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
     <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_nfT_wB3ZEeuNsK3dZmTkbQ"/>
     <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
diff --git a/de.hftstuttgart.buildingphysics/model/buildingphysics.ecore b/de.hftstuttgart.buildingphysics/model/buildingphysics.ecore
index 8126913..11dcb52 100644
--- a/de.hftstuttgart.buildingphysics/model/buildingphysics.ecore
+++ b/de.hftstuttgart.buildingphysics/model/buildingphysics.ecore
@@ -1,12 +1,59 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="buildingphysics" nsURI="http://www.example.org/buildingphysics"
-    nsPrefix="BuildingPhysics">
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="buildingphysics" nsURI="http://www.hftstuttgart.de/buildingphysics"
+    nsPrefix="buildphys">
   <eClassifiers xsi:type="ecore:EClass" name="BuildingPhysicsCatalog">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="author" lowerBound="1"
         eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="windowCatalog" lowerBound="1"
+        eType="#//WindowCatalog" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="materialCatalog" lowerBound="1"
+        eType="#//MaterialCatalog" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="WindowType">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+        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="uValue" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="gValue" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="glazingNumber" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="frameRatio" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="In % (between 0 and 100)"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </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"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="source" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="WindowCatalog" eSuperTypes="#//Catalog">
     <eStructuralFeatures xsi:type="ecore:EReference" name="windowTypes" upperBound="-1"
         eType="#//WindowType" containment="true"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="WindowType"/>
+  <eClassifiers xsi:type="ecore:EClass" name="MaterialCatalog" eSuperTypes="#//Catalog">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="materialCategories" upperBound="-1"
+        eType="#//MaterialCategory" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="MaterialCategory">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="material" upperBound="-1"
+        eType="#//Material" containment="true"/>
+    <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"
+        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"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="heatCapacity" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="conductivity" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+  </eClassifiers>
 </ecore:EPackage>
diff --git a/de.hftstuttgart.buildingphysics/model/buildingphysics.genmodel b/de.hftstuttgart.buildingphysics/model/buildingphysics.genmodel
index 537127f..c6436fa 100644
--- a/de.hftstuttgart.buildingphysics/model/buildingphysics.genmodel
+++ b/de.hftstuttgart.buildingphysics/model/buildingphysics.genmodel
@@ -3,7 +3,7 @@
     xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel"
     modelDirectory="/de.hftstuttgart.buildingphysics/src-gen" creationIcons="false"
     editDirectory="/de.hftstuttgart.buildingphysics.edit/src-gen" editorDirectory="/de.hftstuttgart.buildingphysics.editor/src-gen"
-    modelPluginID="de.hftstuttgart.buildingphysics" modelName="Buildingphysics" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+    modelPluginID="de.hftstuttgart.buildingphysics" modelName="BuildingPhysics" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
     codeFormatting="true" importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0"
     copyrightFields="false" operationReflection="true" importOrganizing="true">
   <foreignModel>buildingphysics.ecore</foreignModel>
@@ -12,8 +12,38 @@
       fileExtensions="buildphys" ecorePackage="buildingphysics.ecore#/">
     <genClasses ecoreClass="buildingphysics.ecore#//BuildingPhysicsCatalog">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute buildingphysics.ecore#//BuildingPhysicsCatalog/author"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference buildingphysics.ecore#//BuildingPhysicsCatalog/windowTypes"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference buildingphysics.ecore#//BuildingPhysicsCatalog/windowCatalog"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference buildingphysics.ecore#//BuildingPhysicsCatalog/materialCatalog"/>
+    </genClasses>
+    <genClasses ecoreClass="buildingphysics.ecore#//WindowType">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute buildingphysics.ecore#//WindowType/id"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute buildingphysics.ecore#//WindowType/name"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute buildingphysics.ecore#//WindowType/uValue"/>
+      <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"/>
+    </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" ecoreFeature="ecore:EAttribute buildingphysics.ecore#//Catalog/source"/>
+    </genClasses>
+    <genClasses ecoreClass="buildingphysics.ecore#//WindowCatalog">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference buildingphysics.ecore#//WindowCatalog/windowTypes"/>
+    </genClasses>
+    <genClasses ecoreClass="buildingphysics.ecore#//MaterialCatalog">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference buildingphysics.ecore#//MaterialCatalog/materialCategories"/>
+    </genClasses>
+    <genClasses ecoreClass="buildingphysics.ecore#//MaterialCategory">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference buildingphysics.ecore#//MaterialCategory/material"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute buildingphysics.ecore#//MaterialCategory/name"/>
+    </genClasses>
+    <genClasses ecoreClass="buildingphysics.ecore#//Material">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute buildingphysics.ecore#//Material/id"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute buildingphysics.ecore#//Material/name"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute buildingphysics.ecore#//Material/density"/>
+      <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#//WindowType"/>
   </genPackages>
 </genmodel:GenModel>
diff --git a/de.hftstuttgart.buildingphysics/plugin.properties b/de.hftstuttgart.buildingphysics/plugin.properties
new file mode 100644
index 0000000..db677e9
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics/plugin.properties
@@ -0,0 +1,4 @@
+#
+
+pluginName = de.hftstuttgart.buildingphysics
+providerName = www.example.org
diff --git a/de.hftstuttgart.buildingphysics/plugin.xml b/de.hftstuttgart.buildingphysics/plugin.xml
new file mode 100644
index 0000000..73ea21c
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics/plugin.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated buildingphysics -->
+      <package
+            uri="http://www.hftstuttgart.de/buildingphysics"
+            class="de.hftstuttgart.buildingphysics.BuildingPhysicsPackage"
+            genModel="model/buildingphysics.genmodel"/>
+   </extension>
+
+</plugin>
diff --git a/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/BuildingPhysicsCatalog.java b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/BuildingPhysicsCatalog.java
new file mode 100644
index 0000000..058ea48
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/BuildingPhysicsCatalog.java
@@ -0,0 +1,92 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Catalog</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.hftstuttgart.buildingphysics.BuildingPhysicsCatalog#getAuthor <em>Author</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.BuildingPhysicsCatalog#getWindowCatalog <em>Window Catalog</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.BuildingPhysicsCatalog#getMaterialCatalog <em>Material Catalog</em>}</li>
+ * </ul>
+ *
+ * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getBuildingPhysicsCatalog()
+ * @model
+ * @generated
+ */
+public interface BuildingPhysicsCatalog extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Author</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Author</em>' attribute.
+	 * @see #setAuthor(String)
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getBuildingPhysicsCatalog_Author()
+	 * @model required="true"
+	 * @generated
+	 */
+	String getAuthor();
+
+	/**
+	 * Sets the value of the '{@link de.hftstuttgart.buildingphysics.BuildingPhysicsCatalog#getAuthor <em>Author</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Author</em>' attribute.
+	 * @see #getAuthor()
+	 * @generated
+	 */
+	void setAuthor(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Window Catalog</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Window Catalog</em>' containment reference.
+	 * @see #setWindowCatalog(WindowCatalog)
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getBuildingPhysicsCatalog_WindowCatalog()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	WindowCatalog getWindowCatalog();
+
+	/**
+	 * Sets the value of the '{@link de.hftstuttgart.buildingphysics.BuildingPhysicsCatalog#getWindowCatalog <em>Window Catalog</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Window Catalog</em>' containment reference.
+	 * @see #getWindowCatalog()
+	 * @generated
+	 */
+	void setWindowCatalog(WindowCatalog value);
+
+	/**
+	 * Returns the value of the '<em><b>Material Catalog</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Material Catalog</em>' containment reference.
+	 * @see #setMaterialCatalog(MaterialCatalog)
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getBuildingPhysicsCatalog_MaterialCatalog()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	MaterialCatalog getMaterialCatalog();
+
+	/**
+	 * Sets the value of the '{@link de.hftstuttgart.buildingphysics.BuildingPhysicsCatalog#getMaterialCatalog <em>Material Catalog</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Material Catalog</em>' containment reference.
+	 * @see #getMaterialCatalog()
+	 * @generated
+	 */
+	void setMaterialCatalog(MaterialCatalog value);
+
+} // BuildingPhysicsCatalog
diff --git a/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/BuildingPhysicsFactory.java b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/BuildingPhysicsFactory.java
new file mode 100644
index 0000000..2c9a779
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/BuildingPhysicsFactory.java
@@ -0,0 +1,87 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage
+ * @generated
+ */
+public interface BuildingPhysicsFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	BuildingPhysicsFactory eINSTANCE = de.hftstuttgart.buildingphysics.impl.BuildingPhysicsFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Catalog</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Catalog</em>'.
+	 * @generated
+	 */
+	BuildingPhysicsCatalog createBuildingPhysicsCatalog();
+
+	/**
+	 * Returns a new object of class '<em>Window Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Window Type</em>'.
+	 * @generated
+	 */
+	WindowType createWindowType();
+
+	/**
+	 * Returns a new object of class '<em>Window Catalog</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Window Catalog</em>'.
+	 * @generated
+	 */
+	WindowCatalog createWindowCatalog();
+
+	/**
+	 * Returns a new object of class '<em>Material Catalog</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Material Catalog</em>'.
+	 * @generated
+	 */
+	MaterialCatalog createMaterialCatalog();
+
+	/**
+	 * Returns a new object of class '<em>Material Category</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Material Category</em>'.
+	 * @generated
+	 */
+	MaterialCategory createMaterialCategory();
+
+	/**
+	 * Returns a new object of class '<em>Material</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Material</em>'.
+	 * @generated
+	 */
+	Material createMaterial();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	BuildingPhysicsPackage getBuildingPhysicsPackage();
+
+} //BuildingPhysicsFactory
diff --git a/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/BuildingPhysicsPackage.java b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/BuildingPhysicsPackage.java
new file mode 100644
index 0000000..88c4006
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/BuildingPhysicsPackage.java
@@ -0,0 +1,1062 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each operation of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see de.hftstuttgart.buildingphysics.BuildingPhysicsFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface BuildingPhysicsPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "buildingphysics";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http://www.hftstuttgart.de/buildingphysics";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "buildphys";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	BuildingPhysicsPackage eINSTANCE = de.hftstuttgart.buildingphysics.impl.BuildingPhysicsPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link de.hftstuttgart.buildingphysics.impl.BuildingPhysicsCatalogImpl <em>Catalog</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.hftstuttgart.buildingphysics.impl.BuildingPhysicsCatalogImpl
+	 * @see de.hftstuttgart.buildingphysics.impl.BuildingPhysicsPackageImpl#getBuildingPhysicsCatalog()
+	 * @generated
+	 */
+	int BUILDING_PHYSICS_CATALOG = 0;
+
+	/**
+	 * The feature id for the '<em><b>Author</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILDING_PHYSICS_CATALOG__AUTHOR = 0;
+
+	/**
+	 * The feature id for the '<em><b>Window Catalog</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILDING_PHYSICS_CATALOG__WINDOW_CATALOG = 1;
+
+	/**
+	 * The feature id for the '<em><b>Material Catalog</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILDING_PHYSICS_CATALOG__MATERIAL_CATALOG = 2;
+
+	/**
+	 * The number of structural features of the '<em>Catalog</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILDING_PHYSICS_CATALOG_FEATURE_COUNT = 3;
+
+	/**
+	 * The number of operations of the '<em>Catalog</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILDING_PHYSICS_CATALOG_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link de.hftstuttgart.buildingphysics.impl.WindowTypeImpl <em>Window Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.hftstuttgart.buildingphysics.impl.WindowTypeImpl
+	 * @see de.hftstuttgart.buildingphysics.impl.BuildingPhysicsPackageImpl#getWindowType()
+	 * @generated
+	 */
+	int WINDOW_TYPE = 1;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WINDOW_TYPE__ID = 0;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WINDOW_TYPE__NAME = 1;
+
+	/**
+	 * The feature id for the '<em><b>UValue</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WINDOW_TYPE__UVALUE = 2;
+
+	/**
+	 * The feature id for the '<em><b>GValue</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WINDOW_TYPE__GVALUE = 3;
+
+	/**
+	 * The feature id for the '<em><b>Glazing Number</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WINDOW_TYPE__GLAZING_NUMBER = 4;
+
+	/**
+	 * The feature id for the '<em><b>Frame Ratio</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WINDOW_TYPE__FRAME_RATIO = 5;
+
+	/**
+	 * The number of structural features of the '<em>Window Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WINDOW_TYPE_FEATURE_COUNT = 6;
+
+	/**
+	 * The number of operations of the '<em>Window Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WINDOW_TYPE_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link de.hftstuttgart.buildingphysics.impl.CatalogImpl <em>Catalog</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.hftstuttgart.buildingphysics.impl.CatalogImpl
+	 * @see de.hftstuttgart.buildingphysics.impl.BuildingPhysicsPackageImpl#getCatalog()
+	 * @generated
+	 */
+	int CATALOG = 2;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CATALOG__NAME = 0;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CATALOG__DESCRIPTION = 1;
+
+	/**
+	 * The feature id for the '<em><b>Source</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CATALOG__SOURCE = 2;
+
+	/**
+	 * The number of structural features of the '<em>Catalog</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CATALOG_FEATURE_COUNT = 3;
+
+	/**
+	 * The number of operations of the '<em>Catalog</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CATALOG_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link de.hftstuttgart.buildingphysics.impl.WindowCatalogImpl <em>Window Catalog</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.hftstuttgart.buildingphysics.impl.WindowCatalogImpl
+	 * @see de.hftstuttgart.buildingphysics.impl.BuildingPhysicsPackageImpl#getWindowCatalog()
+	 * @generated
+	 */
+	int WINDOW_CATALOG = 3;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WINDOW_CATALOG__NAME = CATALOG__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WINDOW_CATALOG__DESCRIPTION = CATALOG__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Source</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WINDOW_CATALOG__SOURCE = CATALOG__SOURCE;
+
+	/**
+	 * The feature id for the '<em><b>Window Types</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WINDOW_CATALOG__WINDOW_TYPES = CATALOG_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Window Catalog</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WINDOW_CATALOG_FEATURE_COUNT = CATALOG_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>Window Catalog</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WINDOW_CATALOG_OPERATION_COUNT = CATALOG_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link de.hftstuttgart.buildingphysics.impl.MaterialCatalogImpl <em>Material Catalog</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.hftstuttgart.buildingphysics.impl.MaterialCatalogImpl
+	 * @see de.hftstuttgart.buildingphysics.impl.BuildingPhysicsPackageImpl#getMaterialCatalog()
+	 * @generated
+	 */
+	int MATERIAL_CATALOG = 4;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MATERIAL_CATALOG__NAME = CATALOG__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MATERIAL_CATALOG__DESCRIPTION = CATALOG__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Source</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MATERIAL_CATALOG__SOURCE = CATALOG__SOURCE;
+
+	/**
+	 * The feature id for the '<em><b>Material Categories</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MATERIAL_CATALOG__MATERIAL_CATEGORIES = CATALOG_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Material Catalog</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MATERIAL_CATALOG_FEATURE_COUNT = CATALOG_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>Material Catalog</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MATERIAL_CATALOG_OPERATION_COUNT = CATALOG_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link de.hftstuttgart.buildingphysics.impl.MaterialCategoryImpl <em>Material Category</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.hftstuttgart.buildingphysics.impl.MaterialCategoryImpl
+	 * @see de.hftstuttgart.buildingphysics.impl.BuildingPhysicsPackageImpl#getMaterialCategory()
+	 * @generated
+	 */
+	int MATERIAL_CATEGORY = 5;
+
+	/**
+	 * The feature id for the '<em><b>Material</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MATERIAL_CATEGORY__MATERIAL = 0;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MATERIAL_CATEGORY__NAME = 1;
+
+	/**
+	 * The number of structural features of the '<em>Material Category</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MATERIAL_CATEGORY_FEATURE_COUNT = 2;
+
+	/**
+	 * The number of operations of the '<em>Material Category</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MATERIAL_CATEGORY_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link de.hftstuttgart.buildingphysics.impl.MaterialImpl <em>Material</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.hftstuttgart.buildingphysics.impl.MaterialImpl
+	 * @see de.hftstuttgart.buildingphysics.impl.BuildingPhysicsPackageImpl#getMaterial()
+	 * @generated
+	 */
+	int MATERIAL = 6;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MATERIAL__ID = 0;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MATERIAL__NAME = 1;
+
+	/**
+	 * The feature id for the '<em><b>Density</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MATERIAL__DENSITY = 2;
+
+	/**
+	 * The feature id for the '<em><b>Heat Capacity</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MATERIAL__HEAT_CAPACITY = 3;
+
+	/**
+	 * The feature id for the '<em><b>Conductivity</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MATERIAL__CONDUCTIVITY = 4;
+
+	/**
+	 * The number of structural features of the '<em>Material</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MATERIAL_FEATURE_COUNT = 5;
+
+	/**
+	 * The number of operations of the '<em>Material</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MATERIAL_OPERATION_COUNT = 0;
+
+	/**
+	 * Returns the meta object for class '{@link de.hftstuttgart.buildingphysics.BuildingPhysicsCatalog <em>Catalog</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Catalog</em>'.
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsCatalog
+	 * @generated
+	 */
+	EClass getBuildingPhysicsCatalog();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.hftstuttgart.buildingphysics.BuildingPhysicsCatalog#getAuthor <em>Author</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Author</em>'.
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsCatalog#getAuthor()
+	 * @see #getBuildingPhysicsCatalog()
+	 * @generated
+	 */
+	EAttribute getBuildingPhysicsCatalog_Author();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link de.hftstuttgart.buildingphysics.BuildingPhysicsCatalog#getWindowCatalog <em>Window Catalog</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Window Catalog</em>'.
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsCatalog#getWindowCatalog()
+	 * @see #getBuildingPhysicsCatalog()
+	 * @generated
+	 */
+	EReference getBuildingPhysicsCatalog_WindowCatalog();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link de.hftstuttgart.buildingphysics.BuildingPhysicsCatalog#getMaterialCatalog <em>Material Catalog</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Material Catalog</em>'.
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsCatalog#getMaterialCatalog()
+	 * @see #getBuildingPhysicsCatalog()
+	 * @generated
+	 */
+	EReference getBuildingPhysicsCatalog_MaterialCatalog();
+
+	/**
+	 * Returns the meta object for class '{@link de.hftstuttgart.buildingphysics.WindowType <em>Window Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Window Type</em>'.
+	 * @see de.hftstuttgart.buildingphysics.WindowType
+	 * @generated
+	 */
+	EClass getWindowType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.hftstuttgart.buildingphysics.WindowType#getId <em>Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Id</em>'.
+	 * @see de.hftstuttgart.buildingphysics.WindowType#getId()
+	 * @see #getWindowType()
+	 * @generated
+	 */
+	EAttribute getWindowType_Id();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.hftstuttgart.buildingphysics.WindowType#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see de.hftstuttgart.buildingphysics.WindowType#getName()
+	 * @see #getWindowType()
+	 * @generated
+	 */
+	EAttribute getWindowType_Name();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.hftstuttgart.buildingphysics.WindowType#getUValue <em>UValue</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>UValue</em>'.
+	 * @see de.hftstuttgart.buildingphysics.WindowType#getUValue()
+	 * @see #getWindowType()
+	 * @generated
+	 */
+	EAttribute getWindowType_UValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.hftstuttgart.buildingphysics.WindowType#getGValue <em>GValue</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>GValue</em>'.
+	 * @see de.hftstuttgart.buildingphysics.WindowType#getGValue()
+	 * @see #getWindowType()
+	 * @generated
+	 */
+	EAttribute getWindowType_GValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.hftstuttgart.buildingphysics.WindowType#getGlazingNumber <em>Glazing Number</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Glazing Number</em>'.
+	 * @see de.hftstuttgart.buildingphysics.WindowType#getGlazingNumber()
+	 * @see #getWindowType()
+	 * @generated
+	 */
+	EAttribute getWindowType_GlazingNumber();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.hftstuttgart.buildingphysics.WindowType#getFrameRatio <em>Frame Ratio</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Frame Ratio</em>'.
+	 * @see de.hftstuttgart.buildingphysics.WindowType#getFrameRatio()
+	 * @see #getWindowType()
+	 * @generated
+	 */
+	EAttribute getWindowType_FrameRatio();
+
+	/**
+	 * Returns the meta object for class '{@link de.hftstuttgart.buildingphysics.Catalog <em>Catalog</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Catalog</em>'.
+	 * @see de.hftstuttgart.buildingphysics.Catalog
+	 * @generated
+	 */
+	EClass getCatalog();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.hftstuttgart.buildingphysics.Catalog#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see de.hftstuttgart.buildingphysics.Catalog#getName()
+	 * @see #getCatalog()
+	 * @generated
+	 */
+	EAttribute getCatalog_Name();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.hftstuttgart.buildingphysics.Catalog#getDescription <em>Description</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Description</em>'.
+	 * @see de.hftstuttgart.buildingphysics.Catalog#getDescription()
+	 * @see #getCatalog()
+	 * @generated
+	 */
+	EAttribute getCatalog_Description();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.hftstuttgart.buildingphysics.Catalog#getSource <em>Source</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Source</em>'.
+	 * @see de.hftstuttgart.buildingphysics.Catalog#getSource()
+	 * @see #getCatalog()
+	 * @generated
+	 */
+	EAttribute getCatalog_Source();
+
+	/**
+	 * Returns the meta object for class '{@link de.hftstuttgart.buildingphysics.WindowCatalog <em>Window Catalog</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Window Catalog</em>'.
+	 * @see de.hftstuttgart.buildingphysics.WindowCatalog
+	 * @generated
+	 */
+	EClass getWindowCatalog();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link de.hftstuttgart.buildingphysics.WindowCatalog#getWindowTypes <em>Window Types</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Window Types</em>'.
+	 * @see de.hftstuttgart.buildingphysics.WindowCatalog#getWindowTypes()
+	 * @see #getWindowCatalog()
+	 * @generated
+	 */
+	EReference getWindowCatalog_WindowTypes();
+
+	/**
+	 * Returns the meta object for class '{@link de.hftstuttgart.buildingphysics.MaterialCatalog <em>Material Catalog</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Material Catalog</em>'.
+	 * @see de.hftstuttgart.buildingphysics.MaterialCatalog
+	 * @generated
+	 */
+	EClass getMaterialCatalog();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link de.hftstuttgart.buildingphysics.MaterialCatalog#getMaterialCategories <em>Material Categories</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Material Categories</em>'.
+	 * @see de.hftstuttgart.buildingphysics.MaterialCatalog#getMaterialCategories()
+	 * @see #getMaterialCatalog()
+	 * @generated
+	 */
+	EReference getMaterialCatalog_MaterialCategories();
+
+	/**
+	 * Returns the meta object for class '{@link de.hftstuttgart.buildingphysics.MaterialCategory <em>Material Category</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Material Category</em>'.
+	 * @see de.hftstuttgart.buildingphysics.MaterialCategory
+	 * @generated
+	 */
+	EClass getMaterialCategory();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link de.hftstuttgart.buildingphysics.MaterialCategory#getMaterial <em>Material</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Material</em>'.
+	 * @see de.hftstuttgart.buildingphysics.MaterialCategory#getMaterial()
+	 * @see #getMaterialCategory()
+	 * @generated
+	 */
+	EReference getMaterialCategory_Material();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.hftstuttgart.buildingphysics.MaterialCategory#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see de.hftstuttgart.buildingphysics.MaterialCategory#getName()
+	 * @see #getMaterialCategory()
+	 * @generated
+	 */
+	EAttribute getMaterialCategory_Name();
+
+	/**
+	 * Returns the meta object for class '{@link de.hftstuttgart.buildingphysics.Material <em>Material</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Material</em>'.
+	 * @see de.hftstuttgart.buildingphysics.Material
+	 * @generated
+	 */
+	EClass getMaterial();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.hftstuttgart.buildingphysics.Material#getId <em>Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Id</em>'.
+	 * @see de.hftstuttgart.buildingphysics.Material#getId()
+	 * @see #getMaterial()
+	 * @generated
+	 */
+	EAttribute getMaterial_Id();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.hftstuttgart.buildingphysics.Material#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see de.hftstuttgart.buildingphysics.Material#getName()
+	 * @see #getMaterial()
+	 * @generated
+	 */
+	EAttribute getMaterial_Name();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.hftstuttgart.buildingphysics.Material#getDensity <em>Density</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Density</em>'.
+	 * @see de.hftstuttgart.buildingphysics.Material#getDensity()
+	 * @see #getMaterial()
+	 * @generated
+	 */
+	EAttribute getMaterial_Density();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.hftstuttgart.buildingphysics.Material#getHeatCapacity <em>Heat Capacity</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Heat Capacity</em>'.
+	 * @see de.hftstuttgart.buildingphysics.Material#getHeatCapacity()
+	 * @see #getMaterial()
+	 * @generated
+	 */
+	EAttribute getMaterial_HeatCapacity();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.hftstuttgart.buildingphysics.Material#getConductivity <em>Conductivity</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Conductivity</em>'.
+	 * @see de.hftstuttgart.buildingphysics.Material#getConductivity()
+	 * @see #getMaterial()
+	 * @generated
+	 */
+	EAttribute getMaterial_Conductivity();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	BuildingPhysicsFactory getBuildingPhysicsFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each operation of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link de.hftstuttgart.buildingphysics.impl.BuildingPhysicsCatalogImpl <em>Catalog</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.hftstuttgart.buildingphysics.impl.BuildingPhysicsCatalogImpl
+		 * @see de.hftstuttgart.buildingphysics.impl.BuildingPhysicsPackageImpl#getBuildingPhysicsCatalog()
+		 * @generated
+		 */
+		EClass BUILDING_PHYSICS_CATALOG = eINSTANCE.getBuildingPhysicsCatalog();
+
+		/**
+		 * The meta object literal for the '<em><b>Author</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BUILDING_PHYSICS_CATALOG__AUTHOR = eINSTANCE.getBuildingPhysicsCatalog_Author();
+
+		/**
+		 * The meta object literal for the '<em><b>Window Catalog</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference BUILDING_PHYSICS_CATALOG__WINDOW_CATALOG = eINSTANCE.getBuildingPhysicsCatalog_WindowCatalog();
+
+		/**
+		 * The meta object literal for the '<em><b>Material Catalog</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference BUILDING_PHYSICS_CATALOG__MATERIAL_CATALOG = eINSTANCE.getBuildingPhysicsCatalog_MaterialCatalog();
+
+		/**
+		 * The meta object literal for the '{@link de.hftstuttgart.buildingphysics.impl.WindowTypeImpl <em>Window Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.hftstuttgart.buildingphysics.impl.WindowTypeImpl
+		 * @see de.hftstuttgart.buildingphysics.impl.BuildingPhysicsPackageImpl#getWindowType()
+		 * @generated
+		 */
+		EClass WINDOW_TYPE = eINSTANCE.getWindowType();
+
+		/**
+		 * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute WINDOW_TYPE__ID = eINSTANCE.getWindowType_Id();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute WINDOW_TYPE__NAME = eINSTANCE.getWindowType_Name();
+
+		/**
+		 * The meta object literal for the '<em><b>UValue</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute WINDOW_TYPE__UVALUE = eINSTANCE.getWindowType_UValue();
+
+		/**
+		 * The meta object literal for the '<em><b>GValue</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute WINDOW_TYPE__GVALUE = eINSTANCE.getWindowType_GValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Glazing Number</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute WINDOW_TYPE__GLAZING_NUMBER = eINSTANCE.getWindowType_GlazingNumber();
+
+		/**
+		 * The meta object literal for the '<em><b>Frame Ratio</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute WINDOW_TYPE__FRAME_RATIO = eINSTANCE.getWindowType_FrameRatio();
+
+		/**
+		 * The meta object literal for the '{@link de.hftstuttgart.buildingphysics.impl.CatalogImpl <em>Catalog</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.hftstuttgart.buildingphysics.impl.CatalogImpl
+		 * @see de.hftstuttgart.buildingphysics.impl.BuildingPhysicsPackageImpl#getCatalog()
+		 * @generated
+		 */
+		EClass CATALOG = eINSTANCE.getCatalog();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CATALOG__NAME = eINSTANCE.getCatalog_Name();
+
+		/**
+		 * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CATALOG__DESCRIPTION = eINSTANCE.getCatalog_Description();
+
+		/**
+		 * The meta object literal for the '<em><b>Source</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CATALOG__SOURCE = eINSTANCE.getCatalog_Source();
+
+		/**
+		 * The meta object literal for the '{@link de.hftstuttgart.buildingphysics.impl.WindowCatalogImpl <em>Window Catalog</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.hftstuttgart.buildingphysics.impl.WindowCatalogImpl
+		 * @see de.hftstuttgart.buildingphysics.impl.BuildingPhysicsPackageImpl#getWindowCatalog()
+		 * @generated
+		 */
+		EClass WINDOW_CATALOG = eINSTANCE.getWindowCatalog();
+
+		/**
+		 * The meta object literal for the '<em><b>Window Types</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference WINDOW_CATALOG__WINDOW_TYPES = eINSTANCE.getWindowCatalog_WindowTypes();
+
+		/**
+		 * The meta object literal for the '{@link de.hftstuttgart.buildingphysics.impl.MaterialCatalogImpl <em>Material Catalog</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.hftstuttgart.buildingphysics.impl.MaterialCatalogImpl
+		 * @see de.hftstuttgart.buildingphysics.impl.BuildingPhysicsPackageImpl#getMaterialCatalog()
+		 * @generated
+		 */
+		EClass MATERIAL_CATALOG = eINSTANCE.getMaterialCatalog();
+
+		/**
+		 * The meta object literal for the '<em><b>Material Categories</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference MATERIAL_CATALOG__MATERIAL_CATEGORIES = eINSTANCE.getMaterialCatalog_MaterialCategories();
+
+		/**
+		 * The meta object literal for the '{@link de.hftstuttgart.buildingphysics.impl.MaterialCategoryImpl <em>Material Category</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.hftstuttgart.buildingphysics.impl.MaterialCategoryImpl
+		 * @see de.hftstuttgart.buildingphysics.impl.BuildingPhysicsPackageImpl#getMaterialCategory()
+		 * @generated
+		 */
+		EClass MATERIAL_CATEGORY = eINSTANCE.getMaterialCategory();
+
+		/**
+		 * The meta object literal for the '<em><b>Material</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference MATERIAL_CATEGORY__MATERIAL = eINSTANCE.getMaterialCategory_Material();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute MATERIAL_CATEGORY__NAME = eINSTANCE.getMaterialCategory_Name();
+
+		/**
+		 * The meta object literal for the '{@link de.hftstuttgart.buildingphysics.impl.MaterialImpl <em>Material</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.hftstuttgart.buildingphysics.impl.MaterialImpl
+		 * @see de.hftstuttgart.buildingphysics.impl.BuildingPhysicsPackageImpl#getMaterial()
+		 * @generated
+		 */
+		EClass MATERIAL = eINSTANCE.getMaterial();
+
+		/**
+		 * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute MATERIAL__ID = eINSTANCE.getMaterial_Id();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute MATERIAL__NAME = eINSTANCE.getMaterial_Name();
+
+		/**
+		 * The meta object literal for the '<em><b>Density</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute MATERIAL__DENSITY = eINSTANCE.getMaterial_Density();
+
+		/**
+		 * The meta object literal for the '<em><b>Heat Capacity</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute MATERIAL__HEAT_CAPACITY = eINSTANCE.getMaterial_HeatCapacity();
+
+		/**
+		 * The meta object literal for the '<em><b>Conductivity</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute MATERIAL__CONDUCTIVITY = eINSTANCE.getMaterial_Conductivity();
+
+	}
+
+} //BuildingPhysicsPackage
diff --git a/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/Catalog.java b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/Catalog.java
new file mode 100644
index 0000000..b9d6f5b
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/Catalog.java
@@ -0,0 +1,92 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Catalog</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.hftstuttgart.buildingphysics.Catalog#getName <em>Name</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.Catalog#getDescription <em>Description</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.Catalog#getSource <em>Source</em>}</li>
+ * </ul>
+ *
+ * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getCatalog()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Catalog extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getCatalog_Name()
+	 * @model required="true"
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link de.hftstuttgart.buildingphysics.Catalog#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Description</em>' attribute.
+	 * @see #setDescription(String)
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getCatalog_Description()
+	 * @model
+	 * @generated
+	 */
+	String getDescription();
+
+	/**
+	 * Sets the value of the '{@link de.hftstuttgart.buildingphysics.Catalog#getDescription <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Description</em>' attribute.
+	 * @see #getDescription()
+	 * @generated
+	 */
+	void setDescription(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Source</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Source</em>' attribute.
+	 * @see #setSource(String)
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getCatalog_Source()
+	 * @model
+	 * @generated
+	 */
+	String getSource();
+
+	/**
+	 * Sets the value of the '{@link de.hftstuttgart.buildingphysics.Catalog#getSource <em>Source</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Source</em>' attribute.
+	 * @see #getSource()
+	 * @generated
+	 */
+	void setSource(String value);
+
+} // Catalog
diff --git a/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/Material.java b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/Material.java
new file mode 100644
index 0000000..778a431
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/Material.java
@@ -0,0 +1,138 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Material</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.hftstuttgart.buildingphysics.Material#getId <em>Id</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.Material#getName <em>Name</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.Material#getDensity <em>Density</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.Material#getHeatCapacity <em>Heat Capacity</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.Material#getConductivity <em>Conductivity</em>}</li>
+ * </ul>
+ *
+ * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getMaterial()
+ * @model
+ * @generated
+ */
+public interface Material extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Id</em>' attribute.
+	 * @see #setId(int)
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getMaterial_Id()
+	 * @model id="true" required="true"
+	 * @generated
+	 */
+	int getId();
+
+	/**
+	 * Sets the value of the '{@link de.hftstuttgart.buildingphysics.Material#getId <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Id</em>' attribute.
+	 * @see #getId()
+	 * @generated
+	 */
+	void setId(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getMaterial_Name()
+	 * @model required="true"
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link de.hftstuttgart.buildingphysics.Material#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Density</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Density</em>' attribute.
+	 * @see #setDensity(double)
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getMaterial_Density()
+	 * @model required="true"
+	 * @generated
+	 */
+	double getDensity();
+
+	/**
+	 * Sets the value of the '{@link de.hftstuttgart.buildingphysics.Material#getDensity <em>Density</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Density</em>' attribute.
+	 * @see #getDensity()
+	 * @generated
+	 */
+	void setDensity(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Heat Capacity</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Heat Capacity</em>' attribute.
+	 * @see #setHeatCapacity(double)
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getMaterial_HeatCapacity()
+	 * @model required="true"
+	 * @generated
+	 */
+	double getHeatCapacity();
+
+	/**
+	 * Sets the value of the '{@link de.hftstuttgart.buildingphysics.Material#getHeatCapacity <em>Heat Capacity</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Heat Capacity</em>' attribute.
+	 * @see #getHeatCapacity()
+	 * @generated
+	 */
+	void setHeatCapacity(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Conductivity</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Conductivity</em>' attribute.
+	 * @see #setConductivity(double)
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getMaterial_Conductivity()
+	 * @model required="true"
+	 * @generated
+	 */
+	double getConductivity();
+
+	/**
+	 * Sets the value of the '{@link de.hftstuttgart.buildingphysics.Material#getConductivity <em>Conductivity</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Conductivity</em>' attribute.
+	 * @see #getConductivity()
+	 * @generated
+	 */
+	void setConductivity(double value);
+
+} // Material
diff --git a/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/MaterialCatalog.java b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/MaterialCatalog.java
new file mode 100644
index 0000000..acd13e3
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/MaterialCatalog.java
@@ -0,0 +1,36 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Material Catalog</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.hftstuttgart.buildingphysics.MaterialCatalog#getMaterialCategories <em>Material Categories</em>}</li>
+ * </ul>
+ *
+ * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getMaterialCatalog()
+ * @model
+ * @generated
+ */
+public interface MaterialCatalog extends Catalog {
+	/**
+	 * Returns the value of the '<em><b>Material Categories</b></em>' containment reference list.
+	 * The list contents are of type {@link de.hftstuttgart.buildingphysics.MaterialCategory}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Material Categories</em>' containment reference list.
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getMaterialCatalog_MaterialCategories()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<MaterialCategory> getMaterialCategories();
+
+} // MaterialCatalog
diff --git a/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/MaterialCategory.java b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/MaterialCategory.java
new file mode 100644
index 0000000..75c3970
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/MaterialCategory.java
@@ -0,0 +1,61 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Material Category</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.hftstuttgart.buildingphysics.MaterialCategory#getMaterial <em>Material</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.MaterialCategory#getName <em>Name</em>}</li>
+ * </ul>
+ *
+ * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getMaterialCategory()
+ * @model
+ * @generated
+ */
+public interface MaterialCategory extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Material</b></em>' containment reference list.
+	 * The list contents are of type {@link de.hftstuttgart.buildingphysics.Material}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Material</em>' containment reference list.
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getMaterialCategory_Material()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<Material> getMaterial();
+
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getMaterialCategory_Name()
+	 * @model required="true"
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link de.hftstuttgart.buildingphysics.MaterialCategory#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+} // MaterialCategory
diff --git a/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/WindowCatalog.java b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/WindowCatalog.java
new file mode 100644
index 0000000..e000ecc
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/WindowCatalog.java
@@ -0,0 +1,36 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Window Catalog</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.hftstuttgart.buildingphysics.WindowCatalog#getWindowTypes <em>Window Types</em>}</li>
+ * </ul>
+ *
+ * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getWindowCatalog()
+ * @model
+ * @generated
+ */
+public interface WindowCatalog extends Catalog {
+	/**
+	 * Returns the value of the '<em><b>Window Types</b></em>' containment reference list.
+	 * The list contents are of type {@link de.hftstuttgart.buildingphysics.WindowType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Window Types</em>' containment reference list.
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getWindowCatalog_WindowTypes()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<WindowType> getWindowTypes();
+
+} // WindowCatalog
diff --git a/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/WindowType.java b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/WindowType.java
new file mode 100644
index 0000000..8e5f3c4
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/WindowType.java
@@ -0,0 +1,164 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Window Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.hftstuttgart.buildingphysics.WindowType#getId <em>Id</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.WindowType#getName <em>Name</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.WindowType#getUValue <em>UValue</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.WindowType#getGValue <em>GValue</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.WindowType#getGlazingNumber <em>Glazing Number</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.WindowType#getFrameRatio <em>Frame Ratio</em>}</li>
+ * </ul>
+ *
+ * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getWindowType()
+ * @model
+ * @generated
+ */
+public interface WindowType extends EObject {
+
+	/**
+	 * Returns the value of the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Id</em>' attribute.
+	 * @see #setId(int)
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getWindowType_Id()
+	 * @model id="true" required="true"
+	 * @generated
+	 */
+	int getId();
+
+	/**
+	 * Sets the value of the '{@link de.hftstuttgart.buildingphysics.WindowType#getId <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Id</em>' attribute.
+	 * @see #getId()
+	 * @generated
+	 */
+	void setId(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getWindowType_Name()
+	 * @model required="true"
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link de.hftstuttgart.buildingphysics.WindowType#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>UValue</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>UValue</em>' attribute.
+	 * @see #setUValue(double)
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getWindowType_UValue()
+	 * @model required="true"
+	 * @generated
+	 */
+	double getUValue();
+
+	/**
+	 * Sets the value of the '{@link de.hftstuttgart.buildingphysics.WindowType#getUValue <em>UValue</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>UValue</em>' attribute.
+	 * @see #getUValue()
+	 * @generated
+	 */
+	void setUValue(double value);
+
+	/**
+	 * Returns the value of the '<em><b>GValue</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>GValue</em>' attribute.
+	 * @see #setGValue(double)
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getWindowType_GValue()
+	 * @model required="true"
+	 * @generated
+	 */
+	double getGValue();
+
+	/**
+	 * Sets the value of the '{@link de.hftstuttgart.buildingphysics.WindowType#getGValue <em>GValue</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>GValue</em>' attribute.
+	 * @see #getGValue()
+	 * @generated
+	 */
+	void setGValue(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Glazing Number</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Glazing Number</em>' attribute.
+	 * @see #setGlazingNumber(int)
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getWindowType_GlazingNumber()
+	 * @model required="true"
+	 * @generated
+	 */
+	int getGlazingNumber();
+
+	/**
+	 * Sets the value of the '{@link de.hftstuttgart.buildingphysics.WindowType#getGlazingNumber <em>Glazing Number</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Glazing Number</em>' attribute.
+	 * @see #getGlazingNumber()
+	 * @generated
+	 */
+	void setGlazingNumber(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Frame Ratio</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * In % (between 0 and 100)
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Frame Ratio</em>' attribute.
+	 * @see #setFrameRatio(int)
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#getWindowType_FrameRatio()
+	 * @model required="true"
+	 * @generated
+	 */
+	int getFrameRatio();
+
+	/**
+	 * Sets the value of the '{@link de.hftstuttgart.buildingphysics.WindowType#getFrameRatio <em>Frame Ratio</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Frame Ratio</em>' attribute.
+	 * @see #getFrameRatio()
+	 * @generated
+	 */
+	void setFrameRatio(int value);
+} // WindowType
diff --git a/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/BuildingPhysicsCatalogImpl.java b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/BuildingPhysicsCatalogImpl.java
new file mode 100644
index 0000000..2020825
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/BuildingPhysicsCatalogImpl.java
@@ -0,0 +1,334 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics.impl;
+
+import de.hftstuttgart.buildingphysics.BuildingPhysicsCatalog;
+import de.hftstuttgart.buildingphysics.BuildingPhysicsPackage;
+import de.hftstuttgart.buildingphysics.MaterialCatalog;
+import de.hftstuttgart.buildingphysics.WindowCatalog;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Catalog</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.hftstuttgart.buildingphysics.impl.BuildingPhysicsCatalogImpl#getAuthor <em>Author</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.impl.BuildingPhysicsCatalogImpl#getWindowCatalog <em>Window Catalog</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.impl.BuildingPhysicsCatalogImpl#getMaterialCatalog <em>Material Catalog</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class BuildingPhysicsCatalogImpl extends MinimalEObjectImpl.Container implements BuildingPhysicsCatalog {
+	/**
+	 * The default value of the '{@link #getAuthor() <em>Author</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAuthor()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String AUTHOR_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getAuthor() <em>Author</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAuthor()
+	 * @generated
+	 * @ordered
+	 */
+	protected String author = AUTHOR_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getWindowCatalog() <em>Window Catalog</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getWindowCatalog()
+	 * @generated
+	 * @ordered
+	 */
+	protected WindowCatalog windowCatalog;
+
+	/**
+	 * The cached value of the '{@link #getMaterialCatalog() <em>Material Catalog</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaterialCatalog()
+	 * @generated
+	 * @ordered
+	 */
+	protected MaterialCatalog materialCatalog;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected BuildingPhysicsCatalogImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BuildingPhysicsPackage.Literals.BUILDING_PHYSICS_CATALOG;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getAuthor() {
+		return author;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAuthor(String newAuthor) {
+		String oldAuthor = author;
+		author = newAuthor;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__AUTHOR, oldAuthor, author));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public WindowCatalog getWindowCatalog() {
+		return windowCatalog;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetWindowCatalog(WindowCatalog newWindowCatalog, NotificationChain msgs) {
+		WindowCatalog oldWindowCatalog = windowCatalog;
+		windowCatalog = newWindowCatalog;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+					BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__WINDOW_CATALOG, oldWindowCatalog,
+					newWindowCatalog);
+			if (msgs == null)
+				msgs = notification;
+			else
+				msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setWindowCatalog(WindowCatalog newWindowCatalog) {
+		if (newWindowCatalog != windowCatalog) {
+			NotificationChain msgs = null;
+			if (windowCatalog != null)
+				msgs = ((InternalEObject) windowCatalog).eInverseRemove(this,
+						EOPPOSITE_FEATURE_BASE - BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__WINDOW_CATALOG, null,
+						msgs);
+			if (newWindowCatalog != null)
+				msgs = ((InternalEObject) newWindowCatalog).eInverseAdd(this,
+						EOPPOSITE_FEATURE_BASE - BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__WINDOW_CATALOG, null,
+						msgs);
+			msgs = basicSetWindowCatalog(newWindowCatalog, msgs);
+			if (msgs != null)
+				msgs.dispatch();
+		} else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__WINDOW_CATALOG, newWindowCatalog,
+					newWindowCatalog));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public MaterialCatalog getMaterialCatalog() {
+		return materialCatalog;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetMaterialCatalog(MaterialCatalog newMaterialCatalog, NotificationChain msgs) {
+		MaterialCatalog oldMaterialCatalog = materialCatalog;
+		materialCatalog = newMaterialCatalog;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+					BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__MATERIAL_CATALOG, oldMaterialCatalog,
+					newMaterialCatalog);
+			if (msgs == null)
+				msgs = notification;
+			else
+				msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaterialCatalog(MaterialCatalog newMaterialCatalog) {
+		if (newMaterialCatalog != materialCatalog) {
+			NotificationChain msgs = null;
+			if (materialCatalog != null)
+				msgs = ((InternalEObject) materialCatalog).eInverseRemove(this,
+						EOPPOSITE_FEATURE_BASE - BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__MATERIAL_CATALOG,
+						null, msgs);
+			if (newMaterialCatalog != null)
+				msgs = ((InternalEObject) newMaterialCatalog).eInverseAdd(this,
+						EOPPOSITE_FEATURE_BASE - BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__MATERIAL_CATALOG,
+						null, msgs);
+			msgs = basicSetMaterialCatalog(newMaterialCatalog, msgs);
+			if (msgs != null)
+				msgs.dispatch();
+		} else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__MATERIAL_CATALOG, newMaterialCatalog,
+					newMaterialCatalog));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__WINDOW_CATALOG:
+			return basicSetWindowCatalog(null, msgs);
+		case BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__MATERIAL_CATALOG:
+			return basicSetMaterialCatalog(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__AUTHOR:
+			return getAuthor();
+		case BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__WINDOW_CATALOG:
+			return getWindowCatalog();
+		case BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__MATERIAL_CATALOG:
+			return getMaterialCatalog();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__AUTHOR:
+			setAuthor((String) newValue);
+			return;
+		case BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__WINDOW_CATALOG:
+			setWindowCatalog((WindowCatalog) newValue);
+			return;
+		case BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__MATERIAL_CATALOG:
+			setMaterialCatalog((MaterialCatalog) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__AUTHOR:
+			setAuthor(AUTHOR_EDEFAULT);
+			return;
+		case BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__WINDOW_CATALOG:
+			setWindowCatalog((WindowCatalog) null);
+			return;
+		case BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__MATERIAL_CATALOG:
+			setMaterialCatalog((MaterialCatalog) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__AUTHOR:
+			return AUTHOR_EDEFAULT == null ? author != null : !AUTHOR_EDEFAULT.equals(author);
+		case BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__WINDOW_CATALOG:
+			return windowCatalog != null;
+		case BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG__MATERIAL_CATALOG:
+			return materialCatalog != null;
+		}
+		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(" (author: ");
+		result.append(author);
+		result.append(')');
+		return result.toString();
+	}
+
+} //BuildingPhysicsCatalogImpl
diff --git a/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/BuildingPhysicsFactoryImpl.java b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/BuildingPhysicsFactoryImpl.java
new file mode 100644
index 0000000..0ba994b
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/BuildingPhysicsFactoryImpl.java
@@ -0,0 +1,156 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics.impl;
+
+import de.hftstuttgart.buildingphysics.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BuildingPhysicsFactoryImpl extends EFactoryImpl implements BuildingPhysicsFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static BuildingPhysicsFactory init() {
+		try {
+			BuildingPhysicsFactory theBuildingPhysicsFactory = (BuildingPhysicsFactory) EPackage.Registry.INSTANCE
+					.getEFactory(BuildingPhysicsPackage.eNS_URI);
+			if (theBuildingPhysicsFactory != null) {
+				return theBuildingPhysicsFactory;
+			}
+		} catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new BuildingPhysicsFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BuildingPhysicsFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+		case BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG:
+			return createBuildingPhysicsCatalog();
+		case BuildingPhysicsPackage.WINDOW_TYPE:
+			return createWindowType();
+		case BuildingPhysicsPackage.WINDOW_CATALOG:
+			return createWindowCatalog();
+		case BuildingPhysicsPackage.MATERIAL_CATALOG:
+			return createMaterialCatalog();
+		case BuildingPhysicsPackage.MATERIAL_CATEGORY:
+			return createMaterialCategory();
+		case BuildingPhysicsPackage.MATERIAL:
+			return createMaterial();
+		default:
+			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BuildingPhysicsCatalog createBuildingPhysicsCatalog() {
+		BuildingPhysicsCatalogImpl buildingPhysicsCatalog = new BuildingPhysicsCatalogImpl();
+		return buildingPhysicsCatalog;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public WindowType createWindowType() {
+		WindowTypeImpl windowType = new WindowTypeImpl();
+		return windowType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public WindowCatalog createWindowCatalog() {
+		WindowCatalogImpl windowCatalog = new WindowCatalogImpl();
+		return windowCatalog;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public MaterialCatalog createMaterialCatalog() {
+		MaterialCatalogImpl materialCatalog = new MaterialCatalogImpl();
+		return materialCatalog;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public MaterialCategory createMaterialCategory() {
+		MaterialCategoryImpl materialCategory = new MaterialCategoryImpl();
+		return materialCategory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Material createMaterial() {
+		MaterialImpl material = new MaterialImpl();
+		return material;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BuildingPhysicsPackage getBuildingPhysicsPackage() {
+		return (BuildingPhysicsPackage) getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static BuildingPhysicsPackage getPackage() {
+		return BuildingPhysicsPackage.eINSTANCE;
+	}
+
+} //BuildingPhysicsFactoryImpl
diff --git a/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/BuildingPhysicsPackageImpl.java b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/BuildingPhysicsPackageImpl.java
new file mode 100644
index 0000000..78323e2
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/BuildingPhysicsPackageImpl.java
@@ -0,0 +1,568 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics.impl;
+
+import de.hftstuttgart.buildingphysics.BuildingPhysicsCatalog;
+import de.hftstuttgart.buildingphysics.BuildingPhysicsFactory;
+import de.hftstuttgart.buildingphysics.BuildingPhysicsPackage;
+import de.hftstuttgart.buildingphysics.Catalog;
+import de.hftstuttgart.buildingphysics.Material;
+import de.hftstuttgart.buildingphysics.MaterialCatalog;
+import de.hftstuttgart.buildingphysics.MaterialCategory;
+import de.hftstuttgart.buildingphysics.WindowCatalog;
+import de.hftstuttgart.buildingphysics.WindowType;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BuildingPhysicsPackageImpl extends EPackageImpl implements BuildingPhysicsPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass buildingPhysicsCatalogEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass windowTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass catalogEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass windowCatalogEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass materialCatalogEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass materialCategoryEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass materialEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private BuildingPhysicsPackageImpl() {
+		super(eNS_URI, BuildingPhysicsFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>This method is used to initialize {@link BuildingPhysicsPackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static BuildingPhysicsPackage init() {
+		if (isInited)
+			return (BuildingPhysicsPackage) EPackage.Registry.INSTANCE.getEPackage(BuildingPhysicsPackage.eNS_URI);
+
+		// Obtain or create and register package
+		Object registeredBuildingPhysicsPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+		BuildingPhysicsPackageImpl theBuildingPhysicsPackage = registeredBuildingPhysicsPackage instanceof BuildingPhysicsPackageImpl
+				? (BuildingPhysicsPackageImpl) registeredBuildingPhysicsPackage
+				: new BuildingPhysicsPackageImpl();
+
+		isInited = true;
+
+		// Create package meta-data objects
+		theBuildingPhysicsPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theBuildingPhysicsPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theBuildingPhysicsPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(BuildingPhysicsPackage.eNS_URI, theBuildingPhysicsPackage);
+		return theBuildingPhysicsPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getBuildingPhysicsCatalog() {
+		return buildingPhysicsCatalogEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBuildingPhysicsCatalog_Author() {
+		return (EAttribute) buildingPhysicsCatalogEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBuildingPhysicsCatalog_WindowCatalog() {
+		return (EReference) buildingPhysicsCatalogEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBuildingPhysicsCatalog_MaterialCatalog() {
+		return (EReference) buildingPhysicsCatalogEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getWindowType() {
+		return windowTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getWindowType_Id() {
+		return (EAttribute) windowTypeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getWindowType_Name() {
+		return (EAttribute) windowTypeEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getWindowType_UValue() {
+		return (EAttribute) windowTypeEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getWindowType_GValue() {
+		return (EAttribute) windowTypeEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getWindowType_GlazingNumber() {
+		return (EAttribute) windowTypeEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getWindowType_FrameRatio() {
+		return (EAttribute) windowTypeEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getCatalog() {
+		return catalogEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getCatalog_Name() {
+		return (EAttribute) catalogEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getCatalog_Description() {
+		return (EAttribute) catalogEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getCatalog_Source() {
+		return (EAttribute) catalogEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getWindowCatalog() {
+		return windowCatalogEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getWindowCatalog_WindowTypes() {
+		return (EReference) windowCatalogEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getMaterialCatalog() {
+		return materialCatalogEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getMaterialCatalog_MaterialCategories() {
+		return (EReference) materialCatalogEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getMaterialCategory() {
+		return materialCategoryEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getMaterialCategory_Material() {
+		return (EReference) materialCategoryEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMaterialCategory_Name() {
+		return (EAttribute) materialCategoryEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getMaterial() {
+		return materialEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMaterial_Id() {
+		return (EAttribute) materialEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMaterial_Name() {
+		return (EAttribute) materialEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMaterial_Density() {
+		return (EAttribute) materialEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMaterial_HeatCapacity() {
+		return (EAttribute) materialEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMaterial_Conductivity() {
+		return (EAttribute) materialEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BuildingPhysicsFactory getBuildingPhysicsFactory() {
+		return (BuildingPhysicsFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated)
+			return;
+		isCreated = true;
+
+		// Create classes and their features
+		buildingPhysicsCatalogEClass = createEClass(BUILDING_PHYSICS_CATALOG);
+		createEAttribute(buildingPhysicsCatalogEClass, BUILDING_PHYSICS_CATALOG__AUTHOR);
+		createEReference(buildingPhysicsCatalogEClass, BUILDING_PHYSICS_CATALOG__WINDOW_CATALOG);
+		createEReference(buildingPhysicsCatalogEClass, BUILDING_PHYSICS_CATALOG__MATERIAL_CATALOG);
+
+		windowTypeEClass = createEClass(WINDOW_TYPE);
+		createEAttribute(windowTypeEClass, WINDOW_TYPE__ID);
+		createEAttribute(windowTypeEClass, WINDOW_TYPE__NAME);
+		createEAttribute(windowTypeEClass, WINDOW_TYPE__UVALUE);
+		createEAttribute(windowTypeEClass, WINDOW_TYPE__GVALUE);
+		createEAttribute(windowTypeEClass, WINDOW_TYPE__GLAZING_NUMBER);
+		createEAttribute(windowTypeEClass, WINDOW_TYPE__FRAME_RATIO);
+
+		catalogEClass = createEClass(CATALOG);
+		createEAttribute(catalogEClass, CATALOG__NAME);
+		createEAttribute(catalogEClass, CATALOG__DESCRIPTION);
+		createEAttribute(catalogEClass, CATALOG__SOURCE);
+
+		windowCatalogEClass = createEClass(WINDOW_CATALOG);
+		createEReference(windowCatalogEClass, WINDOW_CATALOG__WINDOW_TYPES);
+
+		materialCatalogEClass = createEClass(MATERIAL_CATALOG);
+		createEReference(materialCatalogEClass, MATERIAL_CATALOG__MATERIAL_CATEGORIES);
+
+		materialCategoryEClass = createEClass(MATERIAL_CATEGORY);
+		createEReference(materialCategoryEClass, MATERIAL_CATEGORY__MATERIAL);
+		createEAttribute(materialCategoryEClass, MATERIAL_CATEGORY__NAME);
+
+		materialEClass = createEClass(MATERIAL);
+		createEAttribute(materialEClass, MATERIAL__ID);
+		createEAttribute(materialEClass, MATERIAL__NAME);
+		createEAttribute(materialEClass, MATERIAL__DENSITY);
+		createEAttribute(materialEClass, MATERIAL__HEAT_CAPACITY);
+		createEAttribute(materialEClass, MATERIAL__CONDUCTIVITY);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized)
+			return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+		windowCatalogEClass.getESuperTypes().add(this.getCatalog());
+		materialCatalogEClass.getESuperTypes().add(this.getCatalog());
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(buildingPhysicsCatalogEClass, BuildingPhysicsCatalog.class, "BuildingPhysicsCatalog", !IS_ABSTRACT,
+				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getBuildingPhysicsCatalog_Author(), ecorePackage.getEString(), "author", null, 1, 1,
+				BuildingPhysicsCatalog.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getBuildingPhysicsCatalog_WindowCatalog(), this.getWindowCatalog(), null, "windowCatalog", null,
+				1, 1, BuildingPhysicsCatalog.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+				!IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getBuildingPhysicsCatalog_MaterialCatalog(), this.getMaterialCatalog(), null, "materialCatalog",
+				null, 1, 1, BuildingPhysicsCatalog.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+				!IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(windowTypeEClass, WindowType.class, "WindowType", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getWindowType_Id(), ecorePackage.getEInt(), "id", null, 1, 1, WindowType.class, !IS_TRANSIENT,
+				!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(), ecorePackage.getEDouble(), "uValue", null, 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", null, 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);
+
+		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,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getCatalog_Description(), ecorePackage.getEString(), "description", null, 0, 1, Catalog.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getCatalog_Source(), ecorePackage.getEString(), "source", null, 0, 1, Catalog.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(windowCatalogEClass, WindowCatalog.class, "WindowCatalog", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getWindowCatalog_WindowTypes(), this.getWindowType(), null, "windowTypes", null, 0, -1,
+				WindowCatalog.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(materialCatalogEClass, MaterialCatalog.class, "MaterialCatalog", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getMaterialCatalog_MaterialCategories(), this.getMaterialCategory(), null, "materialCategories",
+				null, 0, -1, MaterialCatalog.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+				!IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(materialCategoryEClass, MaterialCategory.class, "MaterialCategory", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getMaterialCategory_Material(), this.getMaterial(), null, "material", null, 0, -1,
+				MaterialCategory.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getMaterialCategory_Name(), ecorePackage.getEString(), "name", null, 1, 1,
+				MaterialCategory.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+
+		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,
+				!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_HeatCapacity(), ecorePackage.getEDouble(), "heatCapacity", null, 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,
+				!IS_DERIVED, IS_ORDERED);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} //BuildingPhysicsPackageImpl
diff --git a/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/CatalogImpl.java b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/CatalogImpl.java
new file mode 100644
index 0000000..c045fd6
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/CatalogImpl.java
@@ -0,0 +1,274 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics.impl;
+
+import de.hftstuttgart.buildingphysics.BuildingPhysicsPackage;
+import de.hftstuttgart.buildingphysics.Catalog;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Catalog</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.hftstuttgart.buildingphysics.impl.CatalogImpl#getName <em>Name</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.impl.CatalogImpl#getDescription <em>Description</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.impl.CatalogImpl#getSource <em>Source</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class CatalogImpl extends MinimalEObjectImpl.Container implements Catalog {
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSource() <em>Source</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSource()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SOURCE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSource() <em>Source</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSource()
+	 * @generated
+	 * @ordered
+	 */
+	protected String source = SOURCE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CatalogImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BuildingPhysicsPackage.Literals.CATALOG;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BuildingPhysicsPackage.CATALOG__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BuildingPhysicsPackage.CATALOG__DESCRIPTION,
+					oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSource() {
+		return source;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSource(String newSource) {
+		String oldSource = source;
+		source = newSource;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BuildingPhysicsPackage.CATALOG__SOURCE, oldSource,
+					source));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.CATALOG__NAME:
+			return getName();
+		case BuildingPhysicsPackage.CATALOG__DESCRIPTION:
+			return getDescription();
+		case BuildingPhysicsPackage.CATALOG__SOURCE:
+			return getSource();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.CATALOG__NAME:
+			setName((String) newValue);
+			return;
+		case BuildingPhysicsPackage.CATALOG__DESCRIPTION:
+			setDescription((String) newValue);
+			return;
+		case BuildingPhysicsPackage.CATALOG__SOURCE:
+			setSource((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.CATALOG__NAME:
+			setName(NAME_EDEFAULT);
+			return;
+		case BuildingPhysicsPackage.CATALOG__DESCRIPTION:
+			setDescription(DESCRIPTION_EDEFAULT);
+			return;
+		case BuildingPhysicsPackage.CATALOG__SOURCE:
+			setSource(SOURCE_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.CATALOG__NAME:
+			return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+		case BuildingPhysicsPackage.CATALOG__DESCRIPTION:
+			return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+		case BuildingPhysicsPackage.CATALOG__SOURCE:
+			return SOURCE_EDEFAULT == null ? source != null : !SOURCE_EDEFAULT.equals(source);
+		}
+		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(" (name: ");
+		result.append(name);
+		result.append(", description: ");
+		result.append(description);
+		result.append(", source: ");
+		result.append(source);
+		result.append(')');
+		return result.toString();
+	}
+
+} //CatalogImpl
diff --git a/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/MaterialCatalogImpl.java b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/MaterialCatalogImpl.java
new file mode 100644
index 0000000..2690911
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/MaterialCatalogImpl.java
@@ -0,0 +1,151 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics.impl;
+
+import de.hftstuttgart.buildingphysics.BuildingPhysicsPackage;
+import de.hftstuttgart.buildingphysics.MaterialCatalog;
+import de.hftstuttgart.buildingphysics.MaterialCategory;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Material Catalog</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.hftstuttgart.buildingphysics.impl.MaterialCatalogImpl#getMaterialCategories <em>Material Categories</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class MaterialCatalogImpl extends CatalogImpl implements MaterialCatalog {
+	/**
+	 * The cached value of the '{@link #getMaterialCategories() <em>Material Categories</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaterialCategories()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<MaterialCategory> materialCategories;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MaterialCatalogImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BuildingPhysicsPackage.Literals.MATERIAL_CATALOG;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<MaterialCategory> getMaterialCategories() {
+		if (materialCategories == null) {
+			materialCategories = new EObjectContainmentEList<MaterialCategory>(MaterialCategory.class, this,
+					BuildingPhysicsPackage.MATERIAL_CATALOG__MATERIAL_CATEGORIES);
+		}
+		return materialCategories;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.MATERIAL_CATALOG__MATERIAL_CATEGORIES:
+			return ((InternalEList<?>) getMaterialCategories()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.MATERIAL_CATALOG__MATERIAL_CATEGORIES:
+			return getMaterialCategories();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.MATERIAL_CATALOG__MATERIAL_CATEGORIES:
+			getMaterialCategories().clear();
+			getMaterialCategories().addAll((Collection<? extends MaterialCategory>) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.MATERIAL_CATALOG__MATERIAL_CATEGORIES:
+			getMaterialCategories().clear();
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.MATERIAL_CATALOG__MATERIAL_CATEGORIES:
+			return materialCategories != null && !materialCategories.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //MaterialCatalogImpl
diff --git a/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/MaterialCategoryImpl.java b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/MaterialCategoryImpl.java
new file mode 100644
index 0000000..17b716a
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/MaterialCategoryImpl.java
@@ -0,0 +1,225 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics.impl;
+
+import de.hftstuttgart.buildingphysics.BuildingPhysicsPackage;
+import de.hftstuttgart.buildingphysics.Material;
+import de.hftstuttgart.buildingphysics.MaterialCategory;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+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.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Material Category</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.hftstuttgart.buildingphysics.impl.MaterialCategoryImpl#getMaterial <em>Material</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.impl.MaterialCategoryImpl#getName <em>Name</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class MaterialCategoryImpl extends MinimalEObjectImpl.Container implements MaterialCategory {
+	/**
+	 * The cached value of the '{@link #getMaterial() <em>Material</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaterial()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Material> material;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MaterialCategoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BuildingPhysicsPackage.Literals.MATERIAL_CATEGORY;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Material> getMaterial() {
+		if (material == null) {
+			material = new EObjectContainmentEList<Material>(Material.class, this,
+					BuildingPhysicsPackage.MATERIAL_CATEGORY__MATERIAL);
+		}
+		return material;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BuildingPhysicsPackage.MATERIAL_CATEGORY__NAME,
+					oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.MATERIAL_CATEGORY__MATERIAL:
+			return ((InternalEList<?>) getMaterial()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.MATERIAL_CATEGORY__MATERIAL:
+			return getMaterial();
+		case BuildingPhysicsPackage.MATERIAL_CATEGORY__NAME:
+			return getName();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.MATERIAL_CATEGORY__MATERIAL:
+			getMaterial().clear();
+			getMaterial().addAll((Collection<? extends Material>) newValue);
+			return;
+		case BuildingPhysicsPackage.MATERIAL_CATEGORY__NAME:
+			setName((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.MATERIAL_CATEGORY__MATERIAL:
+			getMaterial().clear();
+			return;
+		case BuildingPhysicsPackage.MATERIAL_CATEGORY__NAME:
+			setName(NAME_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.MATERIAL_CATEGORY__MATERIAL:
+			return material != null && !material.isEmpty();
+		case BuildingPhysicsPackage.MATERIAL_CATEGORY__NAME:
+			return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+		}
+		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(" (name: ");
+		result.append(name);
+		result.append(')');
+		return result.toString();
+	}
+
+} //MaterialCategoryImpl
diff --git a/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/MaterialImpl.java b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/MaterialImpl.java
new file mode 100644
index 0000000..7a310f3
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/MaterialImpl.java
@@ -0,0 +1,384 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics.impl;
+
+import de.hftstuttgart.buildingphysics.BuildingPhysicsPackage;
+import de.hftstuttgart.buildingphysics.Material;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Material</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.hftstuttgart.buildingphysics.impl.MaterialImpl#getId <em>Id</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.impl.MaterialImpl#getName <em>Name</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.impl.MaterialImpl#getDensity <em>Density</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.impl.MaterialImpl#getHeatCapacity <em>Heat Capacity</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.impl.MaterialImpl#getConductivity <em>Conductivity</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class MaterialImpl extends MinimalEObjectImpl.Container implements Material {
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int ID_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected int id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDensity() <em>Density</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDensity()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double DENSITY_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getDensity() <em>Density</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDensity()
+	 * @generated
+	 * @ordered
+	 */
+	protected double density = DENSITY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getHeatCapacity() <em>Heat Capacity</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getHeatCapacity()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double HEAT_CAPACITY_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getHeatCapacity() <em>Heat Capacity</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getHeatCapacity()
+	 * @generated
+	 * @ordered
+	 */
+	protected double heatCapacity = HEAT_CAPACITY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getConductivity() <em>Conductivity</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getConductivity()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double CONDUCTIVITY_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getConductivity() <em>Conductivity</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getConductivity()
+	 * @generated
+	 * @ordered
+	 */
+	protected double conductivity = CONDUCTIVITY_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MaterialImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BuildingPhysicsPackage.Literals.MATERIAL;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(int newId) {
+		int oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BuildingPhysicsPackage.MATERIAL__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BuildingPhysicsPackage.MATERIAL__NAME, oldName,
+					name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getDensity() {
+		return density;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDensity(double newDensity) {
+		double oldDensity = density;
+		density = newDensity;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BuildingPhysicsPackage.MATERIAL__DENSITY, oldDensity,
+					density));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getHeatCapacity() {
+		return heatCapacity;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setHeatCapacity(double newHeatCapacity) {
+		double oldHeatCapacity = heatCapacity;
+		heatCapacity = newHeatCapacity;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BuildingPhysicsPackage.MATERIAL__HEAT_CAPACITY,
+					oldHeatCapacity, heatCapacity));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getConductivity() {
+		return conductivity;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setConductivity(double newConductivity) {
+		double oldConductivity = conductivity;
+		conductivity = newConductivity;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BuildingPhysicsPackage.MATERIAL__CONDUCTIVITY,
+					oldConductivity, conductivity));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.MATERIAL__ID:
+			return getId();
+		case BuildingPhysicsPackage.MATERIAL__NAME:
+			return getName();
+		case BuildingPhysicsPackage.MATERIAL__DENSITY:
+			return getDensity();
+		case BuildingPhysicsPackage.MATERIAL__HEAT_CAPACITY:
+			return getHeatCapacity();
+		case BuildingPhysicsPackage.MATERIAL__CONDUCTIVITY:
+			return getConductivity();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.MATERIAL__ID:
+			setId((Integer) newValue);
+			return;
+		case BuildingPhysicsPackage.MATERIAL__NAME:
+			setName((String) newValue);
+			return;
+		case BuildingPhysicsPackage.MATERIAL__DENSITY:
+			setDensity((Double) newValue);
+			return;
+		case BuildingPhysicsPackage.MATERIAL__HEAT_CAPACITY:
+			setHeatCapacity((Double) newValue);
+			return;
+		case BuildingPhysicsPackage.MATERIAL__CONDUCTIVITY:
+			setConductivity((Double) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.MATERIAL__ID:
+			setId(ID_EDEFAULT);
+			return;
+		case BuildingPhysicsPackage.MATERIAL__NAME:
+			setName(NAME_EDEFAULT);
+			return;
+		case BuildingPhysicsPackage.MATERIAL__DENSITY:
+			setDensity(DENSITY_EDEFAULT);
+			return;
+		case BuildingPhysicsPackage.MATERIAL__HEAT_CAPACITY:
+			setHeatCapacity(HEAT_CAPACITY_EDEFAULT);
+			return;
+		case BuildingPhysicsPackage.MATERIAL__CONDUCTIVITY:
+			setConductivity(CONDUCTIVITY_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.MATERIAL__ID:
+			return id != ID_EDEFAULT;
+		case BuildingPhysicsPackage.MATERIAL__NAME:
+			return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+		case BuildingPhysicsPackage.MATERIAL__DENSITY:
+			return density != DENSITY_EDEFAULT;
+		case BuildingPhysicsPackage.MATERIAL__HEAT_CAPACITY:
+			return heatCapacity != HEAT_CAPACITY_EDEFAULT;
+		case BuildingPhysicsPackage.MATERIAL__CONDUCTIVITY:
+			return conductivity != CONDUCTIVITY_EDEFAULT;
+		}
+		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(" (id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", density: ");
+		result.append(density);
+		result.append(", heatCapacity: ");
+		result.append(heatCapacity);
+		result.append(", conductivity: ");
+		result.append(conductivity);
+		result.append(')');
+		return result.toString();
+	}
+
+} //MaterialImpl
diff --git a/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/WindowCatalogImpl.java b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/WindowCatalogImpl.java
new file mode 100644
index 0000000..66ae9bd
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/WindowCatalogImpl.java
@@ -0,0 +1,151 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics.impl;
+
+import de.hftstuttgart.buildingphysics.BuildingPhysicsPackage;
+import de.hftstuttgart.buildingphysics.WindowCatalog;
+import de.hftstuttgart.buildingphysics.WindowType;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Window Catalog</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.hftstuttgart.buildingphysics.impl.WindowCatalogImpl#getWindowTypes <em>Window Types</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class WindowCatalogImpl extends CatalogImpl implements WindowCatalog {
+	/**
+	 * The cached value of the '{@link #getWindowTypes() <em>Window Types</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getWindowTypes()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<WindowType> windowTypes;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected WindowCatalogImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BuildingPhysicsPackage.Literals.WINDOW_CATALOG;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<WindowType> getWindowTypes() {
+		if (windowTypes == null) {
+			windowTypes = new EObjectContainmentEList<WindowType>(WindowType.class, this,
+					BuildingPhysicsPackage.WINDOW_CATALOG__WINDOW_TYPES);
+		}
+		return windowTypes;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.WINDOW_CATALOG__WINDOW_TYPES:
+			return ((InternalEList<?>) getWindowTypes()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.WINDOW_CATALOG__WINDOW_TYPES:
+			return getWindowTypes();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.WINDOW_CATALOG__WINDOW_TYPES:
+			getWindowTypes().clear();
+			getWindowTypes().addAll((Collection<? extends WindowType>) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.WINDOW_CATALOG__WINDOW_TYPES:
+			getWindowTypes().clear();
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.WINDOW_CATALOG__WINDOW_TYPES:
+			return windowTypes != null && !windowTypes.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //WindowCatalogImpl
diff --git a/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/WindowTypeImpl.java b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/WindowTypeImpl.java
new file mode 100644
index 0000000..b496fb6
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/impl/WindowTypeImpl.java
@@ -0,0 +1,427 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics.impl;
+
+import de.hftstuttgart.buildingphysics.BuildingPhysicsPackage;
+import de.hftstuttgart.buildingphysics.WindowType;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Window Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.hftstuttgart.buildingphysics.impl.WindowTypeImpl#getId <em>Id</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.impl.WindowTypeImpl#getName <em>Name</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.impl.WindowTypeImpl#getUValue <em>UValue</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.impl.WindowTypeImpl#getGValue <em>GValue</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.impl.WindowTypeImpl#getGlazingNumber <em>Glazing Number</em>}</li>
+ *   <li>{@link de.hftstuttgart.buildingphysics.impl.WindowTypeImpl#getFrameRatio <em>Frame Ratio</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class WindowTypeImpl extends MinimalEObjectImpl.Container implements WindowType {
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int ID_EDEFAULT = 0;
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected int id = ID_EDEFAULT;
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+	/**
+	 * The default value of the '{@link #getUValue() <em>UValue</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getUValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double UVALUE_EDEFAULT = 0.0;
+	/**
+	 * The cached value of the '{@link #getUValue() <em>UValue</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getUValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double uValue = UVALUE_EDEFAULT;
+	/**
+	 * The default value of the '{@link #getGValue() <em>GValue</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getGValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double GVALUE_EDEFAULT = 0.0;
+	/**
+	 * The cached value of the '{@link #getGValue() <em>GValue</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getGValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double gValue = GVALUE_EDEFAULT;
+	/**
+	 * The default value of the '{@link #getGlazingNumber() <em>Glazing Number</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getGlazingNumber()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int GLAZING_NUMBER_EDEFAULT = 0;
+	/**
+	 * The cached value of the '{@link #getGlazingNumber() <em>Glazing Number</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getGlazingNumber()
+	 * @generated
+	 * @ordered
+	 */
+	protected int glazingNumber = GLAZING_NUMBER_EDEFAULT;
+	/**
+	 * The default value of the '{@link #getFrameRatio() <em>Frame Ratio</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFrameRatio()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int FRAME_RATIO_EDEFAULT = 0;
+	/**
+	 * The cached value of the '{@link #getFrameRatio() <em>Frame Ratio</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFrameRatio()
+	 * @generated
+	 * @ordered
+	 */
+	protected int frameRatio = FRAME_RATIO_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected WindowTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BuildingPhysicsPackage.Literals.WINDOW_TYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(int newId) {
+		int oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BuildingPhysicsPackage.WINDOW_TYPE__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BuildingPhysicsPackage.WINDOW_TYPE__NAME, oldName,
+					name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getUValue() {
+		return uValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setUValue(double newUValue) {
+		double oldUValue = uValue;
+		uValue = newUValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BuildingPhysicsPackage.WINDOW_TYPE__UVALUE, oldUValue,
+					uValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getGValue() {
+		return gValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setGValue(double newGValue) {
+		double oldGValue = gValue;
+		gValue = newGValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BuildingPhysicsPackage.WINDOW_TYPE__GVALUE, oldGValue,
+					gValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getGlazingNumber() {
+		return glazingNumber;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setGlazingNumber(int newGlazingNumber) {
+		int oldGlazingNumber = glazingNumber;
+		glazingNumber = newGlazingNumber;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BuildingPhysicsPackage.WINDOW_TYPE__GLAZING_NUMBER,
+					oldGlazingNumber, glazingNumber));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getFrameRatio() {
+		return frameRatio;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFrameRatio(int newFrameRatio) {
+		int oldFrameRatio = frameRatio;
+		frameRatio = newFrameRatio;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BuildingPhysicsPackage.WINDOW_TYPE__FRAME_RATIO,
+					oldFrameRatio, frameRatio));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.WINDOW_TYPE__ID:
+			return getId();
+		case BuildingPhysicsPackage.WINDOW_TYPE__NAME:
+			return getName();
+		case BuildingPhysicsPackage.WINDOW_TYPE__UVALUE:
+			return getUValue();
+		case BuildingPhysicsPackage.WINDOW_TYPE__GVALUE:
+			return getGValue();
+		case BuildingPhysicsPackage.WINDOW_TYPE__GLAZING_NUMBER:
+			return getGlazingNumber();
+		case BuildingPhysicsPackage.WINDOW_TYPE__FRAME_RATIO:
+			return getFrameRatio();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.WINDOW_TYPE__ID:
+			setId((Integer) newValue);
+			return;
+		case BuildingPhysicsPackage.WINDOW_TYPE__NAME:
+			setName((String) newValue);
+			return;
+		case BuildingPhysicsPackage.WINDOW_TYPE__UVALUE:
+			setUValue((Double) newValue);
+			return;
+		case BuildingPhysicsPackage.WINDOW_TYPE__GVALUE:
+			setGValue((Double) newValue);
+			return;
+		case BuildingPhysicsPackage.WINDOW_TYPE__GLAZING_NUMBER:
+			setGlazingNumber((Integer) newValue);
+			return;
+		case BuildingPhysicsPackage.WINDOW_TYPE__FRAME_RATIO:
+			setFrameRatio((Integer) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.WINDOW_TYPE__ID:
+			setId(ID_EDEFAULT);
+			return;
+		case BuildingPhysicsPackage.WINDOW_TYPE__NAME:
+			setName(NAME_EDEFAULT);
+			return;
+		case BuildingPhysicsPackage.WINDOW_TYPE__UVALUE:
+			setUValue(UVALUE_EDEFAULT);
+			return;
+		case BuildingPhysicsPackage.WINDOW_TYPE__GVALUE:
+			setGValue(GVALUE_EDEFAULT);
+			return;
+		case BuildingPhysicsPackage.WINDOW_TYPE__GLAZING_NUMBER:
+			setGlazingNumber(GLAZING_NUMBER_EDEFAULT);
+			return;
+		case BuildingPhysicsPackage.WINDOW_TYPE__FRAME_RATIO:
+			setFrameRatio(FRAME_RATIO_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case BuildingPhysicsPackage.WINDOW_TYPE__ID:
+			return id != ID_EDEFAULT;
+		case BuildingPhysicsPackage.WINDOW_TYPE__NAME:
+			return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+		case BuildingPhysicsPackage.WINDOW_TYPE__UVALUE:
+			return uValue != UVALUE_EDEFAULT;
+		case BuildingPhysicsPackage.WINDOW_TYPE__GVALUE:
+			return gValue != GVALUE_EDEFAULT;
+		case BuildingPhysicsPackage.WINDOW_TYPE__GLAZING_NUMBER:
+			return glazingNumber != GLAZING_NUMBER_EDEFAULT;
+		case BuildingPhysicsPackage.WINDOW_TYPE__FRAME_RATIO:
+			return frameRatio != FRAME_RATIO_EDEFAULT;
+		}
+		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(" (id: ");
+		result.append(id);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", uValue: ");
+		result.append(uValue);
+		result.append(", gValue: ");
+		result.append(gValue);
+		result.append(", glazingNumber: ");
+		result.append(glazingNumber);
+		result.append(", frameRatio: ");
+		result.append(frameRatio);
+		result.append(')');
+		return result.toString();
+	}
+
+} //WindowTypeImpl
diff --git a/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/util/BuildingPhysicsAdapterFactory.java b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/util/BuildingPhysicsAdapterFactory.java
new file mode 100644
index 0000000..7689aac
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/util/BuildingPhysicsAdapterFactory.java
@@ -0,0 +1,233 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics.util;
+
+import de.hftstuttgart.buildingphysics.*;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage
+ * @generated
+ */
+public class BuildingPhysicsAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static BuildingPhysicsPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BuildingPhysicsAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = BuildingPhysicsPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject) object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected BuildingPhysicsSwitch<Adapter> modelSwitch = new BuildingPhysicsSwitch<Adapter>() {
+		@Override
+		public Adapter caseBuildingPhysicsCatalog(BuildingPhysicsCatalog object) {
+			return createBuildingPhysicsCatalogAdapter();
+		}
+
+		@Override
+		public Adapter caseWindowType(WindowType object) {
+			return createWindowTypeAdapter();
+		}
+
+		@Override
+		public Adapter caseCatalog(Catalog object) {
+			return createCatalogAdapter();
+		}
+
+		@Override
+		public Adapter caseWindowCatalog(WindowCatalog object) {
+			return createWindowCatalogAdapter();
+		}
+
+		@Override
+		public Adapter caseMaterialCatalog(MaterialCatalog object) {
+			return createMaterialCatalogAdapter();
+		}
+
+		@Override
+		public Adapter caseMaterialCategory(MaterialCategory object) {
+			return createMaterialCategoryAdapter();
+		}
+
+		@Override
+		public Adapter caseMaterial(Material object) {
+			return createMaterialAdapter();
+		}
+
+		@Override
+		public Adapter defaultCase(EObject object) {
+			return createEObjectAdapter();
+		}
+	};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject) target);
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.hftstuttgart.buildingphysics.BuildingPhysicsCatalog <em>Catalog</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see de.hftstuttgart.buildingphysics.BuildingPhysicsCatalog
+	 * @generated
+	 */
+	public Adapter createBuildingPhysicsCatalogAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.hftstuttgart.buildingphysics.WindowType <em>Window Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see de.hftstuttgart.buildingphysics.WindowType
+	 * @generated
+	 */
+	public Adapter createWindowTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.hftstuttgart.buildingphysics.Catalog <em>Catalog</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see de.hftstuttgart.buildingphysics.Catalog
+	 * @generated
+	 */
+	public Adapter createCatalogAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.hftstuttgart.buildingphysics.WindowCatalog <em>Window Catalog</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see de.hftstuttgart.buildingphysics.WindowCatalog
+	 * @generated
+	 */
+	public Adapter createWindowCatalogAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.hftstuttgart.buildingphysics.MaterialCatalog <em>Material Catalog</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see de.hftstuttgart.buildingphysics.MaterialCatalog
+	 * @generated
+	 */
+	public Adapter createMaterialCatalogAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.hftstuttgart.buildingphysics.MaterialCategory <em>Material Category</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see de.hftstuttgart.buildingphysics.MaterialCategory
+	 * @generated
+	 */
+	public Adapter createMaterialCategoryAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.hftstuttgart.buildingphysics.Material <em>Material</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see de.hftstuttgart.buildingphysics.Material
+	 * @generated
+	 */
+	public Adapter createMaterialAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //BuildingPhysicsAdapterFactory
diff --git a/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/util/BuildingPhysicsSwitch.java b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/util/BuildingPhysicsSwitch.java
new file mode 100644
index 0000000..bf8b322
--- /dev/null
+++ b/de.hftstuttgart.buildingphysics/src-gen/de/hftstuttgart/buildingphysics/util/BuildingPhysicsSwitch.java
@@ -0,0 +1,248 @@
+/**
+ */
+package de.hftstuttgart.buildingphysics.util;
+
+import de.hftstuttgart.buildingphysics.*;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see de.hftstuttgart.buildingphysics.BuildingPhysicsPackage
+ * @generated
+ */
+public class BuildingPhysicsSwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static BuildingPhysicsPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BuildingPhysicsSwitch() {
+		if (modelPackage == null) {
+			modelPackage = BuildingPhysicsPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+		case BuildingPhysicsPackage.BUILDING_PHYSICS_CATALOG: {
+			BuildingPhysicsCatalog buildingPhysicsCatalog = (BuildingPhysicsCatalog) theEObject;
+			T result = caseBuildingPhysicsCatalog(buildingPhysicsCatalog);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case BuildingPhysicsPackage.WINDOW_TYPE: {
+			WindowType windowType = (WindowType) theEObject;
+			T result = caseWindowType(windowType);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case BuildingPhysicsPackage.CATALOG: {
+			Catalog catalog = (Catalog) theEObject;
+			T result = caseCatalog(catalog);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case BuildingPhysicsPackage.WINDOW_CATALOG: {
+			WindowCatalog windowCatalog = (WindowCatalog) theEObject;
+			T result = caseWindowCatalog(windowCatalog);
+			if (result == null)
+				result = caseCatalog(windowCatalog);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case BuildingPhysicsPackage.MATERIAL_CATALOG: {
+			MaterialCatalog materialCatalog = (MaterialCatalog) theEObject;
+			T result = caseMaterialCatalog(materialCatalog);
+			if (result == null)
+				result = caseCatalog(materialCatalog);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case BuildingPhysicsPackage.MATERIAL_CATEGORY: {
+			MaterialCategory materialCategory = (MaterialCategory) theEObject;
+			T result = caseMaterialCategory(materialCategory);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case BuildingPhysicsPackage.MATERIAL: {
+			Material material = (Material) theEObject;
+			T result = caseMaterial(material);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		default:
+			return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Catalog</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Catalog</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseBuildingPhysicsCatalog(BuildingPhysicsCatalog object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Window Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Window Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseWindowType(WindowType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Catalog</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Catalog</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseCatalog(Catalog object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Window Catalog</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Window Catalog</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseWindowCatalog(WindowCatalog object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Material Catalog</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Material Catalog</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseMaterialCatalog(MaterialCatalog object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Material Category</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Material Category</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseMaterialCategory(MaterialCategory object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Material</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Material</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseMaterial(Material object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} //BuildingPhysicsSwitch
-- 
GitLab