diff --git a/.gitignore b/.gitignore
index c0dd0fe33..c9a7a6e2d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -286,4 +286,4 @@ __pycache__/
*.btm.cs
*.odx.cs
*.xsd.cs
-/*/*.orig
+/**/*.orig
diff --git a/CDP4Common.NetCore.Tests/Helpers/TypeResolverTestFixture.cs b/CDP4Common.NetCore.Tests/Helpers/TypeResolverTestFixture.cs
index 9f1f5d3ad..09693c6d7 100644
--- a/CDP4Common.NetCore.Tests/Helpers/TypeResolverTestFixture.cs
+++ b/CDP4Common.NetCore.Tests/Helpers/TypeResolverTestFixture.cs
@@ -49,7 +49,7 @@ public void Verify_that_GetDerivedTypes_returns_expected_results()
var subtypes = TypeResolver.GetDerivedTypes(subjectType, assembly).ToList();
- Assert.That(subtypes.Count, Is.EqualTo(67));
+ Assert.That(subtypes.Count, Is.EqualTo(68));
}
[Test]
diff --git a/CDP4Common.NetCore.Tests/Poco/AttachmentTestFixture.cs b/CDP4Common.NetCore.Tests/Poco/AttachmentTestFixture.cs
new file mode 100644
index 000000000..a483a6720
--- /dev/null
+++ b/CDP4Common.NetCore.Tests/Poco/AttachmentTestFixture.cs
@@ -0,0 +1,55 @@
+// --------------------------------------------------------------------------------------------------------------------
+//
+// Copyright (c) 2015-2021 RHEA System S.A.
+//
+// Author: Sam Gerené, Merlin Bieze, Alex Vorobiev, Naron Phou, Alexander van Delft
+//
+// This file is part of CDP4-SDK Community Edition
+//
+// The CDP4-SDK Community Edition is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 3 of the License, or (at your option) any later version.
+//
+// The CDP4-SDK Community Edition is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program; if not, write to the Free Software Foundation,
+// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace CDP4Common.Tests.Poco
+{
+ using System;
+
+ using CDP4Common.EngineeringModelData;
+ using CDP4Common.SiteDirectoryData;
+
+ using NUnit.Framework;
+
+ [TestFixture]
+ internal class AttachmentTestFixture
+ {
+ private Attachment attachment;
+
+ [SetUp]
+ public void Setup()
+ {
+ this.attachment = new Attachment(Guid.NewGuid(), null, null);
+ this.attachment.FileName = "filerev";
+
+ this.attachment.FileType.Add(new FileType(Guid.NewGuid(), null, null) { Extension = "ext1" });
+ this.attachment.FileType.Add(new FileType(Guid.NewGuid(), null, null) { Extension = "ext2" });
+ }
+
+ [Test]
+ public void VerifyPathForFileRevisionLocatedInFileStore()
+ {
+ Assert.AreEqual("filerev.ext1.ext2", this.attachment.Path);
+ }
+ }
+}
\ No newline at end of file
diff --git a/CDP4Common.NetCore.Tests/Poco/ParticipantRoleTestFixture.cs b/CDP4Common.NetCore.Tests/Poco/ParticipantRoleTestFixture.cs
index 37bdfba56..f41b1e994 100644
--- a/CDP4Common.NetCore.Tests/Poco/ParticipantRoleTestFixture.cs
+++ b/CDP4Common.NetCore.Tests/Poco/ParticipantRoleTestFixture.cs
@@ -1,8 +1,8 @@
// --------------------------------------------------------------------------------------------------------------------
//
-// Copyright (c) 2015-2020 RHEA System S.A.
+// Copyright (c) 2015-2021 RHEA System S.A.
//
-// Author: Sam Gerené, Merlin Bieze, Alex Vorobiev, Naron Phou
+// Author: Sam Gerené, Alex Vorobiev, Naron Phou, Patxi Ozkoidi, Alexander van Delft, Nathanael Smiechowski, Ahmed Ahmed, Simon Wood
//
// This file is part of CDP4-SDK Community Edition
//
@@ -38,8 +38,8 @@ internal class ParticipantRoleTestFixture
public void VerifyPopulateParticipantPermissions()
{
var participantRole = new ParticipantRole();
- Assert.AreEqual(48, participantRole.ParticipantPermission.Count);
+ Assert.AreEqual(49, participantRole.ParticipantPermission.Count);
Assert.IsTrue(participantRole.ParticipantPermission.All(x => x.AccessRight == ParticipantAccessRightKind.NONE));
}
}
-}
\ No newline at end of file
+}
diff --git a/CDP4Common.Tests/Helpers/TypeResolverTestFixture.cs b/CDP4Common.Tests/Helpers/TypeResolverTestFixture.cs
index ca31985f3..2c45f74ec 100644
--- a/CDP4Common.Tests/Helpers/TypeResolverTestFixture.cs
+++ b/CDP4Common.Tests/Helpers/TypeResolverTestFixture.cs
@@ -47,7 +47,7 @@ public void Verify_that_GetDerivedTypes_returns_expected_results()
var subtypes = TypeResolver.GetDerivedTypes(subjectType, assembly).ToList();
- Assert.That(subtypes.Count, Is.EqualTo(67));
+ Assert.That(subtypes.Count, Is.EqualTo(68));
}
[Test]
diff --git a/CDP4Common.Tests/Poco/AttachmentTestFixture.cs b/CDP4Common.Tests/Poco/AttachmentTestFixture.cs
new file mode 100644
index 000000000..a483a6720
--- /dev/null
+++ b/CDP4Common.Tests/Poco/AttachmentTestFixture.cs
@@ -0,0 +1,55 @@
+// --------------------------------------------------------------------------------------------------------------------
+//
+// Copyright (c) 2015-2021 RHEA System S.A.
+//
+// Author: Sam Gerené, Merlin Bieze, Alex Vorobiev, Naron Phou, Alexander van Delft
+//
+// This file is part of CDP4-SDK Community Edition
+//
+// The CDP4-SDK Community Edition is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 3 of the License, or (at your option) any later version.
+//
+// The CDP4-SDK Community Edition is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program; if not, write to the Free Software Foundation,
+// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace CDP4Common.Tests.Poco
+{
+ using System;
+
+ using CDP4Common.EngineeringModelData;
+ using CDP4Common.SiteDirectoryData;
+
+ using NUnit.Framework;
+
+ [TestFixture]
+ internal class AttachmentTestFixture
+ {
+ private Attachment attachment;
+
+ [SetUp]
+ public void Setup()
+ {
+ this.attachment = new Attachment(Guid.NewGuid(), null, null);
+ this.attachment.FileName = "filerev";
+
+ this.attachment.FileType.Add(new FileType(Guid.NewGuid(), null, null) { Extension = "ext1" });
+ this.attachment.FileType.Add(new FileType(Guid.NewGuid(), null, null) { Extension = "ext2" });
+ }
+
+ [Test]
+ public void VerifyPathForFileRevisionLocatedInFileStore()
+ {
+ Assert.AreEqual("filerev.ext1.ext2", this.attachment.Path);
+ }
+ }
+}
\ No newline at end of file
diff --git a/CDP4Common.Tests/Poco/ParticipantRoleTestFixture.cs b/CDP4Common.Tests/Poco/ParticipantRoleTestFixture.cs
index d6ee89010..76a8c9c01 100644
--- a/CDP4Common.Tests/Poco/ParticipantRoleTestFixture.cs
+++ b/CDP4Common.Tests/Poco/ParticipantRoleTestFixture.cs
@@ -1,9 +1,8 @@
-#region Copyright
-// --------------------------------------------------------------------------------------------------------------------
+// --------------------------------------------------------------------------------------------------------------------
//
-// Copyright (c) 2015-2019 RHEA System S.A.
+// Copyright (c) 2015-2021 RHEA System S.A.
//
-// Author: Sam Gerené, Merlin Bieze, Alex Vorobiev, Naron Phou
+// Author: Sam Gerené, Alex Vorobiev, Naron Phou, Patxi Ozkoidi, Alexander van Delft, Nathanael Smiechowski, Ahmed Ahmed, Simon Wood
//
// This file is part of CDP4-SDK Community Edition
//
@@ -22,13 +21,14 @@
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//
// --------------------------------------------------------------------------------------------------------------------
-#endregion
namespace CDP4Common.Tests.Poco
{
using System.Linq;
+
using CDP4Common.CommonData;
using CDP4Common.SiteDirectoryData;
+
using NUnit.Framework;
[TestFixture]
@@ -38,8 +38,8 @@ internal class ParticipantRoleTestFixture
public void VerifyPopulateParticipantPermissions()
{
var participantRole = new ParticipantRole();
- Assert.AreEqual(48, participantRole.ParticipantPermission.Count);
+ Assert.AreEqual(49, participantRole.ParticipantPermission.Count);
Assert.IsTrue(participantRole.ParticipantPermission.All(x => x.AccessRight == ParticipantAccessRightKind.NONE));
}
}
-}
\ No newline at end of file
+}
diff --git a/CDP4Common/AutoGenDto/ArchitectureDiagram.cs b/CDP4Common/AutoGenDto/ArchitectureDiagram.cs
new file mode 100644
index 000000000..2f7d5c789
--- /dev/null
+++ b/CDP4Common/AutoGenDto/ArchitectureDiagram.cs
@@ -0,0 +1,180 @@
+// --------------------------------------------------------------------------------------------------------------------
+//
+// Copyright (c) 2015-2021 RHEA System S.A.
+//
+// Author: Sam Gerené, Merlin Bieze, Alex Vorobiev, Naron Phou, Alexander van Delft, Nathanael Smiechowski
+//
+// This file is part of COMET-SDK Community Edition
+// This is an auto-generated class. Any manual changes to this file will be overwritten!
+//
+// The COMET-SDK Community Edition is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 3 of the License, or (at your option) any later version.
+//
+// The COMET-SDK Community Edition is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program; if not, write to the Free Software Foundation,
+// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace CDP4Common.DTO
+{
+ using System;
+ using System.Collections;
+ using System.Collections.Concurrent;
+ using System.Collections.Generic;
+ using System.Linq;
+ using System.Runtime.Serialization;
+ using System.Xml.Serialization;
+ using CDP4Common.CommonData;
+ using CDP4Common.DiagramData;
+ using CDP4Common.EngineeringModelData;
+ using CDP4Common.ReportingData;
+ using CDP4Common.SiteDirectoryData;
+ using CDP4Common.Types;
+
+ ///
+ /// A Data Transfer Object representation of the class.
+ ///
+ [DataContract]
+ [CDPVersion("1.3.0")]
+ [Container(typeof(Iteration), "DiagramCanvas")]
+ public sealed partial class ArchitectureDiagram : DiagramCanvas, IOwnedThing
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public ArchitectureDiagram()
+ {
+ }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ ///
+ /// The unique identifier.
+ ///
+ ///
+ /// The revision number.
+ ///
+ public ArchitectureDiagram(Guid iid, int rev) : base(iid: iid, rev: rev)
+ {
+ }
+
+ ///
+ /// Gets or sets the unique identifier of the referenced Owner.
+ ///
+ [UmlInformation(aggregation: AggregationKind.None, isDerived: false, isOrdered: false, isNullable: false, isPersistent: true)]
+ [DataMember]
+ public Guid Owner { get; set; }
+
+ ///
+ /// Gets or sets the unique identifier of the referenced TopArchitectureElement.
+ ///
+ [UmlInformation(aggregation: AggregationKind.None, isDerived: false, isOrdered: false, isNullable: true, isPersistent: true)]
+ [DataMember]
+ public Guid? TopArchitectureElement { get; set; }
+
+ ///
+ /// Gets the route for the current .
+ ///
+ public override string Route
+ {
+ get { return this.ComputedRoute(); }
+ }
+
+ ///
+ /// Instantiate a from a
+ ///
+ /// The cache that stores all the s.
+ /// The of the .
+ /// A new
+ public override CommonData.Thing InstantiatePoco(ConcurrentDictionary> cache, Uri uri)
+ {
+ return new CDP4Common.DiagramData.ArchitectureDiagram(this.Iid, cache, uri);
+ }
+
+ ///
+ /// Resolves the properties of a copied based on the original and a collection of copied .
+ ///
+ /// The original .
+ /// The map containig all instance of copied s with their original.
+ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary originalCopyMap)
+ {
+ var original = originalThing as ArchitectureDiagram;
+ if (original == null)
+ {
+ throw new InvalidOperationException("The originalThing cannot be null or is of the incorrect type");
+ }
+
+ foreach (var guid in original.Bounds)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Bounds.Add(copy.Value.Iid);
+ }
+
+ this.CreatedOn = original.CreatedOn;
+
+ this.Description = original.Description;
+
+ foreach (var guid in original.DiagramElement)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.DiagramElement.Add(copy.Value.Iid);
+ }
+
+ foreach (var guid in original.ExcludedDomain)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ this.ExcludedDomain.Add(copy.Value == null ? guid : copy.Value.Iid);
+ }
+
+ foreach (var guid in original.ExcludedPerson)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ this.ExcludedPerson.Add(copy.Value == null ? guid : copy.Value.Iid);
+ }
+
+ this.ModifiedOn = original.ModifiedOn;
+
+ this.Name = original.Name;
+
+ var copyOwner = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == original.Owner);
+ this.Owner = copyOwner.Value == null ? original.Owner : copyOwner.Value.Iid;
+
+ this.PublicationState = original.PublicationState;
+
+ this.ThingPreference = original.ThingPreference;
+
+ var copyTopArchitectureElement = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == original.TopArchitectureElement);
+ this.TopArchitectureElement = copyTopArchitectureElement.Value == null ? original.TopArchitectureElement : copyTopArchitectureElement.Value.Iid;
+ }
+
+ ///
+ /// Resolves the references of a copied based on a original to copy map.
+ ///
+ /// The map containig all instance of copied s with their original.
+ /// True if a modification was done in the process of this method.
+ public override bool ResolveCopyReference(IReadOnlyDictionary originalCopyMap)
+ {
+ var hasChanges = false;
+
+ return hasChanges;
+ }
+ }
+}
diff --git a/CDP4Common/AutoGenDto/ArchitectureElement.cs b/CDP4Common/AutoGenDto/ArchitectureElement.cs
new file mode 100644
index 000000000..02caf111b
--- /dev/null
+++ b/CDP4Common/AutoGenDto/ArchitectureElement.cs
@@ -0,0 +1,175 @@
+// --------------------------------------------------------------------------------------------------------------------
+//
+// Copyright (c) 2015-2021 RHEA System S.A.
+//
+// Author: Sam Gerené, Merlin Bieze, Alex Vorobiev, Naron Phou, Alexander van Delft, Nathanael Smiechowski
+//
+// This file is part of COMET-SDK Community Edition
+// This is an auto-generated class. Any manual changes to this file will be overwritten!
+//
+// The COMET-SDK Community Edition is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 3 of the License, or (at your option) any later version.
+//
+// The COMET-SDK Community Edition is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program; if not, write to the Free Software Foundation,
+// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace CDP4Common.DTO
+{
+ using System;
+ using System.Collections;
+ using System.Collections.Concurrent;
+ using System.Collections.Generic;
+ using System.Linq;
+ using System.Runtime.Serialization;
+ using System.Xml.Serialization;
+ using CDP4Common.CommonData;
+ using CDP4Common.DiagramData;
+ using CDP4Common.EngineeringModelData;
+ using CDP4Common.ReportingData;
+ using CDP4Common.SiteDirectoryData;
+ using CDP4Common.Types;
+
+ ///
+ /// A Data Transfer Object representation of the class.
+ ///
+ [DataContract]
+ [CDPVersion("1.3.0")]
+ [Container(typeof(DiagramElementContainer), "DiagramElement")]
+ public sealed partial class ArchitectureElement : DiagramObject
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public ArchitectureElement()
+ {
+ }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ ///
+ /// The unique identifier.
+ ///
+ ///
+ /// The revision number.
+ ///
+ public ArchitectureElement(Guid iid, int rev) : base(iid: iid, rev: rev)
+ {
+ }
+
+ ///
+ /// Gets the route for the current .
+ ///
+ public override string Route
+ {
+ get { return this.ComputedRoute(); }
+ }
+
+ ///
+ /// Instantiate a from a
+ ///
+ /// The cache that stores all the s.
+ /// The of the .
+ /// A new
+ public override CommonData.Thing InstantiatePoco(ConcurrentDictionary> cache, Uri uri)
+ {
+ return new CDP4Common.DiagramData.ArchitectureElement(this.Iid, cache, uri);
+ }
+
+ ///
+ /// Resolves the properties of a copied based on the original and a collection of copied .
+ ///
+ /// The original .
+ /// The map containig all instance of copied s with their original.
+ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary originalCopyMap)
+ {
+ var original = originalThing as ArchitectureElement;
+ if (original == null)
+ {
+ throw new InvalidOperationException("The originalThing cannot be null or is of the incorrect type");
+ }
+
+ foreach (var guid in original.Bounds)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Bounds.Add(copy.Value.Iid);
+ }
+
+ var copyDepictedThing = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == original.DepictedThing);
+ this.DepictedThing = copyDepictedThing.Value == null ? original.DepictedThing : copyDepictedThing.Value.Iid;
+
+ foreach (var guid in original.DiagramElement)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.DiagramElement.Add(copy.Value.Iid);
+ }
+
+ this.Documentation = original.Documentation;
+
+ foreach (var guid in original.ExcludedDomain)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ this.ExcludedDomain.Add(copy.Value == null ? guid : copy.Value.Iid);
+ }
+
+ foreach (var guid in original.ExcludedPerson)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ this.ExcludedPerson.Add(copy.Value == null ? guid : copy.Value.Iid);
+ }
+
+ foreach (var guid in original.LocalStyle)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.LocalStyle.Add(copy.Value.Iid);
+ }
+
+ this.ModifiedOn = original.ModifiedOn;
+
+ this.Name = original.Name;
+
+ this.Resolution = original.Resolution;
+
+ var copySharedStyle = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == original.SharedStyle);
+ this.SharedStyle = copySharedStyle.Value == null ? original.SharedStyle : copySharedStyle.Value.Iid;
+
+ this.ThingPreference = original.ThingPreference;
+ }
+
+ ///
+ /// Resolves the references of a copied based on a original to copy map.
+ ///
+ /// The map containig all instance of copied s with their original.
+ /// True if a modification was done in the process of this method.
+ public override bool ResolveCopyReference(IReadOnlyDictionary originalCopyMap)
+ {
+ var hasChanges = false;
+
+ return hasChanges;
+ }
+ }
+}
diff --git a/CDP4Common/AutoGenDto/ArrayParameterType.cs b/CDP4Common/AutoGenDto/ArrayParameterType.cs
index 00a4fd53c..1cf62a539 100644
--- a/CDP4Common/AutoGenDto/ArrayParameterType.cs
+++ b/CDP4Common/AutoGenDto/ArrayParameterType.cs
@@ -152,6 +152,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/Attachment.cs b/CDP4Common/AutoGenDto/Attachment.cs
new file mode 100644
index 000000000..febd71005
--- /dev/null
+++ b/CDP4Common/AutoGenDto/Attachment.cs
@@ -0,0 +1,173 @@
+// --------------------------------------------------------------------------------------------------------------------
+//
+// Copyright (c) 2015-2021 RHEA System S.A.
+//
+// Author: Sam Gerené, Merlin Bieze, Alex Vorobiev, Naron Phou, Alexander van Delft, Nathanael Smiechowski
+//
+// This file is part of COMET-SDK Community Edition
+// This is an auto-generated class. Any manual changes to this file will be overwritten!
+//
+// The COMET-SDK Community Edition is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 3 of the License, or (at your option) any later version.
+//
+// The COMET-SDK Community Edition is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program; if not, write to the Free Software Foundation,
+// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace CDP4Common.DTO
+{
+ using System;
+ using System.Collections;
+ using System.Collections.Concurrent;
+ using System.Collections.Generic;
+ using System.Linq;
+ using System.Runtime.Serialization;
+ using System.Xml.Serialization;
+ using CDP4Common.CommonData;
+ using CDP4Common.DiagramData;
+ using CDP4Common.EngineeringModelData;
+ using CDP4Common.ReportingData;
+ using CDP4Common.SiteDirectoryData;
+ using CDP4Common.Types;
+
+ ///
+ /// A Data Transfer Object representation of the class.
+ ///
+ [DataContract]
+ [CDPVersion("1.3.0")]
+ [Container(typeof(DefinedThing), "Attachment")]
+ public sealed partial class Attachment : Thing
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public Attachment()
+ {
+ this.FileType = new List();
+ }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ ///
+ /// The unique identifier.
+ ///
+ ///
+ /// The revision number.
+ ///
+ public Attachment(Guid iid, int rev) : base(iid: iid, rev: rev)
+ {
+ this.FileType = new List();
+ }
+
+ ///
+ /// Gets or sets the ContentHash.
+ ///
+ [UmlInformation(aggregation: AggregationKind.None, isDerived: false, isOrdered: false, isNullable: false, isPersistent: true)]
+ [DataMember]
+ public string ContentHash { get; set; }
+
+ ///
+ /// Gets or sets the FileName.
+ ///
+ [UmlInformation(aggregation: AggregationKind.None, isDerived: false, isOrdered: false, isNullable: false, isPersistent: true)]
+ [DataMember]
+ public string FileName { get; set; }
+
+ ///
+ /// Gets or sets the list of unique identifiers of the referenced FileType instances.
+ ///
+ [UmlInformation(aggregation: AggregationKind.None, isDerived: false, isOrdered: false, isNullable: false, isPersistent: true)]
+ [DataMember]
+ public List FileType { get; set; }
+
+ ///
+ /// Gets the route for the current .
+ ///
+ public override string Route
+ {
+ get { return this.ComputedRoute(); }
+ }
+
+ ///
+ /// Instantiate a from a
+ ///
+ /// The cache that stores all the s.
+ /// The of the .
+ /// A new
+ public override CommonData.Thing InstantiatePoco(ConcurrentDictionary> cache, Uri uri)
+ {
+ return new CDP4Common.EngineeringModelData.Attachment(this.Iid, cache, uri);
+ }
+
+ ///
+ /// Resolves the properties of a copied based on the original and a collection of copied .
+ ///
+ /// The original .
+ /// The map containig all instance of copied s with their original.
+ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary originalCopyMap)
+ {
+ var original = originalThing as Attachment;
+ if (original == null)
+ {
+ throw new InvalidOperationException("The originalThing cannot be null or is of the incorrect type");
+ }
+
+ this.ContentHash = original.ContentHash;
+
+ foreach (var guid in original.ExcludedDomain)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ this.ExcludedDomain.Add(copy.Value == null ? guid : copy.Value.Iid);
+ }
+
+ foreach (var guid in original.ExcludedPerson)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ this.ExcludedPerson.Add(copy.Value == null ? guid : copy.Value.Iid);
+ }
+
+ this.FileName = original.FileName;
+
+ foreach (var guid in original.FileType)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ this.FileType.Add(copy.Value == null ? guid : copy.Value.Iid);
+ }
+
+ this.ModifiedOn = original.ModifiedOn;
+
+ this.ThingPreference = original.ThingPreference;
+ }
+
+ ///
+ /// Resolves the references of a copied based on a original to copy map.
+ ///
+ /// The map containig all instance of copied s with their original.
+ /// True if a modification was done in the process of this method.
+ public override bool ResolveCopyReference(IReadOnlyDictionary originalCopyMap)
+ {
+ var hasChanges = false;
+
+ for (var i = 0; i < this.FileType.Count; i++)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == this.FileType[i]);
+ if (copy.Key != null)
+ {
+ this.FileType[i] = copy.Value.Iid;
+ hasChanges = true;
+ }
+ }
+
+ return hasChanges;
+ }
+ }
+}
diff --git a/CDP4Common/AutoGenDto/Behavior.cs b/CDP4Common/AutoGenDto/Behavior.cs
new file mode 100644
index 000000000..b6b5a8d2b
--- /dev/null
+++ b/CDP4Common/AutoGenDto/Behavior.cs
@@ -0,0 +1,229 @@
+// --------------------------------------------------------------------------------------------------------------------
+//
+// Copyright (c) 2015-2021 RHEA System S.A.
+//
+// Author: Sam Gerené, Merlin Bieze, Alex Vorobiev, Naron Phou, Alexander van Delft, Nathanael Smiechowski
+//
+// This file is part of COMET-SDK Community Edition
+// This is an auto-generated class. Any manual changes to this file will be overwritten!
+//
+// The COMET-SDK Community Edition is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 3 of the License, or (at your option) any later version.
+//
+// The COMET-SDK Community Edition is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program; if not, write to the Free Software Foundation,
+// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace CDP4Common.DTO
+{
+ using System;
+ using System.Collections;
+ using System.Collections.Concurrent;
+ using System.Collections.Generic;
+ using System.Linq;
+ using System.Runtime.Serialization;
+ using System.Xml.Serialization;
+ using CDP4Common.CommonData;
+ using CDP4Common.DiagramData;
+ using CDP4Common.EngineeringModelData;
+ using CDP4Common.ReportingData;
+ using CDP4Common.SiteDirectoryData;
+ using CDP4Common.Types;
+
+ ///
+ /// A Data Transfer Object representation of the class.
+ ///
+ [DataContract]
+ [CDPVersion("1.3.0")]
+ [Container(typeof(ElementDefinition), "Behavior")]
+ public sealed partial class Behavior : DefinedThing
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public Behavior()
+ {
+ this.BehavioralParameter = new List();
+ }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ ///
+ /// The unique identifier.
+ ///
+ ///
+ /// The revision number.
+ ///
+ public Behavior(Guid iid, int rev) : base(iid: iid, rev: rev)
+ {
+ this.BehavioralParameter = new List();
+ }
+
+ ///
+ /// Gets or sets the BehavioralModelKind.
+ ///
+ [UmlInformation(aggregation: AggregationKind.None, isDerived: false, isOrdered: false, isNullable: false, isPersistent: true)]
+ [DataMember]
+ public BehavioralModelKind BehavioralModelKind { get; set; }
+
+ ///
+ /// Gets or sets the unique identifiers of the contained BehavioralParameter instances.
+ ///
+ [UmlInformation(aggregation: AggregationKind.Composite, isDerived: false, isOrdered: false, isNullable: false, isPersistent: true)]
+ [DataMember]
+ public List BehavioralParameter { get; set; }
+
+ ///
+ /// Gets or sets the Script.
+ ///
+ [UmlInformation(aggregation: AggregationKind.None, isDerived: false, isOrdered: false, isNullable: false, isPersistent: true)]
+ [DataMember]
+ public string Script { get; set; }
+
+ ///
+ /// Gets the route for the current .
+ ///
+ public override string Route
+ {
+ get { return this.ComputedRoute(); }
+ }
+
+ ///
+ /// Gets an that references the composite properties of the current .
+ ///
+ public override IEnumerable ContainerLists
+ {
+ get
+ {
+ var containers = new List(base.ContainerLists);
+ containers.Add(this.BehavioralParameter);
+ return containers;
+ }
+ }
+
+ ///
+ /// Instantiate a from a
+ ///
+ /// The cache that stores all the s.
+ /// The of the .
+ /// A new
+ public override CommonData.Thing InstantiatePoco(ConcurrentDictionary> cache, Uri uri)
+ {
+ return new CDP4Common.EngineeringModelData.Behavior(this.Iid, cache, uri);
+ }
+
+ ///
+ /// Resolves the properties of a copied based on the original and a collection of copied .
+ ///
+ /// The original .
+ /// The map containig all instance of copied s with their original.
+ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary originalCopyMap)
+ {
+ var original = originalThing as Behavior;
+ if (original == null)
+ {
+ throw new InvalidOperationException("The originalThing cannot be null or is of the incorrect type");
+ }
+
+ foreach (var guid in original.Alias)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Alias.Add(copy.Value.Iid);
+ }
+
+ foreach (var guid in original.Attachment)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
+ this.BehavioralModelKind = original.BehavioralModelKind;
+
+ foreach (var guid in original.BehavioralParameter)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.BehavioralParameter.Add(copy.Value.Iid);
+ }
+
+ foreach (var guid in original.Definition)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Definition.Add(copy.Value.Iid);
+ }
+
+ foreach (var guid in original.ExcludedDomain)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ this.ExcludedDomain.Add(copy.Value == null ? guid : copy.Value.Iid);
+ }
+
+ foreach (var guid in original.ExcludedPerson)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ this.ExcludedPerson.Add(copy.Value == null ? guid : copy.Value.Iid);
+ }
+
+ foreach (var guid in original.HyperLink)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.HyperLink.Add(copy.Value.Iid);
+ }
+
+ this.ModifiedOn = original.ModifiedOn;
+
+ this.Name = original.Name;
+
+ this.Script = original.Script;
+
+ this.ShortName = original.ShortName;
+
+ this.ThingPreference = original.ThingPreference;
+ }
+
+ ///
+ /// Resolves the references of a copied based on a original to copy map.
+ ///
+ /// The map containig all instance of copied s with their original.
+ /// True if a modification was done in the process of this method.
+ public override bool ResolveCopyReference(IReadOnlyDictionary originalCopyMap)
+ {
+ var hasChanges = false;
+
+ return hasChanges;
+ }
+ }
+}
diff --git a/CDP4Common/AutoGenDto/BehavioralParameter.cs b/CDP4Common/AutoGenDto/BehavioralParameter.cs
new file mode 100644
index 000000000..a36719250
--- /dev/null
+++ b/CDP4Common/AutoGenDto/BehavioralParameter.cs
@@ -0,0 +1,158 @@
+// --------------------------------------------------------------------------------------------------------------------
+//
+// Copyright (c) 2015-2021 RHEA System S.A.
+//
+// Author: Sam Gerené, Merlin Bieze, Alex Vorobiev, Naron Phou, Alexander van Delft, Nathanael Smiechowski
+//
+// This file is part of COMET-SDK Community Edition
+// This is an auto-generated class. Any manual changes to this file will be overwritten!
+//
+// The COMET-SDK Community Edition is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 3 of the License, or (at your option) any later version.
+//
+// The COMET-SDK Community Edition is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program; if not, write to the Free Software Foundation,
+// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace CDP4Common.DTO
+{
+ using System;
+ using System.Collections;
+ using System.Collections.Concurrent;
+ using System.Collections.Generic;
+ using System.Linq;
+ using System.Runtime.Serialization;
+ using System.Xml.Serialization;
+ using CDP4Common.CommonData;
+ using CDP4Common.DiagramData;
+ using CDP4Common.EngineeringModelData;
+ using CDP4Common.ReportingData;
+ using CDP4Common.SiteDirectoryData;
+ using CDP4Common.Types;
+
+ ///
+ /// A Data Transfer Object representation of the class.
+ ///
+ [DataContract]
+ [CDPVersion("1.3.0")]
+ [Container(typeof(Behavior), "BehavioralParameter")]
+ public sealed partial class BehavioralParameter : Thing
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public BehavioralParameter()
+ {
+ }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ ///
+ /// The unique identifier.
+ ///
+ ///
+ /// The revision number.
+ ///
+ public BehavioralParameter(Guid iid, int rev) : base(iid: iid, rev: rev)
+ {
+ }
+
+ ///
+ /// Gets or sets the BehavioralParameterKind.
+ ///
+ [UmlInformation(aggregation: AggregationKind.None, isDerived: false, isOrdered: false, isNullable: false, isPersistent: true)]
+ [DataMember]
+ public BehavioralParameterKind BehavioralParameterKind { get; set; }
+
+ ///
+ /// Gets or sets the unique identifier of the referenced Parameter.
+ ///
+ [UmlInformation(aggregation: AggregationKind.None, isDerived: false, isOrdered: false, isNullable: false, isPersistent: true)]
+ [DataMember]
+ public Guid Parameter { get; set; }
+
+ ///
+ /// Gets or sets the VariableName.
+ ///
+ [UmlInformation(aggregation: AggregationKind.None, isDerived: false, isOrdered: false, isNullable: false, isPersistent: true)]
+ [DataMember]
+ public string VariableName { get; set; }
+
+ ///
+ /// Gets the route for the current .
+ ///
+ public override string Route
+ {
+ get { return this.ComputedRoute(); }
+ }
+
+ ///
+ /// Instantiate a from a
+ ///
+ /// The cache that stores all the s.
+ /// The of the .
+ /// A new
+ public override CommonData.Thing InstantiatePoco(ConcurrentDictionary> cache, Uri uri)
+ {
+ return new CDP4Common.EngineeringModelData.BehavioralParameter(this.Iid, cache, uri);
+ }
+
+ ///
+ /// Resolves the properties of a copied based on the original and a collection of copied .
+ ///
+ /// The original .
+ /// The map containig all instance of copied s with their original.
+ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary originalCopyMap)
+ {
+ var original = originalThing as BehavioralParameter;
+ if (original == null)
+ {
+ throw new InvalidOperationException("The originalThing cannot be null or is of the incorrect type");
+ }
+
+ this.BehavioralParameterKind = original.BehavioralParameterKind;
+
+ foreach (var guid in original.ExcludedDomain)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ this.ExcludedDomain.Add(copy.Value == null ? guid : copy.Value.Iid);
+ }
+
+ foreach (var guid in original.ExcludedPerson)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ this.ExcludedPerson.Add(copy.Value == null ? guid : copy.Value.Iid);
+ }
+
+ this.ModifiedOn = original.ModifiedOn;
+
+ var copyParameter = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == original.Parameter);
+ this.Parameter = copyParameter.Value == null ? original.Parameter : copyParameter.Value.Iid;
+
+ this.ThingPreference = original.ThingPreference;
+
+ this.VariableName = original.VariableName;
+ }
+
+ ///
+ /// Resolves the references of a copied based on a original to copy map.
+ ///
+ /// The map containig all instance of copied s with their original.
+ /// True if a modification was done in the process of this method.
+ public override bool ResolveCopyReference(IReadOnlyDictionary originalCopyMap)
+ {
+ var hasChanges = false;
+
+ return hasChanges;
+ }
+ }
+}
diff --git a/CDP4Common/AutoGenDto/BinaryRelationshipRule.cs b/CDP4Common/AutoGenDto/BinaryRelationshipRule.cs
index bc1764cb1..1b1780761 100644
--- a/CDP4Common/AutoGenDto/BinaryRelationshipRule.cs
+++ b/CDP4Common/AutoGenDto/BinaryRelationshipRule.cs
@@ -143,6 +143,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Definition)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/BooleanParameterType.cs b/CDP4Common/AutoGenDto/BooleanParameterType.cs
index b17545a03..23b537c78 100644
--- a/CDP4Common/AutoGenDto/BooleanParameterType.cs
+++ b/CDP4Common/AutoGenDto/BooleanParameterType.cs
@@ -108,6 +108,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/Category.cs b/CDP4Common/AutoGenDto/Category.cs
index 1d8acda56..da3504a0f 100644
--- a/CDP4Common/AutoGenDto/Category.cs
+++ b/CDP4Common/AutoGenDto/Category.cs
@@ -140,6 +140,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Definition)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/CompoundParameterType.cs b/CDP4Common/AutoGenDto/CompoundParameterType.cs
index 655cb5d43..57b191e89 100644
--- a/CDP4Common/AutoGenDto/CompoundParameterType.cs
+++ b/CDP4Common/AutoGenDto/CompoundParameterType.cs
@@ -137,6 +137,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/Constant.cs b/CDP4Common/AutoGenDto/Constant.cs
index d06ce687f..054705c14 100644
--- a/CDP4Common/AutoGenDto/Constant.cs
+++ b/CDP4Common/AutoGenDto/Constant.cs
@@ -147,6 +147,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/CyclicRatioScale.cs b/CDP4Common/AutoGenDto/CyclicRatioScale.cs
index 36880e9d5..d5ae9b2fc 100644
--- a/CDP4Common/AutoGenDto/CyclicRatioScale.cs
+++ b/CDP4Common/AutoGenDto/CyclicRatioScale.cs
@@ -115,6 +115,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Definition)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/DateParameterType.cs b/CDP4Common/AutoGenDto/DateParameterType.cs
index a3e474cbf..debdfc0dd 100644
--- a/CDP4Common/AutoGenDto/DateParameterType.cs
+++ b/CDP4Common/AutoGenDto/DateParameterType.cs
@@ -108,6 +108,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/DateTimeParameterType.cs b/CDP4Common/AutoGenDto/DateTimeParameterType.cs
index 098c6dc47..674c13554 100644
--- a/CDP4Common/AutoGenDto/DateTimeParameterType.cs
+++ b/CDP4Common/AutoGenDto/DateTimeParameterType.cs
@@ -108,6 +108,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/DecompositionRule.cs b/CDP4Common/AutoGenDto/DecompositionRule.cs
index 190d9f084..3a862e176 100644
--- a/CDP4Common/AutoGenDto/DecompositionRule.cs
+++ b/CDP4Common/AutoGenDto/DecompositionRule.cs
@@ -138,6 +138,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.ContainedCategory)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/DefinedThing.cs b/CDP4Common/AutoGenDto/DefinedThing.cs
index 3065304c3..469d61f97 100644
--- a/CDP4Common/AutoGenDto/DefinedThing.cs
+++ b/CDP4Common/AutoGenDto/DefinedThing.cs
@@ -50,6 +50,7 @@ public abstract partial class DefinedThing : Thing, INamedThing, IShortNamedThin
protected DefinedThing()
{
this.Alias = new List();
+ this.Attachment = new List();
this.Definition = new List();
this.HyperLink = new List();
}
@@ -66,6 +67,7 @@ protected DefinedThing()
protected DefinedThing(Guid iid, int rev) : base(iid: iid, rev: rev)
{
this.Alias = new List();
+ this.Attachment = new List();
this.Definition = new List();
this.HyperLink = new List();
}
@@ -77,6 +79,13 @@ protected DefinedThing(Guid iid, int rev) : base(iid: iid, rev: rev)
[DataMember]
public virtual List Alias { get; set; }
+ ///
+ /// Gets or sets the unique identifiers of the contained Attachment instances.
+ ///
+ [UmlInformation(aggregation: AggregationKind.Composite, isDerived: false, isOrdered: false, isNullable: false, isPersistent: true)]
+ [DataMember]
+ public virtual List Attachment { get; set; }
+
///
/// Gets or sets the unique identifiers of the contained Definition instances.
///
@@ -114,6 +123,7 @@ public override IEnumerable ContainerLists
{
var containers = new List(base.ContainerLists);
containers.Add(this.Alias);
+ containers.Add(this.Attachment);
containers.Add(this.Definition);
containers.Add(this.HyperLink);
return containers;
diff --git a/CDP4Common/AutoGenDto/DerivedQuantityKind.cs b/CDP4Common/AutoGenDto/DerivedQuantityKind.cs
index f651c6a5f..4c617907c 100644
--- a/CDP4Common/AutoGenDto/DerivedQuantityKind.cs
+++ b/CDP4Common/AutoGenDto/DerivedQuantityKind.cs
@@ -130,6 +130,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/DerivedUnit.cs b/CDP4Common/AutoGenDto/DerivedUnit.cs
index b98d173ae..3c092ec01 100644
--- a/CDP4Common/AutoGenDto/DerivedUnit.cs
+++ b/CDP4Common/AutoGenDto/DerivedUnit.cs
@@ -130,6 +130,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Definition)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/DiagramCanvas.cs b/CDP4Common/AutoGenDto/DiagramCanvas.cs
index 005eb5565..8d5b9fa3a 100644
--- a/CDP4Common/AutoGenDto/DiagramCanvas.cs
+++ b/CDP4Common/AutoGenDto/DiagramCanvas.cs
@@ -44,7 +44,7 @@ namespace CDP4Common.DTO
[DataContract]
[CDPVersion("1.1.0")]
[Container(typeof(Iteration), "DiagramCanvas")]
- public sealed partial class DiagramCanvas : DiagramElementContainer, ITimeStampedThing
+ public partial class DiagramCanvas : DiagramElementContainer, ITimeStampedThing
{
///
/// Initializes a new instance of the class.
@@ -71,7 +71,21 @@ public DiagramCanvas(Guid iid, int rev) : base(iid: iid, rev: rev)
///
[UmlInformation(aggregation: AggregationKind.None, isDerived: false, isOrdered: false, isNullable: false, isPersistent: true)]
[DataMember]
- public DateTime CreatedOn { get; set; }
+ public virtual DateTime CreatedOn { get; set; }
+
+ ///
+ /// Gets or sets the Description.
+ ///
+ [UmlInformation(aggregation: AggregationKind.None, isDerived: false, isOrdered: false, isNullable: false, isPersistent: true)]
+ [DataMember]
+ public virtual string Description { get; set; }
+
+ ///
+ /// Gets or sets the PublicationState.
+ ///
+ [UmlInformation(aggregation: AggregationKind.None, isDerived: false, isOrdered: false, isNullable: false, isPersistent: true)]
+ [DataMember]
+ public virtual PublicationState PublicationState { get; set; }
///
/// Gets the route for the current .
@@ -118,6 +132,8 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
@@ -145,6 +161,8 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary
+// Copyright (c) 2015-2021 RHEA System S.A.
+//
+// Author: Sam Gerené, Merlin Bieze, Alex Vorobiev, Naron Phou, Alexander van Delft, Nathanael Smiechowski
+//
+// This file is part of COMET-SDK Community Edition
+// This is an auto-generated class. Any manual changes to this file will be overwritten!
+//
+// The COMET-SDK Community Edition is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 3 of the License, or (at your option) any later version.
+//
+// The COMET-SDK Community Edition is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program; if not, write to the Free Software Foundation,
+// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace CDP4Common.DTO
+{
+ using System;
+ using System.Collections;
+ using System.Collections.Concurrent;
+ using System.Collections.Generic;
+ using System.Linq;
+ using System.Runtime.Serialization;
+ using System.Xml.Serialization;
+ using CDP4Common.CommonData;
+ using CDP4Common.DiagramData;
+ using CDP4Common.EngineeringModelData;
+ using CDP4Common.ReportingData;
+ using CDP4Common.SiteDirectoryData;
+ using CDP4Common.Types;
+
+ ///
+ /// A Data Transfer Object representation of the class.
+ ///
+ [DataContract]
+ [CDPVersion("1.3.0")]
+ [Container(typeof(DiagramElementContainer), "DiagramElement")]
+ public sealed partial class DiagramFrame : DiagramShape
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public DiagramFrame()
+ {
+ }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ ///
+ /// The unique identifier.
+ ///
+ ///
+ /// The revision number.
+ ///
+ public DiagramFrame(Guid iid, int rev) : base(iid: iid, rev: rev)
+ {
+ }
+
+ ///
+ /// Gets the route for the current .
+ ///
+ public override string Route
+ {
+ get { return this.ComputedRoute(); }
+ }
+
+ ///
+ /// Instantiate a from a
+ ///
+ /// The cache that stores all the s.
+ /// The of the .
+ /// A new
+ public override CommonData.Thing InstantiatePoco(ConcurrentDictionary> cache, Uri uri)
+ {
+ return new CDP4Common.DiagramData.DiagramFrame(this.Iid, cache, uri);
+ }
+
+ ///
+ /// Resolves the properties of a copied based on the original and a collection of copied .
+ ///
+ /// The original .
+ /// The map containig all instance of copied s with their original.
+ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary originalCopyMap)
+ {
+ var original = originalThing as DiagramFrame;
+ if (original == null)
+ {
+ throw new InvalidOperationException("The originalThing cannot be null or is of the incorrect type");
+ }
+
+ foreach (var guid in original.Bounds)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Bounds.Add(copy.Value.Iid);
+ }
+
+ var copyDepictedThing = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == original.DepictedThing);
+ this.DepictedThing = copyDepictedThing.Value == null ? original.DepictedThing : copyDepictedThing.Value.Iid;
+
+ foreach (var guid in original.DiagramElement)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.DiagramElement.Add(copy.Value.Iid);
+ }
+
+ foreach (var guid in original.ExcludedDomain)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ this.ExcludedDomain.Add(copy.Value == null ? guid : copy.Value.Iid);
+ }
+
+ foreach (var guid in original.ExcludedPerson)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ this.ExcludedPerson.Add(copy.Value == null ? guid : copy.Value.Iid);
+ }
+
+ foreach (var guid in original.LocalStyle)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.LocalStyle.Add(copy.Value.Iid);
+ }
+
+ this.ModifiedOn = original.ModifiedOn;
+
+ this.Name = original.Name;
+
+ var copySharedStyle = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == original.SharedStyle);
+ this.SharedStyle = copySharedStyle.Value == null ? original.SharedStyle : copySharedStyle.Value.Iid;
+
+ this.ThingPreference = original.ThingPreference;
+ }
+
+ ///
+ /// Resolves the references of a copied based on a original to copy map.
+ ///
+ /// The map containig all instance of copied s with their original.
+ /// True if a modification was done in the process of this method.
+ public override bool ResolveCopyReference(IReadOnlyDictionary originalCopyMap)
+ {
+ var hasChanges = false;
+
+ return hasChanges;
+ }
+ }
+}
diff --git a/CDP4Common/AutoGenDto/DiagramObject.cs b/CDP4Common/AutoGenDto/DiagramObject.cs
index c482d6ca3..eff5b378b 100644
--- a/CDP4Common/AutoGenDto/DiagramObject.cs
+++ b/CDP4Common/AutoGenDto/DiagramObject.cs
@@ -44,7 +44,7 @@ namespace CDP4Common.DTO
[DataContract]
[CDPVersion("1.1.0")]
[Container(typeof(DiagramElementContainer), "DiagramElement")]
- public sealed partial class DiagramObject : DiagramShape
+ public partial class DiagramObject : DiagramShape
{
///
/// Initializes a new instance of the class.
@@ -71,14 +71,14 @@ public DiagramObject(Guid iid, int rev) : base(iid: iid, rev: rev)
///
[UmlInformation(aggregation: AggregationKind.None, isDerived: false, isOrdered: false, isNullable: false, isPersistent: true)]
[DataMember]
- public string Documentation { get; set; }
+ public virtual string Documentation { get; set; }
///
/// Gets or sets the Resolution.
///
[UmlInformation(aggregation: AggregationKind.None, isDerived: false, isOrdered: false, isNullable: false, isPersistent: true)]
[DataMember]
- public float Resolution { get; set; }
+ public virtual float Resolution { get; set; }
///
/// Gets the route for the current .
diff --git a/CDP4Common/AutoGenDto/DiagramPort.cs b/CDP4Common/AutoGenDto/DiagramPort.cs
new file mode 100644
index 000000000..9228de6a1
--- /dev/null
+++ b/CDP4Common/AutoGenDto/DiagramPort.cs
@@ -0,0 +1,171 @@
+// --------------------------------------------------------------------------------------------------------------------
+//
+// Copyright (c) 2015-2021 RHEA System S.A.
+//
+// Author: Sam Gerené, Merlin Bieze, Alex Vorobiev, Naron Phou, Alexander van Delft, Nathanael Smiechowski
+//
+// This file is part of COMET-SDK Community Edition
+// This is an auto-generated class. Any manual changes to this file will be overwritten!
+//
+// The COMET-SDK Community Edition is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 3 of the License, or (at your option) any later version.
+//
+// The COMET-SDK Community Edition is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program; if not, write to the Free Software Foundation,
+// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace CDP4Common.DTO
+{
+ using System;
+ using System.Collections;
+ using System.Collections.Concurrent;
+ using System.Collections.Generic;
+ using System.Linq;
+ using System.Runtime.Serialization;
+ using System.Xml.Serialization;
+ using CDP4Common.CommonData;
+ using CDP4Common.DiagramData;
+ using CDP4Common.EngineeringModelData;
+ using CDP4Common.ReportingData;
+ using CDP4Common.SiteDirectoryData;
+ using CDP4Common.Types;
+
+ ///
+ /// A Data Transfer Object representation of the class.
+ ///
+ [DataContract]
+ [CDPVersion("1.3.0")]
+ [Container(typeof(DiagramElementContainer), "DiagramElement")]
+ public sealed partial class DiagramPort : DiagramShape
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public DiagramPort()
+ {
+ }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ ///
+ /// The unique identifier.
+ ///
+ ///
+ /// The revision number.
+ ///
+ public DiagramPort(Guid iid, int rev) : base(iid: iid, rev: rev)
+ {
+ }
+
+ ///
+ /// Gets the route for the current .
+ ///
+ public override string Route
+ {
+ get { return this.ComputedRoute(); }
+ }
+
+ ///
+ /// Instantiate a from a
+ ///
+ /// The cache that stores all the s.
+ /// The of the .
+ /// A new
+ public override CommonData.Thing InstantiatePoco(ConcurrentDictionary> cache, Uri uri)
+ {
+ return new CDP4Common.DiagramData.DiagramPort(this.Iid, cache, uri);
+ }
+
+ ///
+ /// Resolves the properties of a copied based on the original and a collection of copied .
+ ///
+ /// The original .
+ /// The map containig all instance of copied s with their original.
+ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary originalCopyMap)
+ {
+ var original = originalThing as DiagramPort;
+ if (original == null)
+ {
+ throw new InvalidOperationException("The originalThing cannot be null or is of the incorrect type");
+ }
+
+ foreach (var guid in original.Bounds)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Bounds.Add(copy.Value.Iid);
+ }
+
+ var copyDepictedThing = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == original.DepictedThing);
+ this.DepictedThing = copyDepictedThing.Value == null ? original.DepictedThing : copyDepictedThing.Value.Iid;
+
+ foreach (var guid in original.DiagramElement)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.DiagramElement.Add(copy.Value.Iid);
+ }
+
+ foreach (var guid in original.ExcludedDomain)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ this.ExcludedDomain.Add(copy.Value == null ? guid : copy.Value.Iid);
+ }
+
+ foreach (var guid in original.ExcludedPerson)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ this.ExcludedPerson.Add(copy.Value == null ? guid : copy.Value.Iid);
+ }
+
+ foreach (var guid in original.LocalStyle)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.LocalStyle.Add(copy.Value.Iid);
+ }
+
+ this.ModifiedOn = original.ModifiedOn;
+
+ this.Name = original.Name;
+
+ var copySharedStyle = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == original.SharedStyle);
+ this.SharedStyle = copySharedStyle.Value == null ? original.SharedStyle : copySharedStyle.Value.Iid;
+
+ this.ThingPreference = original.ThingPreference;
+ }
+
+ ///
+ /// Resolves the references of a copied based on a original to copy map.
+ ///
+ /// The map containig all instance of copied s with their original.
+ /// True if a modification was done in the process of this method.
+ public override bool ResolveCopyReference(IReadOnlyDictionary originalCopyMap)
+ {
+ var hasChanges = false;
+
+ return hasChanges;
+ }
+ }
+}
diff --git a/CDP4Common/AutoGenDto/DomainOfExpertise.cs b/CDP4Common/AutoGenDto/DomainOfExpertise.cs
index bd24d6719..26184008a 100644
--- a/CDP4Common/AutoGenDto/DomainOfExpertise.cs
+++ b/CDP4Common/AutoGenDto/DomainOfExpertise.cs
@@ -124,6 +124,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/DomainOfExpertiseGroup.cs b/CDP4Common/AutoGenDto/DomainOfExpertiseGroup.cs
index 29ad5121b..4b5ba6f78 100644
--- a/CDP4Common/AutoGenDto/DomainOfExpertiseGroup.cs
+++ b/CDP4Common/AutoGenDto/DomainOfExpertiseGroup.cs
@@ -124,6 +124,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Definition)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/ElementDefinition.cs b/CDP4Common/AutoGenDto/ElementDefinition.cs
index 7546666e4..da2a38df5 100644
--- a/CDP4Common/AutoGenDto/ElementDefinition.cs
+++ b/CDP4Common/AutoGenDto/ElementDefinition.cs
@@ -50,6 +50,7 @@ public sealed partial class ElementDefinition : ElementBase
///
public ElementDefinition()
{
+ this.Behavior = new List();
this.ContainedElement = new List();
this.OrganizationalParticipant = new List();
this.Parameter = new List();
@@ -68,6 +69,7 @@ public ElementDefinition()
///
public ElementDefinition(Guid iid, int rev) : base(iid: iid, rev: rev)
{
+ this.Behavior = new List();
this.ContainedElement = new List();
this.OrganizationalParticipant = new List();
this.Parameter = new List();
@@ -75,6 +77,14 @@ public ElementDefinition(Guid iid, int rev) : base(iid: iid, rev: rev)
this.ReferencedElement = new List();
}
+ ///
+ /// Gets or sets the unique identifiers of the contained Behavior instances.
+ ///
+ [CDPVersion("1.3.0")]
+ [UmlInformation(aggregation: AggregationKind.Composite, isDerived: false, isOrdered: false, isNullable: false, isPersistent: true)]
+ [DataMember]
+ public List Behavior { get; set; }
+
///
/// Gets or sets the unique identifiers of the contained ContainedElement instances.
///
@@ -127,6 +137,7 @@ public override IEnumerable ContainerLists
get
{
var containers = new List(base.ContainerLists);
+ containers.Add(this.Behavior);
containers.Add(this.ContainedElement);
containers.Add(this.Parameter);
containers.Add(this.ParameterGroup);
@@ -169,6 +180,28 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
+ foreach (var guid in original.Behavior)
+ {
+ var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Behavior.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/ElementUsage.cs b/CDP4Common/AutoGenDto/ElementUsage.cs
index b8896157c..2be36633e 100644
--- a/CDP4Common/AutoGenDto/ElementUsage.cs
+++ b/CDP4Common/AutoGenDto/ElementUsage.cs
@@ -153,6 +153,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/EngineeringModelSetup.cs b/CDP4Common/AutoGenDto/EngineeringModelSetup.cs
index 756c7aeeb..c176226d7 100644
--- a/CDP4Common/AutoGenDto/EngineeringModelSetup.cs
+++ b/CDP4Common/AutoGenDto/EngineeringModelSetup.cs
@@ -212,6 +212,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
var copyDefaultOrganizationalParticipant = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == original.DefaultOrganizationalParticipant);
this.DefaultOrganizationalParticipant = copyDefaultOrganizationalParticipant.Value == null ? original.DefaultOrganizationalParticipant : copyDefaultOrganizationalParticipant.Value.Iid;
diff --git a/CDP4Common/AutoGenDto/EnumerationParameterType.cs b/CDP4Common/AutoGenDto/EnumerationParameterType.cs
index ac24a9845..0f6b7cfbf 100644
--- a/CDP4Common/AutoGenDto/EnumerationParameterType.cs
+++ b/CDP4Common/AutoGenDto/EnumerationParameterType.cs
@@ -139,6 +139,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/EnumerationValueDefinition.cs b/CDP4Common/AutoGenDto/EnumerationValueDefinition.cs
index bbb46cdb9..a36d3dfa0 100644
--- a/CDP4Common/AutoGenDto/EnumerationValueDefinition.cs
+++ b/CDP4Common/AutoGenDto/EnumerationValueDefinition.cs
@@ -108,6 +108,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Definition)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/FileType.cs b/CDP4Common/AutoGenDto/FileType.cs
index 50d9a6ce2..7f1ec3cc8 100644
--- a/CDP4Common/AutoGenDto/FileType.cs
+++ b/CDP4Common/AutoGenDto/FileType.cs
@@ -131,6 +131,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/Glossary.cs b/CDP4Common/AutoGenDto/Glossary.cs
index 647538655..64eec165a 100644
--- a/CDP4Common/AutoGenDto/Glossary.cs
+++ b/CDP4Common/AutoGenDto/Glossary.cs
@@ -146,6 +146,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/Goal.cs b/CDP4Common/AutoGenDto/Goal.cs
index b749966a5..d0053e733 100644
--- a/CDP4Common/AutoGenDto/Goal.cs
+++ b/CDP4Common/AutoGenDto/Goal.cs
@@ -118,6 +118,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/IntervalScale.cs b/CDP4Common/AutoGenDto/IntervalScale.cs
index 4fc72250e..1a41db805 100644
--- a/CDP4Common/AutoGenDto/IntervalScale.cs
+++ b/CDP4Common/AutoGenDto/IntervalScale.cs
@@ -108,6 +108,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Definition)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/LinearConversionUnit.cs b/CDP4Common/AutoGenDto/LinearConversionUnit.cs
index 17e90c853..86c6bcc29 100644
--- a/CDP4Common/AutoGenDto/LinearConversionUnit.cs
+++ b/CDP4Common/AutoGenDto/LinearConversionUnit.cs
@@ -108,6 +108,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
this.ConversionFactor = original.ConversionFactor;
foreach (var guid in original.Definition)
diff --git a/CDP4Common/AutoGenDto/LogarithmicScale.cs b/CDP4Common/AutoGenDto/LogarithmicScale.cs
index b0feddcd3..fe30639cb 100644
--- a/CDP4Common/AutoGenDto/LogarithmicScale.cs
+++ b/CDP4Common/AutoGenDto/LogarithmicScale.cs
@@ -158,6 +158,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Definition)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/ModelReferenceDataLibrary.cs b/CDP4Common/AutoGenDto/ModelReferenceDataLibrary.cs
index 3082ed9cb..7483d2975 100644
--- a/CDP4Common/AutoGenDto/ModelReferenceDataLibrary.cs
+++ b/CDP4Common/AutoGenDto/ModelReferenceDataLibrary.cs
@@ -108,6 +108,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var orderedItem in original.BaseQuantityKind)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == Guid.Parse(orderedItem.V.ToString()));
diff --git a/CDP4Common/AutoGenDto/MultiRelationshipRule.cs b/CDP4Common/AutoGenDto/MultiRelationshipRule.cs
index 24ff8ca69..5e43f3c2b 100644
--- a/CDP4Common/AutoGenDto/MultiRelationshipRule.cs
+++ b/CDP4Common/AutoGenDto/MultiRelationshipRule.cs
@@ -138,6 +138,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Definition)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/Option.cs b/CDP4Common/AutoGenDto/Option.cs
index 38deb7b6d..a5e127a56 100644
--- a/CDP4Common/AutoGenDto/Option.cs
+++ b/CDP4Common/AutoGenDto/Option.cs
@@ -139,6 +139,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/OrdinalScale.cs b/CDP4Common/AutoGenDto/OrdinalScale.cs
index e408b6755..341dbab42 100644
--- a/CDP4Common/AutoGenDto/OrdinalScale.cs
+++ b/CDP4Common/AutoGenDto/OrdinalScale.cs
@@ -115,6 +115,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Definition)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/ParameterizedCategoryRule.cs b/CDP4Common/AutoGenDto/ParameterizedCategoryRule.cs
index 8e87eeeb4..0ea370b9b 100644
--- a/CDP4Common/AutoGenDto/ParameterizedCategoryRule.cs
+++ b/CDP4Common/AutoGenDto/ParameterizedCategoryRule.cs
@@ -124,6 +124,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
var copyCategory = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == original.Category);
this.Category = copyCategory.Value == null ? original.Category : copyCategory.Value.Iid;
diff --git a/CDP4Common/AutoGenDto/ParticipantRole.cs b/CDP4Common/AutoGenDto/ParticipantRole.cs
index 01e9eea6d..6608ba31b 100644
--- a/CDP4Common/AutoGenDto/ParticipantRole.cs
+++ b/CDP4Common/AutoGenDto/ParticipantRole.cs
@@ -137,6 +137,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Definition)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/PersonRole.cs b/CDP4Common/AutoGenDto/PersonRole.cs
index ef4ea3c81..9fbe96f6d 100644
--- a/CDP4Common/AutoGenDto/PersonRole.cs
+++ b/CDP4Common/AutoGenDto/PersonRole.cs
@@ -137,6 +137,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Definition)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/PossibleFiniteState.cs b/CDP4Common/AutoGenDto/PossibleFiniteState.cs
index 4465b401a..e7b7c4529 100644
--- a/CDP4Common/AutoGenDto/PossibleFiniteState.cs
+++ b/CDP4Common/AutoGenDto/PossibleFiniteState.cs
@@ -122,6 +122,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Definition)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/PossibleFiniteStateList.cs b/CDP4Common/AutoGenDto/PossibleFiniteStateList.cs
index 3c1c4b15b..d42d722f1 100644
--- a/CDP4Common/AutoGenDto/PossibleFiniteStateList.cs
+++ b/CDP4Common/AutoGenDto/PossibleFiniteStateList.cs
@@ -153,6 +153,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/PrefixedUnit.cs b/CDP4Common/AutoGenDto/PrefixedUnit.cs
index 2e46bec20..e6b232980 100644
--- a/CDP4Common/AutoGenDto/PrefixedUnit.cs
+++ b/CDP4Common/AutoGenDto/PrefixedUnit.cs
@@ -157,6 +157,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Definition)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/RatioScale.cs b/CDP4Common/AutoGenDto/RatioScale.cs
index e742fa730..6861b8fd6 100644
--- a/CDP4Common/AutoGenDto/RatioScale.cs
+++ b/CDP4Common/AutoGenDto/RatioScale.cs
@@ -108,6 +108,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Definition)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/ReferenceSource.cs b/CDP4Common/AutoGenDto/ReferenceSource.cs
index 0cdce09a9..7a3cea17a 100644
--- a/CDP4Common/AutoGenDto/ReferenceSource.cs
+++ b/CDP4Common/AutoGenDto/ReferenceSource.cs
@@ -173,6 +173,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
this.Author = original.Author;
foreach (var guid in original.Category)
diff --git a/CDP4Common/AutoGenDto/ReferencerRule.cs b/CDP4Common/AutoGenDto/ReferencerRule.cs
index 63dafd0fb..69f63135e 100644
--- a/CDP4Common/AutoGenDto/ReferencerRule.cs
+++ b/CDP4Common/AutoGenDto/ReferencerRule.cs
@@ -138,6 +138,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Definition)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/Requirement.cs b/CDP4Common/AutoGenDto/Requirement.cs
index e1a9e8528..87269bbe9 100644
--- a/CDP4Common/AutoGenDto/Requirement.cs
+++ b/CDP4Common/AutoGenDto/Requirement.cs
@@ -153,6 +153,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/RequirementsGroup.cs b/CDP4Common/AutoGenDto/RequirementsGroup.cs
index dc3dc4de1..01f7114d9 100644
--- a/CDP4Common/AutoGenDto/RequirementsGroup.cs
+++ b/CDP4Common/AutoGenDto/RequirementsGroup.cs
@@ -108,6 +108,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/RequirementsSpecification.cs b/CDP4Common/AutoGenDto/RequirementsSpecification.cs
index e480cab35..aead1265d 100644
--- a/CDP4Common/AutoGenDto/RequirementsSpecification.cs
+++ b/CDP4Common/AutoGenDto/RequirementsSpecification.cs
@@ -137,6 +137,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/RuleVerificationList.cs b/CDP4Common/AutoGenDto/RuleVerificationList.cs
index 83385d87c..2cc9ca593 100644
--- a/CDP4Common/AutoGenDto/RuleVerificationList.cs
+++ b/CDP4Common/AutoGenDto/RuleVerificationList.cs
@@ -137,6 +137,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Definition)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/SampledFunctionParameterType.cs b/CDP4Common/AutoGenDto/SampledFunctionParameterType.cs
index 4258d4370..c5d85c28d 100644
--- a/CDP4Common/AutoGenDto/SampledFunctionParameterType.cs
+++ b/CDP4Common/AutoGenDto/SampledFunctionParameterType.cs
@@ -157,6 +157,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/ScaleValueDefinition.cs b/CDP4Common/AutoGenDto/ScaleValueDefinition.cs
index 34166dd01..4796c1154 100644
--- a/CDP4Common/AutoGenDto/ScaleValueDefinition.cs
+++ b/CDP4Common/AutoGenDto/ScaleValueDefinition.cs
@@ -115,6 +115,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Definition)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/SimpleQuantityKind.cs b/CDP4Common/AutoGenDto/SimpleQuantityKind.cs
index eef89e877..9b30fa8a9 100644
--- a/CDP4Common/AutoGenDto/SimpleQuantityKind.cs
+++ b/CDP4Common/AutoGenDto/SimpleQuantityKind.cs
@@ -108,6 +108,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/SimpleUnit.cs b/CDP4Common/AutoGenDto/SimpleUnit.cs
index 5d6c5915c..943dee17c 100644
--- a/CDP4Common/AutoGenDto/SimpleUnit.cs
+++ b/CDP4Common/AutoGenDto/SimpleUnit.cs
@@ -108,6 +108,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Definition)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/SiteReferenceDataLibrary.cs b/CDP4Common/AutoGenDto/SiteReferenceDataLibrary.cs
index 83ad396c0..2a1d2821e 100644
--- a/CDP4Common/AutoGenDto/SiteReferenceDataLibrary.cs
+++ b/CDP4Common/AutoGenDto/SiteReferenceDataLibrary.cs
@@ -115,6 +115,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var orderedItem in original.BaseQuantityKind)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == Guid.Parse(orderedItem.V.ToString()));
diff --git a/CDP4Common/AutoGenDto/SpecializedQuantityKind.cs b/CDP4Common/AutoGenDto/SpecializedQuantityKind.cs
index 5fcd5b3f6..7194872a9 100644
--- a/CDP4Common/AutoGenDto/SpecializedQuantityKind.cs
+++ b/CDP4Common/AutoGenDto/SpecializedQuantityKind.cs
@@ -115,6 +115,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/StakeHolderValueMap.cs b/CDP4Common/AutoGenDto/StakeHolderValueMap.cs
index c374d7c76..766a08ac3 100644
--- a/CDP4Common/AutoGenDto/StakeHolderValueMap.cs
+++ b/CDP4Common/AutoGenDto/StakeHolderValueMap.cs
@@ -176,6 +176,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/Stakeholder.cs b/CDP4Common/AutoGenDto/Stakeholder.cs
index e25b307df..44cf8a11d 100644
--- a/CDP4Common/AutoGenDto/Stakeholder.cs
+++ b/CDP4Common/AutoGenDto/Stakeholder.cs
@@ -127,6 +127,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/StakeholderValue.cs b/CDP4Common/AutoGenDto/StakeholderValue.cs
index 97627278c..185984d2c 100644
--- a/CDP4Common/AutoGenDto/StakeholderValue.cs
+++ b/CDP4Common/AutoGenDto/StakeholderValue.cs
@@ -118,6 +118,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/Term.cs b/CDP4Common/AutoGenDto/Term.cs
index d7c01df22..cd81baf32 100644
--- a/CDP4Common/AutoGenDto/Term.cs
+++ b/CDP4Common/AutoGenDto/Term.cs
@@ -115,6 +115,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Definition)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/TextParameterType.cs b/CDP4Common/AutoGenDto/TextParameterType.cs
index df10b83ce..9fd7255e9 100644
--- a/CDP4Common/AutoGenDto/TextParameterType.cs
+++ b/CDP4Common/AutoGenDto/TextParameterType.cs
@@ -108,6 +108,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/TimeOfDayParameterType.cs b/CDP4Common/AutoGenDto/TimeOfDayParameterType.cs
index f4626bb69..662849f19 100644
--- a/CDP4Common/AutoGenDto/TimeOfDayParameterType.cs
+++ b/CDP4Common/AutoGenDto/TimeOfDayParameterType.cs
@@ -108,6 +108,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenDto/UnitPrefix.cs b/CDP4Common/AutoGenDto/UnitPrefix.cs
index 30fa206d9..0c0125515 100644
--- a/CDP4Common/AutoGenDto/UnitPrefix.cs
+++ b/CDP4Common/AutoGenDto/UnitPrefix.cs
@@ -122,6 +122,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
this.ConversionFactor = original.ConversionFactor;
foreach (var guid in original.Definition)
diff --git a/CDP4Common/AutoGenDto/ValueGroup.cs b/CDP4Common/AutoGenDto/ValueGroup.cs
index c35a61cf9..01c865e30 100644
--- a/CDP4Common/AutoGenDto/ValueGroup.cs
+++ b/CDP4Common/AutoGenDto/ValueGroup.cs
@@ -118,6 +118,17 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary kvp.Key.Iid == guid);
+ if (Equals(copy, default(KeyValuePair)))
+ {
+ throw new InvalidOperationException(string.Format("The copy could not be found for {0}", guid));
+ }
+
+ this.Attachment.Add(copy.Value.Iid);
+ }
+
foreach (var guid in original.Category)
{
var copy = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == guid);
diff --git a/CDP4Common/AutoGenHelpers/ContainerPropertyHelper.cs b/CDP4Common/AutoGenHelpers/ContainerPropertyHelper.cs
index a00ac5ce7..4b8c527f5 100644
--- a/CDP4Common/AutoGenHelpers/ContainerPropertyHelper.cs
+++ b/CDP4Common/AutoGenHelpers/ContainerPropertyHelper.cs
@@ -47,7 +47,12 @@ public static class ContainerPropertyHelper
{ "Alias", new KeyValuePair("DefinedThing", "alias") },
{ "AndExpression", new KeyValuePair("ParametricConstraint", "expression") },
{ "Approval", new KeyValuePair("ModellingAnnotationItem", "approvedBy") },
+ { "ArchitectureDiagram", new KeyValuePair("Iteration", "diagramCanvas") },
+ { "ArchitectureElement", new KeyValuePair("DiagramElementContainer", "diagramElement") },
{ "ArrayParameterType", new KeyValuePair("ReferenceDataLibrary", "parameterType") },
+ { "Attachment", new KeyValuePair("DefinedThing", "attachment") },
+ { "Behavior", new KeyValuePair("ElementDefinition", "behavior") },
+ { "BehavioralParameter", new KeyValuePair("Behavior", "behavioralParameter") },
{ "BinaryNote", new KeyValuePair("Page", "note") },
{ "BinaryRelationship", new KeyValuePair("Iteration", "relationship") },
{ "BinaryRelationshipRule", new KeyValuePair("ReferenceDataLibrary", "rule") },
@@ -78,7 +83,9 @@ public static class ContainerPropertyHelper
{ "DiagramCanvas", new KeyValuePair("Iteration", "diagramCanvas") },
{ "DiagramEdge", new KeyValuePair("DiagramElementContainer", "diagramElement") },
{ "DiagramElementThing", new KeyValuePair("DiagramElementContainer", "diagramElement") },
+ { "DiagramFrame", new KeyValuePair("DiagramElementContainer", "diagramElement") },
{ "DiagramObject", new KeyValuePair("DiagramElementContainer", "diagramElement") },
+ { "DiagramPort", new KeyValuePair("DiagramElementContainer", "diagramElement") },
{ "DiagramShape", new KeyValuePair("DiagramElementContainer", "diagramElement") },
{ "DomainFileStore", new KeyValuePair("Iteration", "domainFileStore") },
{ "DomainOfExpertise", new KeyValuePair("SiteDirectory", "domain") },
diff --git a/CDP4Common/AutoGenHelpers/DefaultPermissionProvider.cs b/CDP4Common/AutoGenHelpers/DefaultPermissionProvider.cs
index 068296aff..18284499c 100644
--- a/CDP4Common/AutoGenHelpers/DefaultPermissionProvider.cs
+++ b/CDP4Common/AutoGenHelpers/DefaultPermissionProvider.cs
@@ -51,7 +51,12 @@ public class DefaultPermissionProvider : IDefaultPermissionProvider
{ ClassKind.Alias, ParticipantAccessRightKind.SAME_AS_CONTAINER },
{ ClassKind.AndExpression, ParticipantAccessRightKind.SAME_AS_SUPERCLASS },
{ ClassKind.Approval, ParticipantAccessRightKind.NONE },
+ { ClassKind.ArchitectureDiagram, ParticipantAccessRightKind.NONE },
+ { ClassKind.ArchitectureElement, ParticipantAccessRightKind.SAME_AS_SUPERCLASS },
{ ClassKind.ArrayParameterType, ParticipantAccessRightKind.SAME_AS_SUPERCLASS },
+ { ClassKind.Attachment, ParticipantAccessRightKind.SAME_AS_CONTAINER },
+ { ClassKind.Behavior, ParticipantAccessRightKind.SAME_AS_CONTAINER },
+ { ClassKind.BehavioralParameter, ParticipantAccessRightKind.SAME_AS_CONTAINER },
{ ClassKind.BinaryNote, ParticipantAccessRightKind.SAME_AS_SUPERCLASS },
{ ClassKind.BinaryRelationship, ParticipantAccessRightKind.SAME_AS_SUPERCLASS },
{ ClassKind.BinaryRelationshipRule, ParticipantAccessRightKind.SAME_AS_SUPERCLASS },
@@ -84,8 +89,10 @@ public class DefaultPermissionProvider : IDefaultPermissionProvider
{ ClassKind.DiagramEdge, ParticipantAccessRightKind.SAME_AS_SUPERCLASS },
{ ClassKind.DiagramElementContainer, ParticipantAccessRightKind.NOT_APPLICABLE },
{ ClassKind.DiagramElementThing, ParticipantAccessRightKind.SAME_AS_CONTAINER },
+ { ClassKind.DiagramFrame, ParticipantAccessRightKind.SAME_AS_SUPERCLASS },
{ ClassKind.DiagrammingStyle, ParticipantAccessRightKind.NOT_APPLICABLE },
{ ClassKind.DiagramObject, ParticipantAccessRightKind.SAME_AS_SUPERCLASS },
+ { ClassKind.DiagramPort, ParticipantAccessRightKind.SAME_AS_SUPERCLASS },
{ ClassKind.DiagramShape, ParticipantAccessRightKind.SAME_AS_SUPERCLASS },
{ ClassKind.DiagramThingBase, ParticipantAccessRightKind.NOT_APPLICABLE },
{ ClassKind.DiscussionItem, ParticipantAccessRightKind.NOT_APPLICABLE },
@@ -239,7 +246,12 @@ public class DefaultPermissionProvider : IDefaultPermissionProvider
{ "Alias", ParticipantAccessRightKind.SAME_AS_CONTAINER },
{ "AndExpression", ParticipantAccessRightKind.SAME_AS_SUPERCLASS },
{ "Approval", ParticipantAccessRightKind.NONE },
+ { "ArchitectureDiagram", ParticipantAccessRightKind.NONE },
+ { "ArchitectureElement", ParticipantAccessRightKind.SAME_AS_SUPERCLASS },
{ "ArrayParameterType", ParticipantAccessRightKind.SAME_AS_SUPERCLASS },
+ { "Attachment", ParticipantAccessRightKind.SAME_AS_CONTAINER },
+ { "Behavior", ParticipantAccessRightKind.SAME_AS_CONTAINER },
+ { "BehavioralParameter", ParticipantAccessRightKind.SAME_AS_CONTAINER },
{ "BinaryNote", ParticipantAccessRightKind.SAME_AS_SUPERCLASS },
{ "BinaryRelationship", ParticipantAccessRightKind.SAME_AS_SUPERCLASS },
{ "BinaryRelationshipRule", ParticipantAccessRightKind.SAME_AS_SUPERCLASS },
@@ -272,8 +284,10 @@ public class DefaultPermissionProvider : IDefaultPermissionProvider
{ "DiagramEdge", ParticipantAccessRightKind.SAME_AS_SUPERCLASS },
{ "DiagramElementContainer", ParticipantAccessRightKind.NOT_APPLICABLE },
{ "DiagramElementThing", ParticipantAccessRightKind.SAME_AS_CONTAINER },
+ { "DiagramFrame", ParticipantAccessRightKind.SAME_AS_SUPERCLASS },
{ "DiagrammingStyle", ParticipantAccessRightKind.NOT_APPLICABLE },
{ "DiagramObject", ParticipantAccessRightKind.SAME_AS_SUPERCLASS },
+ { "DiagramPort", ParticipantAccessRightKind.SAME_AS_SUPERCLASS },
{ "DiagramShape", ParticipantAccessRightKind.SAME_AS_SUPERCLASS },
{ "DiagramThingBase", ParticipantAccessRightKind.NOT_APPLICABLE },
{ "DiscussionItem", ParticipantAccessRightKind.NOT_APPLICABLE },
@@ -427,7 +441,12 @@ public class DefaultPermissionProvider : IDefaultPermissionProvider
{ ClassKind.Alias, PersonAccessRightKind.SAME_AS_CONTAINER },
{ ClassKind.AndExpression, PersonAccessRightKind.NOT_APPLICABLE },
{ ClassKind.Approval, PersonAccessRightKind.NOT_APPLICABLE },
+ { ClassKind.ArchitectureDiagram, PersonAccessRightKind.NOT_APPLICABLE },
+ { ClassKind.ArchitectureElement, PersonAccessRightKind.NOT_APPLICABLE },
{ ClassKind.ArrayParameterType, PersonAccessRightKind.SAME_AS_SUPERCLASS },
+ { ClassKind.Attachment, PersonAccessRightKind.SAME_AS_CONTAINER },
+ { ClassKind.Behavior, PersonAccessRightKind.NOT_APPLICABLE },
+ { ClassKind.BehavioralParameter, PersonAccessRightKind.NOT_APPLICABLE },
{ ClassKind.BinaryNote, PersonAccessRightKind.NOT_APPLICABLE },
{ ClassKind.BinaryRelationship, PersonAccessRightKind.NOT_APPLICABLE },
{ ClassKind.BinaryRelationshipRule, PersonAccessRightKind.SAME_AS_SUPERCLASS },
@@ -460,8 +479,10 @@ public class DefaultPermissionProvider : IDefaultPermissionProvider
{ ClassKind.DiagramEdge, PersonAccessRightKind.NOT_APPLICABLE },
{ ClassKind.DiagramElementContainer, PersonAccessRightKind.NOT_APPLICABLE },
{ ClassKind.DiagramElementThing, PersonAccessRightKind.NOT_APPLICABLE },
+ { ClassKind.DiagramFrame, PersonAccessRightKind.NOT_APPLICABLE },
{ ClassKind.DiagrammingStyle, PersonAccessRightKind.NOT_APPLICABLE },
{ ClassKind.DiagramObject, PersonAccessRightKind.NOT_APPLICABLE },
+ { ClassKind.DiagramPort, PersonAccessRightKind.NOT_APPLICABLE },
{ ClassKind.DiagramShape, PersonAccessRightKind.NOT_APPLICABLE },
{ ClassKind.DiagramThingBase, PersonAccessRightKind.NOT_APPLICABLE },
{ ClassKind.DiscussionItem, PersonAccessRightKind.NOT_APPLICABLE },
@@ -615,7 +636,12 @@ public class DefaultPermissionProvider : IDefaultPermissionProvider
{ "Alias", PersonAccessRightKind.SAME_AS_CONTAINER },
{ "AndExpression", PersonAccessRightKind.NOT_APPLICABLE },
{ "Approval", PersonAccessRightKind.NOT_APPLICABLE },
+ { "ArchitectureDiagram", PersonAccessRightKind.NOT_APPLICABLE },
+ { "ArchitectureElement", PersonAccessRightKind.NOT_APPLICABLE },
{ "ArrayParameterType", PersonAccessRightKind.SAME_AS_SUPERCLASS },
+ { "Attachment", PersonAccessRightKind.SAME_AS_CONTAINER },
+ { "Behavior", PersonAccessRightKind.NOT_APPLICABLE },
+ { "BehavioralParameter", PersonAccessRightKind.NOT_APPLICABLE },
{ "BinaryNote", PersonAccessRightKind.NOT_APPLICABLE },
{ "BinaryRelationship", PersonAccessRightKind.NOT_APPLICABLE },
{ "BinaryRelationshipRule", PersonAccessRightKind.SAME_AS_SUPERCLASS },
@@ -648,8 +674,10 @@ public class DefaultPermissionProvider : IDefaultPermissionProvider
{ "DiagramEdge", PersonAccessRightKind.NOT_APPLICABLE },
{ "DiagramElementContainer", PersonAccessRightKind.NOT_APPLICABLE },
{ "DiagramElementThing", PersonAccessRightKind.NOT_APPLICABLE },
+ { "DiagramFrame", PersonAccessRightKind.NOT_APPLICABLE },
{ "DiagrammingStyle", PersonAccessRightKind.NOT_APPLICABLE },
{ "DiagramObject", PersonAccessRightKind.NOT_APPLICABLE },
+ { "DiagramPort", PersonAccessRightKind.NOT_APPLICABLE },
{ "DiagramShape", PersonAccessRightKind.NOT_APPLICABLE },
{ "DiagramThingBase", PersonAccessRightKind.NOT_APPLICABLE },
{ "DiscussionItem", PersonAccessRightKind.NOT_APPLICABLE },
diff --git a/CDP4Common/AutoGenMetaInfo/AliasMetaInfo.cs b/CDP4Common/AutoGenMetaInfo/AliasMetaInfo.cs
index 93f3f6d29..16a1aaadd 100644
--- a/CDP4Common/AutoGenMetaInfo/AliasMetaInfo.cs
+++ b/CDP4Common/AutoGenMetaInfo/AliasMetaInfo.cs
@@ -280,6 +280,7 @@ public IEnumerable Properties
private readonly Dictionary possibleContainerProperties = new Dictionary
{
{ "ArrayParameterType", new PropertyMetaInfo("Alias", "Alias", PropertyKind.List, AggregationKind.Composite, false, false, true, 0, "*", true) },
+ { "Behavior", new PropertyMetaInfo("Alias", "Alias", PropertyKind.List, AggregationKind.Composite, false, false, true, 0, "*", true) },
{ "BinaryRelationshipRule", new PropertyMetaInfo("Alias", "Alias", PropertyKind.List, AggregationKind.Composite, false, false, true, 0, "*", true) },
{ "BooleanParameterType", new PropertyMetaInfo("Alias", "Alias", PropertyKind.List, AggregationKind.Composite, false, false, true, 0, "*", true) },
{ "Category", new PropertyMetaInfo("Alias", "Alias", PropertyKind.List, AggregationKind.Composite, false, false, true, 0, "*", true) },
diff --git a/CDP4Common/AutoGenMetaInfo/ArchitectureDiagramMetaInfo.cs b/CDP4Common/AutoGenMetaInfo/ArchitectureDiagramMetaInfo.cs
new file mode 100644
index 000000000..51a4c4a30
--- /dev/null
+++ b/CDP4Common/AutoGenMetaInfo/ArchitectureDiagramMetaInfo.cs
@@ -0,0 +1,544 @@
+// --------------------------------------------------------------------------------------------------------------------
+//
+// Copyright (c) 2015-2021 RHEA System S.A.
+//
+// Author: Sam Gerené, Merlin Bieze, Alex Vorobiev, Naron Phou, Alexander van Delft, Nathanael Smiechowski
+//
+// This file is part of COMET-SDK Community Edition
+// This is an auto-generated class. Any manual changes to this file will be overwritten!
+//
+// The COMET-SDK Community Edition is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 3 of the License, or (at your option) any later version.
+//
+// The COMET-SDK Community Edition is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program; if not, write to the Free Software Foundation,
+// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace CDP4Common.MetaInfo
+{
+ using System;
+ using System.Collections.Generic;
+ using System.Linq;
+ using CDP4Common.CommonData;
+ using CDP4Common.DiagramData;
+ using CDP4Common.EngineeringModelData;
+ using CDP4Common.Exceptions;
+ using CDP4Common.Helpers;
+ using CDP4Common.ReportingData;
+ using CDP4Common.SiteDirectoryData;
+ using CDP4Common.Types;
+ using CDP4Common.Validation;
+
+ ///
+ /// This a class that holds meta info for .
+ ///
+ public partial class ArchitectureDiagramMetaInfo : IArchitectureDiagramMetaInfo
+ {
+ ///
+ /// The containment property value map.
+ ///
+ private readonly Dictionary>> containmentPropertyValueMap = new Dictionary>>
+ {
+ { "Bounds", architectureDiagram => architectureDiagram.Bounds },
+ { "DiagramElement", architectureDiagram => architectureDiagram.DiagramElement },
+ };
+
+ ///
+ /// The ordered containment property value map.
+ ///
+ private readonly Dictionary>> orderedContainmentPropertyValueMap = new Dictionary>>();
+
+ ///
+ /// The validation rules that should pass for an instance of .
+ ///
+ private readonly Dictionary> validationRules = new Dictionary>
+ {
+ { "Bounds", new DtoValidationHelper(item => item.Bounds != null, "The 'Bounds' property of a 'ArchitectureDiagram' is mandatory and cannot be null.") },
+ { "Description", new DtoValidationHelper(item => !string.IsNullOrWhiteSpace(item.Description), "The 'Description' property of a 'ArchitectureDiagram' is mandatory and cannot be empty or null.") },
+ { "DiagramElement", new DtoValidationHelper(item => item.DiagramElement != null, "The 'DiagramElement' property of a 'ArchitectureDiagram' is mandatory and cannot be null.") },
+ { "ExcludedDomain", new DtoValidationHelper(item => item.ExcludedDomain != null, "The 'ExcludedDomain' property of a 'ArchitectureDiagram' is mandatory and cannot be null.") },
+ { "ExcludedPerson", new DtoValidationHelper(item => item.ExcludedPerson != null, "The 'ExcludedPerson' property of a 'ArchitectureDiagram' is mandatory and cannot be null.") },
+ { "Name", new DtoValidationHelper(item => !string.IsNullOrWhiteSpace(item.Name), "The 'Name' property of a 'ArchitectureDiagram' is mandatory and cannot be empty or null.") },
+ };
+
+ ///
+ /// Validates the supplied by running the business validation rules as per its meta info definition class.
+ ///
+ ///
+ /// The for which to run the validation rules.
+ ///
+ ///
+ /// If any validation rule failed.
+ ///
+ public void Validate(CDP4Common.DTO.Thing architectureDiagram)
+ {
+ this.Validate(architectureDiagram, x => true);
+ }
+
+ ///
+ /// Validates the supplied by running the business validation rules as per its meta info definition class.
+ ///
+ ///
+ /// The for which to run the validation rules.
+ ///
+ ///
+ /// The validate Property.
+ ///
+ ///
+ /// If any validation rule failed.
+ ///
+ public void Validate(CDP4Common.DTO.Thing architectureDiagram, Func validateProperty)
+ {
+ foreach (var applicableRule in this.validationRules.Where(x => validateProperty(x.Key)))
+ {
+ applicableRule.Value.Validate((CDP4Common.DTO.ArchitectureDiagram)architectureDiagram);
+ }
+ }
+
+ ///
+ /// Validates the supplied by running the business validation rules as per its meta info definition class.
+ ///
+ ///
+ /// The for which to run the validation rules.
+ ///
+ ///
+ /// True if all validation rules have passed or if none are defined.
+ ///
+ public bool TryValidate(CDP4Common.DTO.Thing architectureDiagram)
+ {
+ return this.TryValidate(architectureDiagram, x => true);
+ }
+
+ ///
+ /// Validates the supplied by running the business validation rules as per its meta info definition class.
+ ///
+ ///
+ /// The for which to run the validation rules.
+ ///
+ ///
+ /// The validate Property.
+ ///
+ ///
+ /// True if all validation rules have passed or if none are defined.
+ ///
+ public bool TryValidate(CDP4Common.DTO.Thing architectureDiagram, Func validateProperty)
+ {
+ var applicableValidationRules = this.validationRules.Where(x => validateProperty(x.Key)).Select(x => x.Value);
+
+ return applicableValidationRules.All(applicableRule => applicableRule.TryValidate((CDP4Common.DTO.ArchitectureDiagram)architectureDiagram));
+ }
+
+ ///
+ /// Returns the containment property value for the supplied .
+ ///
+ ///
+ /// The for which to return the containment property value.
+ ///
+ ///
+ /// Name of the containment property for which to return the value.
+ ///
+ ///
+ /// A collection of containment .
+ ///
+ ///
+ /// If the property name is not supported for the .
+ ///
+ public IEnumerable GetContainmentIds(CDP4Common.DTO.Thing architectureDiagram, string propertyName)
+ {
+ if (!this.containmentPropertyValueMap.ContainsKey(propertyName))
+ {
+ throw new ArgumentException(string.Format("'{0}' is not a valid containment property of 'ArchitectureDiagram'", propertyName));
+ }
+
+ return this.containmentPropertyValueMap[propertyName]((CDP4Common.DTO.ArchitectureDiagram)architectureDiagram);
+ }
+
+ ///
+ /// Returns the ordered containment property value for the supplied .
+ ///
+ ///
+ /// The for which to return the containment property value.
+ ///
+ ///
+ /// Name of the containment property for which to return the value.
+ ///
+ ///
+ /// A collection of ordered containment .
+ ///
+ ///
+ /// If the property name is not supported for the .
+ ///
+ public IEnumerable GetOrderedContainmentIds(CDP4Common.DTO.Thing architectureDiagram, string propertyName)
+ {
+ if (!this.orderedContainmentPropertyValueMap.ContainsKey(propertyName))
+ {
+ throw new ArgumentException(string.Format("'{0}' is not a valid containment property of 'ArchitectureDiagram'", propertyName));
+ }
+
+ return this.orderedContainmentPropertyValueMap[propertyName]((CDP4Common.DTO.ArchitectureDiagram)architectureDiagram);
+ }
+
+ ///
+ /// The CDP version property map.
+ ///
+ private readonly Dictionary cdpVersionedProperties = new Dictionary
+ {
+ { "ExcludedDomain", "1.1.0" },
+ { "ExcludedPerson", "1.1.0" },
+ { "ModifiedOn", "1.1.0" },
+ { "ThingPreference", "1.2.0" },
+ };
+
+ ///
+ /// The containment property to type name map.
+ ///
+ private readonly Dictionary containmentTypeMap = new Dictionary
+ {
+ { "Bounds", new PropertyMetaInfo("Bounds", "Bounds", PropertyKind.List, AggregationKind.Composite, false, false, true, 0, "1", true) },
+ { "DiagramElement", new PropertyMetaInfo("DiagramElement", "DiagramElementThing", PropertyKind.List, AggregationKind.Composite, false, false, true, 0, "*", true) },
+ };
+
+ ///
+ /// Gets the for the class
+ ///
+ public IEnumerable Properties
+ {
+ get
+ {
+ foreach (var propertyMetaInfo in this.containmentTypeMap)
+ {
+ yield return propertyMetaInfo.Value;
+ }
+
+ foreach (var propertyMetaInfo in this.propertyTypeMap)
+ {
+ yield return propertyMetaInfo.Value;
+ }
+ }
+ }
+
+ ///
+ /// The property value map.
+ ///
+ private readonly Dictionary> propertyValueMap = new Dictionary>
+ {
+ { "Bounds", thing => thing.Bounds },
+ { "ClassKind", thing => thing.ClassKind },
+ { "CreatedOn", thing => thing.CreatedOn },
+ { "Description", thing => thing.Description },
+ { "DiagramElement", thing => thing.DiagramElement },
+ { "ExcludedDomain", thing => thing.ExcludedDomain },
+ { "ExcludedPerson", thing => thing.ExcludedPerson },
+ { "Iid", thing => thing.Iid },
+ { "ModifiedOn", thing => thing.ModifiedOn },
+ { "Name", thing => thing.Name },
+ { "Owner", thing => thing.Owner },
+ { "PublicationState", thing => thing.PublicationState },
+ { "RevisionNumber", thing => thing.RevisionNumber },
+ { "ThingPreference", thing => thing.ThingPreference },
+ { "TopArchitectureElement", thing => thing.TopArchitectureElement },
+ };
+
+ ///
+ /// The property type map.
+ ///
+ ///
+ /// Contained properties are excluded for this map
+ ///
+ private readonly Dictionary propertyTypeMap = new Dictionary
+ {
+ { "ClassKind", new PropertyMetaInfo("ClassKind", "CDP4Common.CommonData.ClassKind", PropertyKind.Scalar, AggregationKind.None, false, false, true, 1, "1", true) },
+ { "CreatedOn", new PropertyMetaInfo("CreatedOn", "DateTime", PropertyKind.Scalar, AggregationKind.None, false, false, true, 1, "1", true) },
+ { "Description", new PropertyMetaInfo("Description", "string", PropertyKind.Scalar, AggregationKind.None, false, false, true, 1, "1", true) },
+ { "ExcludedDomain", new PropertyMetaInfo("ExcludedDomain", "DomainOfExpertise", PropertyKind.List, AggregationKind.None, false, false, true, 0, "*", true) },
+ { "ExcludedPerson", new PropertyMetaInfo("ExcludedPerson", "Person", PropertyKind.List, AggregationKind.None, false, false, true, 0, "*", true) },
+ { "Iid", new PropertyMetaInfo("Iid", "Guid", PropertyKind.Scalar, AggregationKind.None, false, false, true, 1, "1", true) },
+ { "ModifiedOn", new PropertyMetaInfo("ModifiedOn", "DateTime", PropertyKind.Scalar, AggregationKind.None, false, false, true, 1, "1", true) },
+ { "Name", new PropertyMetaInfo("Name", "string", PropertyKind.Scalar, AggregationKind.None, false, false, true, 1, "1", true) },
+ { "Owner", new PropertyMetaInfo("Owner", "DomainOfExpertise", PropertyKind.Scalar, AggregationKind.None, false, false, true, 1, "1", true) },
+ { "PublicationState", new PropertyMetaInfo("PublicationState", "CDP4Common.DiagramData.PublicationState", PropertyKind.Scalar, AggregationKind.None, false, false, true, 1, "1", true) },
+ { "RevisionNumber", new PropertyMetaInfo("RevisionNumber", "int", PropertyKind.Scalar, AggregationKind.None, false, false, true, 1, "1", true) },
+ { "ThingPreference", new PropertyMetaInfo("ThingPreference", "string", PropertyKind.Scalar, AggregationKind.None, false, false, true, 0, "1", true) },
+ { "TopArchitectureElement", new PropertyMetaInfo("TopArchitectureElement", "ArchitectureElement", PropertyKind.Scalar, AggregationKind.None, false, false, true, 0, "1", true) },
+ };
+
+ ///
+ /// The collection property value deserialization map.
+ ///
+ private readonly Dictionary> collectionPropertyValueDeserializationMap = new Dictionary>
+ {
+ { "Bounds", (value) => (Guid)value },
+ { "DiagramElement", (value) => (Guid)value },
+ { "ExcludedDomain", (value) => (Guid)value },
+ { "ExcludedPerson", (value) => (Guid)value },
+ };
+
+ ///
+ /// The property value assignment map.
+ ///
+ private readonly Dictionary> propertyValueAssignmentMap = new Dictionary>
+ {
+ { "CreatedOn", (architectureDiagram, value) => architectureDiagram.CreatedOn = (DateTime)value },
+ { "Description", (architectureDiagram, value) => architectureDiagram.Description = value.ToString() },
+ { "Iid", (architectureDiagram, value) => architectureDiagram.Iid = (Guid)value },
+ { "ModifiedOn", (architectureDiagram, value) => architectureDiagram.ModifiedOn = (DateTime)value },
+ { "Name", (architectureDiagram, value) => architectureDiagram.Name = value.ToString() },
+ { "Owner", (architectureDiagram, value) => architectureDiagram.Owner = (Guid)value },
+ { "PublicationState", (architectureDiagram, value) => architectureDiagram.PublicationState = (PublicationState)value },
+ { "ThingPreference", (architectureDiagram, value) => architectureDiagram.ThingPreference = value == null ? (string)null : value.ToString() },
+ { "TopArchitectureElement", (architectureDiagram, value) => architectureDiagram.TopArchitectureElement = value == null ? (Guid?)null : (Guid)value },
+ };
+
+ ///
+ /// The possible container property map.
+ ///
+ private readonly Dictionary possibleContainerProperties = new Dictionary
+ {
+ { "Iteration", new PropertyMetaInfo("DiagramCanvas", "DiagramCanvas", PropertyKind.List, AggregationKind.Composite, false, false, true, 0, "*", true) },
+ };
+
+ ///
+ /// Gets a value indicating whether this type should be deprecated upon Delete.
+ ///
+ public bool IsDeprecatableThing
+ {
+ get
+ {
+ return false;
+ }
+ }
+
+ ///
+ /// Gets a value indicating whether this type is a top container.
+ ///
+ public bool IsTopContainer
+ {
+ get
+ {
+ return false;
+ }
+ }
+
+ ///
+ /// Gets the base type name of this class.
+ ///
+ public string BaseType
+ {
+ get { return "DiagramCanvas"; }
+ }
+
+ ///
+ /// Gets the CDP class version.
+ ///
+ public string ClassVersion
+ {
+ get { return "1.3.0"; }
+ }
+
+ ///
+ /// Get the data model version of the supplied property.
+ ///
+ ///
+ /// Name of the property for which to check if it is scalar.
+ ///
+ ///
+ /// The version number as specified property otherwise the default data model version.
+ ///
+ public string GetPropertyVersion(string propertyName)
+ {
+ return this.cdpVersionedProperties.ContainsKey(propertyName) ? this.cdpVersionedProperties[propertyName] : null;
+ }
+
+ ///
+ /// Returns the containment property type from the supplied property name.
+ ///
+ ///
+ /// The containment property name.
+ ///
+ ///
+ /// The type name of the containment.
+ ///
+ ///
+ /// If the property name is not supported for the .
+ ///
+ public PropertyMetaInfo GetContainmentType(string propertyName)
+ {
+ if (!this.containmentTypeMap.ContainsKey(propertyName))
+ {
+ throw new ArgumentException(string.Format("'{0}' is not a valid containment property of 'ArchitectureDiagram'", propertyName));
+ }
+
+ return this.containmentTypeMap[propertyName];
+ }
+
+ ///
+ /// Returns the property type from the supplied property name.
+ ///
+ ///
+ /// The property name.
+ ///
+ ///
+ /// The or null if it does not exist.
+ ///
+ public PropertyMetaInfo GetPropertyMetaInfo(string propertyName)
+ {
+ if (this.containmentTypeMap.ContainsKey(propertyName))
+ {
+ return this.containmentTypeMap[propertyName];
+ }
+
+ if (this.propertyTypeMap.ContainsKey(propertyName))
+ {
+ return this.propertyTypeMap[propertyName];
+ }
+
+ return null;
+ }
+
+ ///
+ /// Returns the container property for the supplied type name is a possible container for .
+ ///
+ ///
+ /// Name of the type for which to check if it is a container of .
+ ///
+ ///
+ /// Supplied container property info instance that will be set if the supplied type name is a container of .
+ ///
+ ///
+ /// True if the supplied typeName is a container for and sets the container property name.
+ ///
+ public bool TryGetContainerProperty(string typeName, out PropertyMetaInfo containerProperty)
+ {
+ var isContainer = this.possibleContainerProperties.ContainsKey(typeName);
+ containerProperty = isContainer ? this.possibleContainerProperties[typeName] : null;
+
+ return isContainer;
+ }
+
+ ///
+ /// Check if the supplied property name for is scalar.
+ ///
+ ///
+ /// Name of the property for which to check if it is scalar.
+ ///
+ ///
+ /// True if the supplied property name is a scalar property.
+ ///
+ public bool IsScalar(string propertyName)
+ {
+ if (this.propertyTypeMap.ContainsKey(propertyName))
+ {
+ var propertyInfo = this.propertyTypeMap[propertyName];
+ return propertyInfo.PropertyKind == PropertyKind.Scalar || propertyInfo.PropertyKind == PropertyKind.ValueArray;
+ }
+
+ return false;
+ }
+
+ ///
+ /// Apply the value update to the supplied property name of the updatable instance.
+ ///
+ ///
+ /// The instance to which to apply the property value update.
+ ///
+ ///
+ /// The property name of the to which to apply the value update.
+ ///
+ ///
+ /// The updated value to apply.
+ ///
+ ///
+ /// True if the value update was successfully applied.
+ ///
+ public bool ApplyPropertyUpdate(CDP4Common.DTO.Thing updatableThing, string propertyName, object value)
+ {
+ if (updatableThing == null || !this.IsScalar(propertyName))
+ {
+ return false;
+ }
+
+ this.propertyValueAssignmentMap[propertyName]((CDP4Common.DTO.ArchitectureDiagram)updatableThing, value);
+
+ return true;
+ }
+
+ ///
+ /// Returns a deserialized object from the supplied value string for the property name.
+ ///
+ ///
+ /// The property name.
+ ///
+ ///
+ /// The value to deserialize from its current string form.
+ ///
+ ///
+ /// A deserialized object from the supplied value.
+ ///
+ ///
+ /// If the property name is not supported for the .
+ ///
+ public object DeserializeCollectionValue(string propertyName, object value)
+ {
+ if (!this.collectionPropertyValueDeserializationMap.ContainsKey(propertyName))
+ {
+ throw new ArgumentException(string.Format("'{0}' is not a valid collection property of 'ArchitectureDiagram'", propertyName));
+ }
+
+ return this.collectionPropertyValueDeserializationMap[propertyName](value);
+ }
+
+ ///
+ /// Returns the value of the property of a Thing
+ ///
+ ///
+ /// The property name.
+ ///
+ ///
+ /// The Thing object
+ ///
+ ///
+ /// The value of the property of a Thing
+ ///
+ ///
+ /// If the property name is not supported for the .
+ ///
+ public object GetValue(string propertyName, CDP4Common.DTO.Thing thing)
+ {
+ if (!this.propertyValueMap.ContainsKey(propertyName))
+ {
+ throw new ArgumentException(string.Format("'{0}' is not a valid collection property of 'ArchitectureDiagram'", propertyName));
+ }
+
+ return this.propertyValueMap[propertyName]((CDP4Common.DTO.ArchitectureDiagram)thing);
+ }
+
+ ///
+ /// Gets the collection of property names for a
+ ///
+ public IEnumerable GetPropertyNameCollection()
+ {
+ var collection = new List(this.propertyTypeMap.Keys);
+ collection.AddRange(this.containmentTypeMap.Keys);
+ return collection;
+ }
+
+ ///
+ /// Instantiates a
+ ///
+ ///
+ /// The instantiated
+ ///
+ public CDP4Common.DTO.Thing InstantiateDto(Guid guid, int revisionNumber)
+ {
+ return new CDP4Common.DTO.ArchitectureDiagram(guid, revisionNumber);
+ }
+ }
+}
diff --git a/CDP4Common/AutoGenMetaInfo/ArchitectureElementMetaInfo.cs b/CDP4Common/AutoGenMetaInfo/ArchitectureElementMetaInfo.cs
new file mode 100644
index 000000000..105878968
--- /dev/null
+++ b/CDP4Common/AutoGenMetaInfo/ArchitectureElementMetaInfo.cs
@@ -0,0 +1,552 @@
+// --------------------------------------------------------------------------------------------------------------------
+//
+// Copyright (c) 2015-2021 RHEA System S.A.
+//
+// Author: Sam Gerené, Merlin Bieze, Alex Vorobiev, Naron Phou, Alexander van Delft, Nathanael Smiechowski
+//
+// This file is part of COMET-SDK Community Edition
+// This is an auto-generated class. Any manual changes to this file will be overwritten!
+//
+// The COMET-SDK Community Edition is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 3 of the License, or (at your option) any later version.
+//
+// The COMET-SDK Community Edition is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program; if not, write to the Free Software Foundation,
+// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace CDP4Common.MetaInfo
+{
+ using System;
+ using System.Collections.Generic;
+ using System.Linq;
+ using CDP4Common.CommonData;
+ using CDP4Common.DiagramData;
+ using CDP4Common.EngineeringModelData;
+ using CDP4Common.Exceptions;
+ using CDP4Common.Helpers;
+ using CDP4Common.ReportingData;
+ using CDP4Common.SiteDirectoryData;
+ using CDP4Common.Types;
+ using CDP4Common.Validation;
+
+ ///
+ /// This a class that holds meta info for .
+ ///
+ public partial class ArchitectureElementMetaInfo : IArchitectureElementMetaInfo
+ {
+ ///
+ /// The containment property value map.
+ ///
+ private readonly Dictionary>> containmentPropertyValueMap = new Dictionary>>
+ {
+ { "Bounds", architectureElement => architectureElement.Bounds },
+ { "DiagramElement", architectureElement => architectureElement.DiagramElement },
+ { "LocalStyle", architectureElement => architectureElement.LocalStyle },
+ };
+
+ ///
+ /// The ordered containment property value map.
+ ///
+ private readonly Dictionary>> orderedContainmentPropertyValueMap = new Dictionary>>();
+
+ ///
+ /// The validation rules that should pass for an instance of .
+ ///
+ private readonly Dictionary> validationRules = new Dictionary>
+ {
+ { "Bounds", new DtoValidationHelper(item => item.Bounds != null, "The 'Bounds' property of a 'ArchitectureElement' is mandatory and cannot be null.") },
+ { "DiagramElement", new DtoValidationHelper(item => item.DiagramElement != null, "The 'DiagramElement' property of a 'ArchitectureElement' is mandatory and cannot be null.") },
+ { "Documentation", new DtoValidationHelper(item => !string.IsNullOrWhiteSpace(item.Documentation), "The 'Documentation' property of a 'ArchitectureElement' is mandatory and cannot be empty or null.") },
+ { "ExcludedDomain", new DtoValidationHelper(item => item.ExcludedDomain != null, "The 'ExcludedDomain' property of a 'ArchitectureElement' is mandatory and cannot be null.") },
+ { "ExcludedPerson", new DtoValidationHelper(item => item.ExcludedPerson != null, "The 'ExcludedPerson' property of a 'ArchitectureElement' is mandatory and cannot be null.") },
+ { "LocalStyle", new DtoValidationHelper(item => item.LocalStyle != null, "The 'LocalStyle' property of a 'ArchitectureElement' is mandatory and cannot be null.") },
+ { "Name", new DtoValidationHelper(item => !string.IsNullOrWhiteSpace(item.Name), "The 'Name' property of a 'ArchitectureElement' is mandatory and cannot be empty or null.") },
+ };
+
+ ///
+ /// Validates the supplied