From eec400d0cf600405b823a53fd2837b790d88d7ef Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Thu, 19 Dec 2024 14:34:15 +0000 Subject: [PATCH] Fix DataObject inheritance (#192) --- src/Speckle.Objects/Data/ArcgisObject.cs | 8 +------- src/Speckle.Objects/Data/Civil3dObject.cs | 10 +--------- src/Speckle.Objects/Data/EtabsObject.cs | 8 +------- src/Speckle.Objects/Data/NavisworksObject.cs | 9 +-------- src/Speckle.Objects/Data/RevitObject.cs | 11 +---------- src/Speckle.Objects/Data/TeklaObject.cs | 8 +------- src/Speckle.Objects/Interfaces.cs | 2 +- 7 files changed, 7 insertions(+), 49 deletions(-) diff --git a/src/Speckle.Objects/Data/ArcgisObject.cs b/src/Speckle.Objects/Data/ArcgisObject.cs index abe87aea..701a7871 100644 --- a/src/Speckle.Objects/Data/ArcgisObject.cs +++ b/src/Speckle.Objects/Data/ArcgisObject.cs @@ -6,16 +6,10 @@ namespace Speckle.Objects.Data; /// Represents a ArcGIS.Core.CoreObjectsBase object in ArcGIS /// [SpeckleType("Objects.Data.ArcgisObject")] -public class ArcgisObject : Base, IGisObject +public class ArcgisObject : DataObject, IGisObject { - public required string name { get; set; } public required string type { get; set; } - [DetachProperty] - public required List displayValue { get; set; } - - public required Dictionary properties { get; set; } - public required string units { get; set; } IReadOnlyList IDisplayValue>.displayValue => displayValue; diff --git a/src/Speckle.Objects/Data/Civil3dObject.cs b/src/Speckle.Objects/Data/Civil3dObject.cs index cad3e2fe..995a3c1c 100644 --- a/src/Speckle.Objects/Data/Civil3dObject.cs +++ b/src/Speckle.Objects/Data/Civil3dObject.cs @@ -6,9 +6,8 @@ namespace Speckle.Objects.Data; /// Represents an Autodesk.Civil.DatabaseServices.Entity object in Civil3d /// [SpeckleType("Objects.Data.Civil3dObject")] -public class Civil3dObject : Base, ICivilObject +public class Civil3dObject : DataObject, ICivilObject { - public required string name { get; set; } public required string type { get; set; } /// @@ -22,14 +21,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; } - public required string units { get; set; } IReadOnlyList ICivilObject.elements => elements; - - IReadOnlyList IDisplayValue>.displayValue => displayValue; } diff --git a/src/Speckle.Objects/Data/EtabsObject.cs b/src/Speckle.Objects/Data/EtabsObject.cs index fa11940f..3f0aeafe 100644 --- a/src/Speckle.Objects/Data/EtabsObject.cs +++ b/src/Speckle.Objects/Data/EtabsObject.cs @@ -6,9 +6,8 @@ namespace Speckle.Objects.Data; /// Represents a wrapper object in ETABS /// [SpeckleType("Objects.Data.EtabsObject")] -public class EtabsObject : Base, ICsiObject +public class EtabsObject : DataObject, ICsiObject { - public required string name { get; set; } public required string type { get; set; } /// @@ -17,11 +16,6 @@ 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; } - public required string units { get; set; } IReadOnlyList ICsiObject.elements => elements; diff --git a/src/Speckle.Objects/Data/NavisworksObject.cs b/src/Speckle.Objects/Data/NavisworksObject.cs index 571cc286..1b321000 100644 --- a/src/Speckle.Objects/Data/NavisworksObject.cs +++ b/src/Speckle.Objects/Data/NavisworksObject.cs @@ -6,15 +6,8 @@ namespace Speckle.Objects.Data; /// Represents a "first selectable ancestor" Navisworks.ModelItem object in Navisworks /// [SpeckleType("Objects.Data.NavisworksObject")] -public class NavisworksObject : Base, INavisworksObject +public class NavisworksObject : DataObject, 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 IDisplayValue>.displayValue => displayValue; diff --git a/src/Speckle.Objects/Data/RevitObject.cs b/src/Speckle.Objects/Data/RevitObject.cs index 20238bee..bdbd51cc 100644 --- a/src/Speckle.Objects/Data/RevitObject.cs +++ b/src/Speckle.Objects/Data/RevitObject.cs @@ -1,4 +1,3 @@ -using Speckle.Objects.Geometry; using Speckle.Sdk.Models; namespace Speckle.Objects.Data; @@ -7,9 +6,8 @@ namespace Speckle.Objects.Data; /// Represents an Autodesk.Revit.DB.Element object in Revit /// [SpeckleType("Objects.Data.RevitObject")] -public class RevitObject : Base, IRevitObject +public class RevitObject : DataObject, IRevitObject { - public required string name { get; set; } public required string type { get; set; } public required string family { get; set; } public required string category { get; set; } @@ -25,14 +23,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; } - public required string units { get; set; } IReadOnlyList IRevitObject.elements => elements; - - IReadOnlyList IDisplayValue>.displayValue => displayValue; } diff --git a/src/Speckle.Objects/Data/TeklaObject.cs b/src/Speckle.Objects/Data/TeklaObject.cs index 737dbb55..c8de0a27 100644 --- a/src/Speckle.Objects/Data/TeklaObject.cs +++ b/src/Speckle.Objects/Data/TeklaObject.cs @@ -6,9 +6,8 @@ namespace Speckle.Objects.Data; /// Represents an Tekla.Structures.Model.ModelObject object in Tekla Structures /// [SpeckleType("Objects.Data.TeklaObject")] -public class TeklaObject : Base, ITeklaObject +public class TeklaObject : DataObject, ITeklaObject { - public required string name { get; set; } public required string type { get; set; } /// @@ -17,11 +16,6 @@ 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; } - public required string units { get; set; } IReadOnlyList ITeklaObject.elements => elements; diff --git a/src/Speckle.Objects/Interfaces.cs b/src/Speckle.Objects/Interfaces.cs index 2e9ac929..93237bc9 100644 --- a/src/Speckle.Objects/Interfaces.cs +++ b/src/Speckle.Objects/Interfaces.cs @@ -126,7 +126,7 @@ public interface IProperties : ISpeckleObject Dictionary properties { get; } } -public interface IDataObject : ISpeckleObject, IProperties, IDisplayValue> +public interface IDataObject : IProperties, IDisplayValue> { /// /// The name of the object, primarily used to decorate the object for consumption in frontend and other apps