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