diff --git a/src/Speckle.Objects/Data/ArcgisObject.cs b/src/Speckle.Objects/Data/ArcgisObject.cs
index 241c7e6c..abe87aea 100644
--- a/src/Speckle.Objects/Data/ArcgisObject.cs
+++ b/src/Speckle.Objects/Data/ArcgisObject.cs
@@ -11,11 +11,12 @@ public class ArcgisObject : Base, IGisObject
public required string name { get; set; }
public required string type { get; set; }
- public required List? displayValue { get; set; }
+ [DetachProperty]
+ public required List displayValue { get; set; }
public required Dictionary properties { get; set; }
public required string units { get; set; }
- IReadOnlyList? IDataObject.displayValue => displayValue;
+ IReadOnlyList IDisplayValue>.displayValue => displayValue;
}
diff --git a/src/Speckle.Objects/Data/Civil3dObject.cs b/src/Speckle.Objects/Data/Civil3dObject.cs
index 90f7cf18..cad3e2fe 100644
--- a/src/Speckle.Objects/Data/Civil3dObject.cs
+++ b/src/Speckle.Objects/Data/Civil3dObject.cs
@@ -22,6 +22,7 @@ public class Civil3dObject : Base, ICivilObject
[DetachProperty]
public required List elements { get; set; }
+ [DetachProperty]
public required List displayValue { get; set; }
public required Dictionary properties { get; set; }
@@ -30,5 +31,5 @@ public class Civil3dObject : Base, ICivilObject
IReadOnlyList ICivilObject.elements => elements;
- IReadOnlyList IDataObject.displayValue => displayValue;
+ IReadOnlyList IDisplayValue>.displayValue => displayValue;
}
diff --git a/src/Speckle.Objects/Data/DataObject.cs b/src/Speckle.Objects/Data/DataObject.cs
index 607fc5bd..baefdb03 100644
--- a/src/Speckle.Objects/Data/DataObject.cs
+++ b/src/Speckle.Objects/Data/DataObject.cs
@@ -8,9 +8,9 @@ public class DataObject : Base, IDataObject
public required string name { get; set; }
[DetachProperty]
- public required List? displayValue { get; set; }
+ public required List displayValue { get; set; }
public required Dictionary properties { get; set; }
- IReadOnlyList? IDataObject.displayValue => displayValue;
+ IReadOnlyList IDisplayValue>.displayValue => displayValue;
}
diff --git a/src/Speckle.Objects/Data/EtabsObject.cs b/src/Speckle.Objects/Data/EtabsObject.cs
index e32e86f9..fa11940f 100644
--- a/src/Speckle.Objects/Data/EtabsObject.cs
+++ b/src/Speckle.Objects/Data/EtabsObject.cs
@@ -3,7 +3,7 @@ using Speckle.Sdk.Models;
namespace Speckle.Objects.Data;
///
-/// Represents a model object in ETABS
+/// Represents a wrapper object in ETABS
///
[SpeckleType("Objects.Data.EtabsObject")]
public class EtabsObject : Base, ICsiObject
@@ -17,6 +17,7 @@ public class EtabsObject : Base, ICsiObject
[DetachProperty]
public required List elements { get; set; }
+ [DetachProperty]
public required List displayValue { get; set; }
public required Dictionary properties { get; set; }
@@ -25,5 +26,5 @@ public class EtabsObject : Base, ICsiObject
IReadOnlyList ICsiObject.elements => elements;
- IReadOnlyList IDataObject.displayValue => displayValue;
+ IReadOnlyList IDisplayValue>.displayValue => displayValue;
}
diff --git a/src/Speckle.Objects/Data/NavisworksObject.cs b/src/Speckle.Objects/Data/NavisworksObject.cs
index afab5841..571cc286 100644
--- a/src/Speckle.Objects/Data/NavisworksObject.cs
+++ b/src/Speckle.Objects/Data/NavisworksObject.cs
@@ -10,11 +10,12 @@ public class NavisworksObject : Base, INavisworksObject
{
public required string name { get; set; }
+ [DetachProperty]
public required List displayValue { get; set; }
public required Dictionary properties { get; set; }
public required string units { get; set; }
- IReadOnlyList IDataObject.displayValue => displayValue;
+ IReadOnlyList IDisplayValue>.displayValue => displayValue;
}
diff --git a/src/Speckle.Objects/Data/RevitObject.cs b/src/Speckle.Objects/Data/RevitObject.cs
index b4506e5b..20238bee 100644
--- a/src/Speckle.Objects/Data/RevitObject.cs
+++ b/src/Speckle.Objects/Data/RevitObject.cs
@@ -25,6 +25,7 @@ public class RevitObject : Base, IRevitObject
[DetachProperty]
public required List elements { get; set; }
+ [DetachProperty]
public required List displayValue { get; set; }
public required Dictionary properties { get; set; }
@@ -33,5 +34,5 @@ public class RevitObject : Base, IRevitObject
IReadOnlyList IRevitObject.elements => elements;
- IReadOnlyList IDataObject.displayValue => displayValue;
+ IReadOnlyList IDisplayValue>.displayValue => displayValue;
}
diff --git a/src/Speckle.Objects/Data/TeklaObject.cs b/src/Speckle.Objects/Data/TeklaObject.cs
index 248cf309..737dbb55 100644
--- a/src/Speckle.Objects/Data/TeklaObject.cs
+++ b/src/Speckle.Objects/Data/TeklaObject.cs
@@ -17,6 +17,7 @@ public class TeklaObject : Base, ITeklaObject
[DetachProperty]
public required List elements { get; set; }
+ [DetachProperty]
public required List displayValue { get; set; }
public required Dictionary properties { get; set; }
@@ -25,5 +26,5 @@ public class TeklaObject : Base, ITeklaObject
IReadOnlyList ITeklaObject.elements => elements;
- IReadOnlyList IDataObject.displayValue => displayValue;
+ IReadOnlyList IDisplayValue>.displayValue => displayValue;
}
diff --git a/src/Speckle.Objects/Interfaces.cs b/src/Speckle.Objects/Interfaces.cs
index 4cd16768..2e9ac929 100644
--- a/src/Speckle.Objects/Interfaces.cs
+++ b/src/Speckle.Objects/Interfaces.cs
@@ -84,7 +84,7 @@ public interface ITransformable : ISpeckleObject
}
///
-/// Specifies displayable value(s) to be used as a fallback
+/// Specifies displayable simple geometries to be used as a fallback
/// if a displayable form cannot be converted.
///
///
@@ -95,7 +95,7 @@ public interface ITransformable : ISpeckleObject
///
/// Type of display value.
/// Expected to be either a type or a of s,
-/// most likely or .
+/// Should be constrained to types of , , or .
///
public interface IDisplayValue : ISpeckleObject
{
@@ -126,21 +126,12 @@ public interface IProperties : ISpeckleObject
Dictionary properties { get; }
}
-public interface IDataObject : ISpeckleObject, IProperties
+public interface IDataObject : ISpeckleObject, IProperties, IDisplayValue>
{
///
/// The name of the object, primarily used to decorate the object for consumption in frontend and other apps
///
string name { get; }
-
- ///
- /// The geometry used for visual representation.
- ///
- ///
- /// Should be simple geometry types: Point, Line, Polyline, and Mesh.
- /// Null indicates a non-displayable data object.
- ///
- IReadOnlyList? displayValue { get; }
}
public interface IRevitObject : IDataObject