diff --git a/src/Speckle.Objects/Data/ArchicadObject.cs b/src/Speckle.Objects/Data/ArchicadObject.cs new file mode 100644 index 00000000..d243ba25 --- /dev/null +++ b/src/Speckle.Objects/Data/ArchicadObject.cs @@ -0,0 +1,19 @@ +using Speckle.Sdk.Models; + +namespace Speckle.Objects.Data; + +/// +/// Represents a base class object in Archicad +/// +[SpeckleType("Objects.Data.ArchicadObject")] +public class ArchicadObject : DataObject, IArchicadObject +{ + public required string type { get; set; } + + public required string level { get; set; } + + [DetachProperty] + public required List elements { get; set; } + + IReadOnlyList IArchicadObject.elements => elements; +} diff --git a/src/Speckle.Objects/Interfaces.cs b/src/Speckle.Objects/Interfaces.cs index 43f6d52f..b2df1903 100644 --- a/src/Speckle.Objects/Interfaces.cs +++ b/src/Speckle.Objects/Interfaces.cs @@ -167,6 +167,15 @@ public interface IGisObject : IDataObject string type { get; } } +public interface IArchicadObject : IDataObject +{ + string type { get; } + + string level { get; } + + IReadOnlyList elements { get; } +} + public interface INavisworksObject : IDataObject { }