diff --git a/GUI/coregui/Models/BeamItem.cpp b/GUI/coregui/Models/BeamItem.cpp
index 732e37a977007c59a9e84491a89101e6595103e9..7ae3a885abaf16826c8ede322bc394af207b8044 100644
--- a/GUI/coregui/Models/BeamItem.cpp
+++ b/GUI/coregui/Models/BeamItem.cpp
@@ -18,6 +18,7 @@
 #include "BeamDistributionItem.h"
 #include "BeamWavelengthItem.h"
 #include "BornAgainNamespace.h"
+#include "GUIHelpers.h"
 #include "ParameterTranslators.h"
 #include "SessionItemUtils.h"
 #include "Units.h"
@@ -35,7 +36,7 @@ const QString BeamItem::P_INCLINATION_ANGLE = QString::fromStdString(BornAgain::
 const QString BeamItem::P_AZIMUTHAL_ANGLE = QString::fromStdString(BornAgain::Azimuth);
 const QString BeamItem::P_POLARIZATION = QString("Polarization");
 
-BeamItem::BeamItem() : SessionItem(Constants::BeamType)
+BeamItem::BeamItem(const QString& beam_model) : SessionItem(beam_model)
 {
     addProperty(P_INTENSITY, 1e+08)
         ->setLimits(RealLimits::limited(0.0, 1e+32))
@@ -43,7 +44,13 @@ BeamItem::BeamItem() : SessionItem(Constants::BeamType)
         .setEditorType(Constants::ScientificEditorType);
 
     addGroupProperty(P_WAVELENGTH, Constants::BeamWavelengthType);
-    addGroupProperty(P_INCLINATION_ANGLE, Constants::BeamInclinationAngleType);
+
+    if (beam_model == Constants::BeamType)
+        addGroupProperty(P_INCLINATION_ANGLE, Constants::BeamInclinationAngleType);
+    else if (beam_model == Constants::SpecularBeamType)
+        addGroupProperty(P_INCLINATION_ANGLE, Constants::BeamInclinationAxisType);
+    else
+        GUIHelpers::Error("Error in BeamItem: unknown type of the beam");
     addGroupProperty(P_AZIMUTHAL_ANGLE, Constants::BeamAzimuthalAngleType);
     addGroupProperty(P_POLARIZATION, Constants::VectorType)->setToolTip(polarization_tooltip);
 
@@ -131,3 +138,9 @@ std::unique_ptr<Beam> BeamItem::createBeam() const
 
     return result;
 }
+
+SpecularBeamItem::SpecularBeamItem() : BeamItem(Constants::SpecularBeamType)
+{
+}
+
+SpecularBeamItem::~SpecularBeamItem() = default;
diff --git a/GUI/coregui/Models/BeamItem.h b/GUI/coregui/Models/BeamItem.h
index 69d6b9f9b4692076d0e8ba08b39035827be8c2bb..17588e898224134e1a8cec7722d4deb28ae4e690 100644
--- a/GUI/coregui/Models/BeamItem.h
+++ b/GUI/coregui/Models/BeamItem.h
@@ -28,7 +28,8 @@ public:
     static const QString P_INCLINATION_ANGLE;
     static const QString P_AZIMUTHAL_ANGLE;
     static const QString P_POLARIZATION;
-    BeamItem();
+
+    explicit BeamItem(const QString& beam_model = Constants::BeamType);
     virtual ~BeamItem();
 
     double getIntensity() const;
@@ -46,5 +47,12 @@ public:
     std::unique_ptr<Beam> createBeam() const;
 };
 
+class BA_CORE_API_ SpecularBeamItem : public BeamItem
+{
+public:
+    SpecularBeamItem();
+    virtual ~SpecularBeamItem();
+};
+
 #endif // BEAMITEM_H
 
diff --git a/GUI/coregui/Models/ItemCatalogue.cpp b/GUI/coregui/Models/ItemCatalogue.cpp
index b857bc5f9f7414e6d8228cb7485f410b5c354b17..8f3e564a9aeffd9c5ccedd9f4e8e3f71c7fafd63 100644
--- a/GUI/coregui/Models/ItemCatalogue.cpp
+++ b/GUI/coregui/Models/ItemCatalogue.cpp
@@ -84,6 +84,7 @@ ItemCatalogue::ItemCatalogue()
     add(Constants::OffSpecInstrumentType, create_new<OffSpecInstrumentItem>);
     add(Constants::SpecularInstrumentType, create_new<SpecularInstrumentItem>);
     add(Constants::BeamType, create_new<BeamItem>);
+    add(Constants::SpecularBeamType, create_new<SpecularBeamItem>);
     add(Constants::BackgroundNoneType, create_new<BackgroundNoneItem>);
     add(Constants::ConstantBackgroundType, create_new<ConstantBackgroundItem>);
     add(Constants::PoissonNoiseBackgroundType, create_new<PoissonNoiseBackgroundItem>);
diff --git a/GUI/coregui/Models/item_constants.h b/GUI/coregui/Models/item_constants.h
index ae9191270f4805e03d79a2e682a2616ed3625ad4..605953615d2db2c8ee3942945ee8c52f4508cb63 100644
--- a/GUI/coregui/Models/item_constants.h
+++ b/GUI/coregui/Models/item_constants.h
@@ -43,6 +43,7 @@ const ModelType GISASInstrumentType = "GISASInstrument";
 const ModelType OffSpecInstrumentType = "OffSpecInstrument";
 const ModelType SpecularInstrumentType = "SpecularInstrument";
 const ModelType BeamType = "Beam";
+const ModelType SpecularBeamType = "SpecularBeam";
 
 const ModelType FormFactorType = "FormFactor";
 const ModelType AnisoPyramidType = "AnisoPyramid";