diff --git a/src/Speckle.Sdk/Models/Collections/RootCollection.cs b/src/Speckle.Sdk/Models/Collections/RootCollection.cs new file mode 100644 index 00000000..6c9d05d8 --- /dev/null +++ b/src/Speckle.Sdk/Models/Collections/RootCollection.cs @@ -0,0 +1,27 @@ +namespace Speckle.Sdk.Models.Collections; + +/// +/// Root collection that represents the top-level commit object. +/// Extends Collection to include model-wide properties that apply to the entire model. +/// +[SpeckleType("Speckle.Core.Models.Collections.RootCollection")] +public class RootCollection : Collection +{ + /// + /// Constructor for a root collection. + /// + /// The human-readable name of this root collection + public RootCollection(string name) : base(name) { } + + /// + /// Model-wide properties that apply to the entire model. + /// + /// + /// These are intended for model-level metadata such as total area, project information, or analysis results. + /// + public Dictionary? properties + { + get => this["properties"] as Dictionary; + set => this["properties"] = value; + } +}