diff --git a/Applications/Utils/MeshEdit/AddTopLayer.cpp b/Applications/Utils/MeshEdit/AddTopLayer.cpp
index ccc21bc81a7eea86f8d33fcaa937e6609e901184..93e1ec03b8cb874e6e5b8be604d7751f69a44490 100644
--- a/Applications/Utils/MeshEdit/AddTopLayer.cpp
+++ b/Applications/Utils/MeshEdit/AddTopLayer.cpp
@@ -26,12 +26,7 @@
 // MeshLib
 #include "MeshLib/Mesh.h"
 #include "MeshLib/Node.h"
-#include "MeshLib/Elements/Element.h"
-#include "MeshLib/Elements/Prism.h"
-#include "MeshLib/Elements/Hex.h"
-#include "MeshLib/Elements/Quad.h"
-#include "MeshLib/Elements/Tri.h"
-#include "MeshLib/Elements/Line.h"
+#include "MeshLib/Elements/Elements.h"
 
 MeshLib::Prism* extrudeElement(std::vector<MeshLib::Node*> const& subsfc_nodes,
 	MeshLib::Tri const*const sfc_elem,
diff --git a/AssemblerLib/LocalDataInitializer.h b/AssemblerLib/LocalDataInitializer.h
index b9c6dd4586bde3e13d8fcbe76eaaf93057889808..972ff3f304880e01f4cd577c0de427630460e26d 100644
--- a/AssemblerLib/LocalDataInitializer.h
+++ b/AssemblerLib/LocalDataInitializer.h
@@ -15,9 +15,7 @@
 #include <typeinfo>
 #include <unordered_map>
 
-#include "MeshLib/Elements/Line.h"
-#include "MeshLib/Elements/Quad.h"
-#include "MeshLib/Elements/Hex.h"
+#include "MeshLib/Elements/Elements.h"
 
 #include "NumLib/Fem/Integration/GaussIntegrationPolicy.h"
 
diff --git a/FileIO/FEFLOWInterface.cpp b/FileIO/FEFLOWInterface.cpp
index b0113da0a04ab8a81da91be35469484953dad6d4..ad814b92bfca05b62ada3d1546bfab088c8a6548 100644
--- a/FileIO/FEFLOWInterface.cpp
+++ b/FileIO/FEFLOWInterface.cpp
@@ -20,12 +20,7 @@
 #include "GeoLib/Point.h"
 #include "GeoLib/Polygon.h"
 
-#include "MeshLib/Elements/Hex.h"
-#include "MeshLib/Elements/Line.h"
-#include "MeshLib/Elements/Prism.h"
-#include "MeshLib/Elements/Quad.h"
-#include "MeshLib/Elements/Tet.h"
-#include "MeshLib/Elements/Tri.h"
+#include "MeshLib/Elements/Elements.h"
 #include "MeshLib/Mesh.h"
 #include "MeshLib/Node.h"
 
diff --git a/FileIO/GMSHInterface.cpp b/FileIO/GMSHInterface.cpp
index 2237d81a186e3ec8a6dd459782d40567167c65eb..ecd23d2f863ef3c799c4a3a59c43b41408d17253 100644
--- a/FileIO/GMSHInterface.cpp
+++ b/FileIO/GMSHInterface.cpp
@@ -36,13 +36,7 @@
 #include "GeoLib/PolylineWithSegmentMarker.h"
 #include "GeoLib/QuadTree.h"
 
-#include "MeshLib/Elements/Line.h"
-#include "MeshLib/Elements/Hex.h"
-#include "MeshLib/Elements/Prism.h"
-#include "MeshLib/Elements/Pyramid.h"
-#include "MeshLib/Elements/Quad.h"
-#include "MeshLib/Elements/Tet.h"
-#include "MeshLib/Elements/Tri.h"
+#include "MeshLib/Elements/Elements.h"
 #include "MeshLib/Mesh.h"
 #include "MeshLib/Node.h"
 
diff --git a/FileIO/Legacy/MeshIO.cpp b/FileIO/Legacy/MeshIO.cpp
index 1765bcf0a68ec9887fb82fb82a65090e230e3445..f40098436ad978a0abf5a92b9982494907f64540 100644
--- a/FileIO/Legacy/MeshIO.cpp
+++ b/FileIO/Legacy/MeshIO.cpp
@@ -28,13 +28,7 @@
 
 #include "GeoLib/GEOObjects.h"
 
-#include "MeshLib/Elements/Line.h"
-#include "MeshLib/Elements/Hex.h"
-#include "MeshLib/Elements/Prism.h"
-#include "MeshLib/Elements/Pyramid.h"
-#include "MeshLib/Elements/Quad.h"
-#include "MeshLib/Elements/Tet.h"
-#include "MeshLib/Elements/Tri.h"
+#include "MeshLib/Elements/Elements.h"
 #include "MeshLib/Node.h"
 #include "MeshLib/Location.h"
 
diff --git a/FileIO/MPI_IO/NodePartitionedMeshReader.cpp b/FileIO/MPI_IO/NodePartitionedMeshReader.cpp
index 275ffa1759ae4f3d71ba8aa72d257327b2616ba9..3e27ac50c4fc26d8384f0d34acfbbfecb8ebdbb8 100644
--- a/FileIO/MPI_IO/NodePartitionedMeshReader.cpp
+++ b/FileIO/MPI_IO/NodePartitionedMeshReader.cpp
@@ -19,15 +19,7 @@
 #include "BaseLib/FileTools.h"
 #include "BaseLib/RunTime.h"
 
-#include "MeshLib/Elements/Element.h"
-#include "MeshLib/Elements/Hex.h"
-#include "MeshLib/Elements/Line.h"
-#include "MeshLib/Elements/Prism.h"
-#include "MeshLib/Elements/Pyramid.h"
-#include "MeshLib/Elements/Quad.h"
-#include "MeshLib/Elements/Tet.h"
-#include "MeshLib/Elements/Tri.h"
-
+#include "MeshLib/Elements/Elements.h"
 #include "MeshLib/Properties.h"
 
 // Check if the value can by converted to given type without overflow.
diff --git a/MeshLib/Elements/Elements.h b/MeshLib/Elements/Elements.h
new file mode 100644
index 0000000000000000000000000000000000000000..7e699cd0e3d99fc155a81f00d01df62c0811a994
--- /dev/null
+++ b/MeshLib/Elements/Elements.h
@@ -0,0 +1,25 @@
+/*
+ * \file Elements.h
+ * \brief Cumulative include for all available mesh element types.
+ *
+ * \copyright
+ * Copyright (c) 2012-2015, OpenGeoSys Community (http://www.opengeosys.org)
+ *            Distributed under a Modified BSD License.
+ *              See accompanying file LICENSE.txt or
+ *              http://www.opengeosys.org/project/license
+ *
+ */
+
+#ifndef MESHLIB_ELEMENTS_ELEMENTS_H_
+#define MESHLIB_ELEMENTS_ELEMENTS_H_
+
+#include "MeshLib/Elements/Element.h"
+#include "MeshLib/Elements/Line.h"
+#include "MeshLib/Elements/Hex.h"
+#include "MeshLib/Elements/Prism.h"
+#include "MeshLib/Elements/Pyramid.h"
+#include "MeshLib/Elements/Quad.h"
+#include "MeshLib/Elements/Tet.h"
+#include "MeshLib/Elements/Tri.h"
+
+#endif  // MESHLIB_ELEMENTS_ELEMENTS_H_
diff --git a/MeshLib/MeshEditing/DuplicateMeshComponents.cpp b/MeshLib/MeshEditing/DuplicateMeshComponents.cpp
index 7ebc258a7f6c43549188091c2dbd00624feb0725..61f67419dd4878e3744a1c70705c8fd8152e0624 100644
--- a/MeshLib/MeshEditing/DuplicateMeshComponents.cpp
+++ b/MeshLib/MeshEditing/DuplicateMeshComponents.cpp
@@ -15,14 +15,7 @@
 #include "DuplicateMeshComponents.h"
 
 #include "MeshLib/Mesh.h"
-#include "MeshLib/Elements/Element.h"
-#include "MeshLib/Elements/Line.h"
-#include "MeshLib/Elements/Tri.h"
-#include "MeshLib/Elements/Quad.h"
-#include "MeshLib/Elements/Tet.h"
-#include "MeshLib/Elements/Hex.h"
-#include "MeshLib/Elements/Pyramid.h"
-#include "MeshLib/Elements/Prism.h"
+#include "MeshLib/Elements/Elements.h"
 
 namespace MeshLib
 {
diff --git a/MeshLib/MeshEditing/MeshRevision.cpp b/MeshLib/MeshEditing/MeshRevision.cpp
index 69a7575d568c9860fb11394f06f58f058e13a0f6..d20b7eab051c18df39fb23bc8f7d835d50a965b6 100644
--- a/MeshLib/MeshEditing/MeshRevision.cpp
+++ b/MeshLib/MeshEditing/MeshRevision.cpp
@@ -22,15 +22,8 @@
 #include "GeoLib/Grid.h"
 #include "GeoLib/AnalyticalGeometry.h"
 
+#include "MeshLib/Elements/Elements.h"
 #include "MeshLib/Mesh.h"
-#include "MeshLib/Elements/Element.h"
-#include "MeshLib/Elements/Line.h"
-#include "MeshLib/Elements/Tri.h"
-#include "MeshLib/Elements/Quad.h"
-#include "MeshLib/Elements/Tet.h"
-#include "MeshLib/Elements/Hex.h"
-#include "MeshLib/Elements/Pyramid.h"
-#include "MeshLib/Elements/Prism.h"
 
 #include "DuplicateMeshComponents.h"
 
diff --git a/MeshLib/MeshGenerators/VtkMeshConverter.cpp b/MeshLib/MeshGenerators/VtkMeshConverter.cpp
index 741a9048f6ea2471f974aeb388645d14e5ebdb59..b049a8a648280541980512323eb350edd4d77863 100644
--- a/MeshLib/MeshGenerators/VtkMeshConverter.cpp
+++ b/MeshLib/MeshGenerators/VtkMeshConverter.cpp
@@ -14,15 +14,9 @@
 
 #include "VtkMeshConverter.h"
 
+#include "MeshLib/Elements/Elements.h"
 #include "MeshLib/Mesh.h"
 #include "MeshLib/Node.h"
-#include "MeshLib/Elements/Line.h"
-#include "MeshLib/Elements/Tri.h"
-#include "MeshLib/Elements/Quad.h"
-#include "MeshLib/Elements/Tet.h"
-#include "MeshLib/Elements/Hex.h"
-#include "MeshLib/Elements/Pyramid.h"
-#include "MeshLib/Elements/Prism.h"
 
 // Conversion from Image to QuadMesh
 #include <vtkImageData.h>