Skip to content

Commit

Permalink
Fix DataObject inheritance (#192)
Browse files Browse the repository at this point in the history
  • Loading branch information
adamhathcock authored Dec 19, 2024
1 parent 991b312 commit eec400d
Show file tree
Hide file tree
Showing 7 changed files with 7 additions and 49 deletions.
8 changes: 1 addition & 7 deletions src/Speckle.Objects/Data/ArcgisObject.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,10 @@ namespace Speckle.Objects.Data;
/// Represents a ArcGIS.Core.CoreObjectsBase object in ArcGIS
/// </summary>
[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<Base> displayValue { get; set; }

public required Dictionary<string, object?> properties { get; set; }

public required string units { get; set; }

IReadOnlyList<Base> IDisplayValue<IReadOnlyList<Base>>.displayValue => displayValue;
Expand Down
10 changes: 1 addition & 9 deletions src/Speckle.Objects/Data/Civil3dObject.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@ namespace Speckle.Objects.Data;
/// Represents an Autodesk.Civil.DatabaseServices.Entity object in Civil3d
/// </summary>
[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; }

/// <summary>
Expand All @@ -22,14 +21,7 @@ public class Civil3dObject : Base, ICivilObject
[DetachProperty]
public required List<Base> elements { get; set; }

[DetachProperty]
public required List<Base> displayValue { get; set; }

public required Dictionary<string, object?> properties { get; set; }

public required string units { get; set; }

IReadOnlyList<Base> ICivilObject.elements => elements;

IReadOnlyList<Base> IDisplayValue<IReadOnlyList<Base>>.displayValue => displayValue;
}
8 changes: 1 addition & 7 deletions src/Speckle.Objects/Data/EtabsObject.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@ namespace Speckle.Objects.Data;
/// Represents a wrapper object in ETABS
/// </summary>
[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; }

/// <summary>
Expand All @@ -17,11 +16,6 @@ public class EtabsObject : Base, ICsiObject
[DetachProperty]
public required List<EtabsObject> elements { get; set; }

[DetachProperty]
public required List<Base> displayValue { get; set; }

public required Dictionary<string, object?> properties { get; set; }

public required string units { get; set; }

IReadOnlyList<ICsiObject> ICsiObject.elements => elements;
Expand Down
9 changes: 1 addition & 8 deletions src/Speckle.Objects/Data/NavisworksObject.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,8 @@ namespace Speckle.Objects.Data;
/// Represents a "first selectable ancestor" Navisworks.ModelItem object in Navisworks
/// </summary>
[SpeckleType("Objects.Data.NavisworksObject")]
public class NavisworksObject : Base, INavisworksObject
public class NavisworksObject : DataObject, INavisworksObject
{
public required string name { get; set; }

[DetachProperty]
public required List<Base> displayValue { get; set; }

public required Dictionary<string, object?> properties { get; set; }

public required string units { get; set; }

IReadOnlyList<Base> IDisplayValue<IReadOnlyList<Base>>.displayValue => displayValue;
Expand Down
11 changes: 1 addition & 10 deletions src/Speckle.Objects/Data/RevitObject.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
using Speckle.Objects.Geometry;
using Speckle.Sdk.Models;

namespace Speckle.Objects.Data;
Expand All @@ -7,9 +6,8 @@ namespace Speckle.Objects.Data;
/// Represents an Autodesk.Revit.DB.Element object in Revit
/// </summary>
[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; }
Expand All @@ -25,14 +23,7 @@ public class RevitObject : Base, IRevitObject
[DetachProperty]
public required List<RevitObject> elements { get; set; }

[DetachProperty]
public required List<Mesh> displayValue { get; set; }

public required Dictionary<string, object?> properties { get; set; }

public required string units { get; set; }

IReadOnlyList<IRevitObject> IRevitObject.elements => elements;

IReadOnlyList<Base> IDisplayValue<IReadOnlyList<Base>>.displayValue => displayValue;
}
8 changes: 1 addition & 7 deletions src/Speckle.Objects/Data/TeklaObject.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@ namespace Speckle.Objects.Data;
/// Represents an Tekla.Structures.Model.ModelObject object in Tekla Structures
/// </summary>
[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; }

/// <summary>
Expand All @@ -17,11 +16,6 @@ public class TeklaObject : Base, ITeklaObject
[DetachProperty]
public required List<TeklaObject> elements { get; set; }

[DetachProperty]
public required List<Base> displayValue { get; set; }

public required Dictionary<string, object?> properties { get; set; }

public required string units { get; set; }

IReadOnlyList<ITeklaObject> ITeklaObject.elements => elements;
Expand Down
2 changes: 1 addition & 1 deletion src/Speckle.Objects/Interfaces.cs
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ public interface IProperties : ISpeckleObject
Dictionary<string, object?> properties { get; }
}

public interface IDataObject : ISpeckleObject, IProperties, IDisplayValue<IReadOnlyList<Base>>
public interface IDataObject : IProperties, IDisplayValue<IReadOnlyList<Base>>
{
/// <summary>
/// The name of the object, primarily used to decorate the object for consumption in frontend and other apps
Expand Down

0 comments on commit eec400d

Please sign in to comment.