diff --git a/src/Speckle.Objects/Interfaces.cs b/src/Speckle.Objects/Interfaces.cs
index 8610ad4c..4ab7ecf1 100644
--- a/src/Speckle.Objects/Interfaces.cs
+++ b/src/Speckle.Objects/Interfaces.cs
@@ -84,6 +84,17 @@ public interface ITransformable : ISpeckleObject
bool TransformTo(Transform transform, out ITransformable transformed);
}
+///
+///
+public interface ISymbolLayer
+{
+ string symbolUnits { get; set; }
+ LineType lineType { get; set; }
+ double lineWidth { get; set; }
+ int lineColor { get; set; }
+ int displayPriority { get; set; }
+}
+
#endregion
#region GIS
diff --git a/src/Speckle.Objects/Other/SymbolEnums.cs b/src/Speckle.Objects/Other/SymbolEnums.cs
new file mode 100644
index 00000000..987ace5a
--- /dev/null
+++ b/src/Speckle.Objects/Other/SymbolEnums.cs
@@ -0,0 +1,25 @@
+namespace Speckle.Objects.Other;
+
+public enum LineType
+{
+ Solid,
+ Dashed,
+ Dotted,
+}
+
+public enum MarkerType
+{
+ Simple,
+}
+
+public enum MarkerShape
+{
+ Circle,
+ Square,
+ Cross,
+}
+
+public enum FillType
+{
+ Simple,
+}
diff --git a/src/Speckle.Objects/Other/SymbolLayer.cs b/src/Speckle.Objects/Other/SymbolLayer.cs
new file mode 100644
index 00000000..85028e5a
--- /dev/null
+++ b/src/Speckle.Objects/Other/SymbolLayer.cs
@@ -0,0 +1,46 @@
+using Speckle.Sdk.Models;
+
+namespace Speckle.Objects.Other;
+
+[SpeckleType("Objects.Other.Symbol")]
+public class Symbol : Base
+{
+ public List symbolLayers { get; set; }
+}
+
+[SpeckleType("Objects.Other.MarkerSymbolLayer")]
+public class MarkerSymbolLayer : Base, ISymbolLayer
+{
+ public string symbolUnits { get; set; }
+ public LineType lineType { get; set; }
+ public double lineWidth { get; set; }
+ public int lineColor { get; set; }
+ public int displayPriority { get; set; }
+
+ public double angle { get; set; }
+ public int fillColor { get; set; }
+ public MarkerType type { get; set; }
+}
+
+[SpeckleType("Objects.Other.LineSymbolLayer")]
+public class LineSymbolLayer : Base, ISymbolLayer
+{
+ public string symbolUnits { get; set; }
+ public LineType lineType { get; set; }
+ public double lineWidth { get; set; }
+ public int lineColor { get; set; }
+ public int displayPriority { get; set; }
+}
+
+[SpeckleType("Objects.Other.FillSymbolLayer")]
+public class FillSymbolLayer : Base, ISymbolLayer
+{
+ public string symbolUnits { get; set; }
+ public LineType lineType { get; set; }
+ public double lineWidth { get; set; }
+ public int lineColor { get; set; }
+ public int displayPriority { get; set; }
+
+ public int fillColor { get; set; }
+ public FillType type { get; set; }
+}