diff --git a/Objects/Objects/BuiltElements/Beam.cs b/Objects/Objects/BuiltElements/Beam.cs index 8931a6de34..0f4396ed88 100644 --- a/Objects/Objects/BuiltElements/Beam.cs +++ b/Objects/Objects/BuiltElements/Beam.cs @@ -141,10 +141,12 @@ public override Level? level get => archicadLevel; internal set { - if (value is not ArchicadLevel l) - throw new ArgumentException($"Expected object of type {nameof(ArchicadLevel)}"); + if (value is ArchicadLevel or null) + { + archicadLevel = value as ArchicadLevel; + } - archicadLevel = l; + throw new ArgumentException($"Expected object of type {nameof(ArchicadLevel)}"); } } diff --git a/Objects/Objects/BuiltElements/Column.cs b/Objects/Objects/BuiltElements/Column.cs index db62a85988..b0ef02c697 100644 --- a/Objects/Objects/BuiltElements/Column.cs +++ b/Objects/Objects/BuiltElements/Column.cs @@ -167,10 +167,12 @@ public override Level? level get => archicadLevel; internal set { - if (value is not ArchicadLevel l) - throw new ArgumentException($"Expected object of type {nameof(ArchicadLevel)}"); + if (value is ArchicadLevel or null) + { + archicadLevel = value as ArchicadLevel; + } - archicadLevel = l; + throw new ArgumentException($"Expected object of type {nameof(ArchicadLevel)}"); } } diff --git a/Objects/Objects/BuiltElements/Floor.cs b/Objects/Objects/BuiltElements/Floor.cs index d83e0f071d..3fcdf4c837 100644 --- a/Objects/Objects/BuiltElements/Floor.cs +++ b/Objects/Objects/BuiltElements/Floor.cs @@ -103,10 +103,12 @@ public override Level? level get => archicadLevel; internal set { - if (value is not ArchicadLevel l) - throw new ArgumentException($"Expected object of type {nameof(ArchicadLevel)}"); + if (value is ArchicadLevel or null) + { + archicadLevel = value as ArchicadLevel; + } - archicadLevel = l; + throw new ArgumentException($"Expected object of type {nameof(ArchicadLevel)}"); } } diff --git a/Objects/Objects/BuiltElements/Roof.cs b/Objects/Objects/BuiltElements/Roof.cs index 1683354b7e..02979d3766 100644 --- a/Objects/Objects/BuiltElements/Roof.cs +++ b/Objects/Objects/BuiltElements/Roof.cs @@ -153,10 +153,12 @@ public override Level? level get => archicadLevel; internal set { - if (value is not ArchicadLevel l) - throw new ArgumentException($"Expected object of type {nameof(ArchicadLevel)}"); + if (value is ArchicadLevel or null) + { + archicadLevel = value as ArchicadLevel; + } - archicadLevel = l; + throw new ArgumentException($"Expected object of type {nameof(ArchicadLevel)}"); } } diff --git a/Objects/Objects/BuiltElements/Wall.cs b/Objects/Objects/BuiltElements/Wall.cs index 051c69294c..a5dd9d358b 100644 --- a/Objects/Objects/BuiltElements/Wall.cs +++ b/Objects/Objects/BuiltElements/Wall.cs @@ -308,10 +308,12 @@ public override Level? level get => archicadLevel; internal set { - if (value is not ArchicadLevel l) - throw new ArgumentException($"Expected object of type {nameof(ArchicadLevel)}"); + if (value is ArchicadLevel or null) + { + archicadLevel = value as ArchicadLevel; + } - archicadLevel = l; + throw new ArgumentException($"Expected object of type {nameof(ArchicadLevel)}"); } }