From 801d43ebcec917afaf4447750479bc4b06193225 Mon Sep 17 00:00:00 2001 From: MP Date: Tue, 20 May 2025 10:47:23 +0200 Subject: [PATCH 01/54] Update GlobalAssemblyInfo.cs --- FemDesign.Core/Properties/GlobalAssemblyInfo.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FemDesign.Core/Properties/GlobalAssemblyInfo.cs b/FemDesign.Core/Properties/GlobalAssemblyInfo.cs index 26dc31280..8490cc46c 100644 --- a/FemDesign.Core/Properties/GlobalAssemblyInfo.cs +++ b/FemDesign.Core/Properties/GlobalAssemblyInfo.cs @@ -23,5 +23,5 @@ // Revision // -[assembly: AssemblyVersion("24.2.1")] -[assembly: AssemblyFileVersion("24.2.1")] \ No newline at end of file +[assembly: AssemblyVersion("24.3.0")] +[assembly: AssemblyFileVersion("24.3.0")] From c80065027116e285d8637c9de704a29adb57b45d Mon Sep 17 00:00:00 2001 From: MP Date: Fri, 13 Jun 2025 11:06:26 +0200 Subject: [PATCH 02/54] =?UTF-8?q?=F0=9F=90=9B=20value=20list=20for=20Diaph?= =?UTF-8?q?ragm=20is=20not=20implemented?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Calculate/CalculationParametersAnalysisDefine.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FemDesign.Grasshopper/Calculate/CalculationParametersAnalysisDefine.cs b/FemDesign.Grasshopper/Calculate/CalculationParametersAnalysisDefine.cs index 4834ddcf6..a6422a024 100644 --- a/FemDesign.Grasshopper/Calculate/CalculationParametersAnalysisDefine.cs +++ b/FemDesign.Grasshopper/Calculate/CalculationParametersAnalysisDefine.cs @@ -66,7 +66,7 @@ protected override void RegisterInputParams(GH_InputParamManager pManager) pManager[pManager.ParamCount - 1].Optional = true; pManager.AddBooleanParameter("elemfine", "elemfine", "Fine or standard elements", GH_ParamAccess.item, true); pManager[pManager.ParamCount - 1].Optional = true; - pManager.AddIntegerParameter("diaphragm", "diaphragm", "Diaphragm calculation. Connect 'ValueList' to get the options.\n\n'0'= None\n'1'= Rigid membrane\n'2'= Fully rigid", GH_ParamAccess.item, 0); + pManager.AddIntegerParameter("diaphragm", "diaphragm", "Diaphragm calculation.\n\n'0'= None\n'1'= Rigid membrane\n'2'= Fully rigid", GH_ParamAccess.item, 0); pManager[pManager.ParamCount - 1].Optional = true; pManager.AddBooleanParameter("peakSmoothing", "peakSmoothing", "Peak smoothing of internal forces", GH_ParamAccess.item, false); pManager[pManager.ParamCount - 1].Optional = true; From ecae98efdef7b85f54b9a1a1223f10092d241ccd Mon Sep 17 00:00:00 2001 From: MP Date: Mon, 15 Sep 2025 16:55:54 +0200 Subject: [PATCH 03/54] =?UTF-8?q?=E2=9C=A8=20shear=20control=20regions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FemDesign.Core/Model/Model.cs | 47 +++++++++++++ .../Reinforcement/ShearControlRegion.cs | 21 ++++++ .../Reinforcement/SurfaceReinforcement.cs | 26 ++++++++ FemDesign.Core/Shells/Slab.cs | 3 + .../FemDesign.Grasshopper.csproj | 3 + .../Properties/Resources.Designer.cs | 10 +++ .../Properties/Resources.resx | 3 + .../Reinforcement/ShearControlRegion.cs | 60 +++++++++++++++++ .../ShearControlRegionAddToSlab.cs | 63 ++++++++++++++++++ .../Resources/icons/shearRegion.png | Bin 0 -> 1409 bytes 10 files changed, 236 insertions(+) create mode 100644 FemDesign.Grasshopper/Reinforcement/ShearControlRegion.cs create mode 100644 FemDesign.Grasshopper/Reinforcement/ShearControlRegionAddToSlab.cs create mode 100644 FemDesign.Grasshopper/Resources/icons/shearRegion.png diff --git a/FemDesign.Core/Model/Model.cs b/FemDesign.Core/Model/Model.cs index 4929730a2..828f0a9d6 100644 --- a/FemDesign.Core/Model/Model.cs +++ b/FemDesign.Core/Model/Model.cs @@ -2201,6 +2201,9 @@ private void AddSlab(Shells.Slab obj, bool overwrite) // add SurfaceReinforcement this.AddSurfaceReinforcements(obj, overwrite); + // add ShearControlRegion + this.AddShearControlRegions(obj, overwrite); + // add line connection types (predefined rigidity) foreach (Releases.RigidityDataLibType3 predef in obj.SlabPart.Region.GetPredefinedRigidities()) { @@ -2644,6 +2647,50 @@ private bool SurfaceReinforcementParametersInModel(Reinforcement.SurfaceReinforc } + private void AddShearControlRegions(Shells.Slab obj, bool overwrite) + { + foreach (Reinforcement.ShearControlRegionType surfaceReinforcement in obj.ShearControlRegions) + { + this.AddShearControlRegion(surfaceReinforcement, overwrite); + } + } + + private void AddShearControlRegion(Reinforcement.ShearControlRegionType obj, bool overwrite) + { + // in model? + bool inModel = this.ShearControlRegionInModel(obj); + + // in model, don't overwrite + if (inModel && !overwrite) + { + throw new System.ArgumentException($"{obj.GetType().FullName} with guid: {obj.Guid} has already been added to model. Did you add the same {obj.GetType().FullName} to different Slabs?"); + } + + // in model, overwrite + else if (inModel && overwrite) + { + this.Entities.NoShearControlRegions.RemoveAll(x => x.Guid == obj.Guid); + } + + // add obj + this.Entities.NoShearControlRegions.Add(obj); + } + + /// + /// Check if ShearControlRegion in Model. + /// + private bool ShearControlRegionInModel(Reinforcement.ShearControlRegionType obj) + { + foreach (Reinforcement.ShearControlRegionType elem in this.Entities.NoShearControlRegions) + { + if (elem.Guid == obj.Guid) + { + return true; + } + } + return false; + } + /// /// Add Foundation to the Model diff --git a/FemDesign.Core/Reinforcement/ShearControlRegion.cs b/FemDesign.Core/Reinforcement/ShearControlRegion.cs index 401582ba1..fa78594b6 100644 --- a/FemDesign.Core/Reinforcement/ShearControlRegion.cs +++ b/FemDesign.Core/Reinforcement/ShearControlRegion.cs @@ -52,5 +52,26 @@ public double PhysicalExtension [XmlAttribute("reduce_shear_forces")] public bool ReduceShearForces { get; set; } + + private ShearControlRegionType() { } + + public ShearControlRegionType(Geometry.Region region, bool ignoreShearCheck, bool reduceShearForces) + { + if(region.Contours.Count != 1) + { + throw new ArgumentException("ShearControlRegionType must be initialized with a Region with exactly one Contour."); + } + + // One of ignoreShearCheck or ReduceShearForces must be true. + if (ignoreShearCheck == reduceShearForces) + { + throw new ArgumentException("ShearControlRegionType must be initialized with either ignoreShearCheck or reduceShearForces set to true, not both."); + } + + this.EntityCreated(); + this.Contour = region.Contours[0]; + this.IgnoreShearCheck = ignoreShearCheck; + this.ReduceShearForces = reduceShearForces; + } } } diff --git a/FemDesign.Core/Reinforcement/SurfaceReinforcement.cs b/FemDesign.Core/Reinforcement/SurfaceReinforcement.cs index d26c68985..507832a8f 100644 --- a/FemDesign.Core/Reinforcement/SurfaceReinforcement.cs +++ b/FemDesign.Core/Reinforcement/SurfaceReinforcement.cs @@ -189,6 +189,32 @@ private static Shells.Slab AddCentricReinfToSlab(Shells.Slab slab, List shearControlRegions) + { + // deep clone. downstreams objs will contain changes made in this method, upstream objs will not. + // downstream and uppstream objs will share guid. + Shells.Slab clone = slab.DeepClone(); + + // deep clone shear control regions + var shearControlRegionsClone = shearControlRegions.DeepClone(); + + // check if slab material is concrete + if (clone.Material.Concrete == null) + { + throw new System.ArgumentException("Material of slab must be concrete"); + } + + foreach (var item in shearControlRegionsClone) + { + // add references to item + item.BasePlate = clone.SlabPart.Guid; + // add item to slab + clone.ShearControlRegions.Add(item); + } + + return clone; + } + // check if surface reinforcement objects in list are mixed. private static bool MixedLayers(List srfReinfs) { diff --git a/FemDesign.Core/Shells/Slab.cs b/FemDesign.Core/Shells/Slab.cs index a472e4385..595316520 100644 --- a/FemDesign.Core/Shells/Slab.cs +++ b/FemDesign.Core/Shells/Slab.cs @@ -39,6 +39,9 @@ protected override int GetUniqueInstanceCount() // This method body must be the [XmlIgnore] public List SurfaceReinforcement = new List(); + [XmlIgnore] + public List ShearControlRegions = new List(); + [XmlAttribute("type")] public SlabType Type { get; set; } diff --git a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj index fa9ba3086..6933928db 100644 --- a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj +++ b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj @@ -295,6 +295,8 @@ + + @@ -994,6 +996,7 @@ + diff --git a/FemDesign.Grasshopper/Properties/Resources.Designer.cs b/FemDesign.Grasshopper/Properties/Resources.Designer.cs index ca0f0027e..53d4e6913 100644 --- a/FemDesign.Grasshopper/Properties/Resources.Designer.cs +++ b/FemDesign.Grasshopper/Properties/Resources.Designer.cs @@ -2350,6 +2350,16 @@ internal static System.Drawing.Bitmap SectionGetSectionProperties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap shearRegion { + get { + object obj = ResourceManager.GetObject("shearRegion", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/FemDesign.Grasshopper/Properties/Resources.resx b/FemDesign.Grasshopper/Properties/Resources.resx index e904b0f76..6ea27f364 100644 --- a/FemDesign.Grasshopper/Properties/Resources.resx +++ b/FemDesign.Grasshopper/Properties/Resources.resx @@ -7417,4 +7417,7 @@ ..\Resources\icons\Bedding.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\icons\shearRegion.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/FemDesign.Grasshopper/Reinforcement/ShearControlRegion.cs b/FemDesign.Grasshopper/Reinforcement/ShearControlRegion.cs new file mode 100644 index 000000000..deeb5b2e1 --- /dev/null +++ b/FemDesign.Grasshopper/Reinforcement/ShearControlRegion.cs @@ -0,0 +1,60 @@ +// https://strusoft.com/ +using FemDesign.GenericClasses; +using FemDesign.Grasshopper.Extension.ComponentExtension; +using FemDesign.Reinforcement; +using Grasshopper.Kernel; +using Grasshopper.Kernel.Special; +using Rhino.Geometry; +using System; +using System.Linq; + +namespace FemDesign.Grasshopper +{ + public class ShearControlRegion : FEM_Design_API_Component + { + public ShearControlRegion() : base("ShearControlRegion", "ShearControlRegion", "", "FEM-Design", "Reinforcement") + { + + } + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + pManager.AddSurfaceParameter("Surface", "Surface", "", GH_ParamAccess.item); + pManager.AddBooleanParameter("IgnoreShearCheck", "IgnoreShearCheck", "", GH_ParamAccess.item); + pManager.AddBooleanParameter("ReduceShearForces", "reduce_shear_forces", "", GH_ParamAccess.item); + } + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.AddGenericParameter("ShearControlRegion", "ShearControlRegion", "", GH_ParamAccess.item); + } + protected override void SolveInstance(IGH_DataAccess DA) + { + // get data + Rhino.Geometry.Brep brep = null; + bool ignoreShearCheck = false; + bool reduceShearForces = false; + + DA.GetData(0, ref brep); + DA.GetData(1, ref ignoreShearCheck); + DA.GetData(2, ref reduceShearForces); + + FemDesign.Reinforcement.ShearControlRegionType obj = new FemDesign.Reinforcement.ShearControlRegionType(brep.FromRhino(), ignoreShearCheck, reduceShearForces ); + + // return + DA.SetData(0, obj); + } + + protected override System.Drawing.Bitmap Icon + { + get + { + return FemDesign.Properties.Resources.shearRegion; + } + } + public override Guid ComponentGuid + { + get { return new Guid("{6FC91887-9C17-416E-A0C4-C1BEC2139FAE}"); } + } + + public override GH_Exposure Exposure => GH_Exposure.tertiary; + } +} \ No newline at end of file diff --git a/FemDesign.Grasshopper/Reinforcement/ShearControlRegionAddToSlab.cs b/FemDesign.Grasshopper/Reinforcement/ShearControlRegionAddToSlab.cs new file mode 100644 index 000000000..fcf55f80a --- /dev/null +++ b/FemDesign.Grasshopper/Reinforcement/ShearControlRegionAddToSlab.cs @@ -0,0 +1,63 @@ +// https://strusoft.com/ +using System; +using System.Collections.Generic; +using System.Linq; +using Eto.Forms; +using Grasshopper.Kernel; +using Rhino.Geometry; + +namespace FemDesign.Grasshopper +{ + public class ShearControlRegionAddToSlab : FEM_Design_API_Component + { + public ShearControlRegionAddToSlab() : base("ShearControlRegion.AddToSlab", "AddToSlab", "", "FEM-Design", "Reinforcement") + { + + } + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + pManager.AddGenericParameter("Slab", "Slab", "Slab.", GH_ParamAccess.item); + pManager.AddGenericParameter("ShearControlRegion", "ShearControlRegion", "ShearControlRegion to add to slab. Item or list.", GH_ParamAccess.list); + } + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.AddGenericParameter("Slab", "Slab", "Passed slab.", GH_ParamAccess.item); + } + protected override void SolveInstance(IGH_DataAccess DA) + { + // get data + FemDesign.Shells.Slab slab = null; + if (!DA.GetData(0, ref slab)) + { + return; + } + + List shearControlRegion = new List(); + if (!DA.GetDataList(1, shearControlRegion)) + { + return; + } + + + + FemDesign.Shells.Slab obj = FemDesign.Reinforcement.SurfaceReinforcement.AddShearControlRegionToSlab(slab, shearControlRegion); + + // return + DA.SetData(0, obj); + } + protected override System.Drawing.Bitmap Icon + { + get + { + return FemDesign.Properties.Resources.RebarAddToElement; + ; + } + } + public override Guid ComponentGuid + { + get { return new Guid("{B8CCC7F2-0EA5-4912-AA99-2C9E7AC0B9CD}"); } + } + + public override GH_Exposure Exposure => GH_Exposure.tertiary; + } +} \ No newline at end of file diff --git a/FemDesign.Grasshopper/Resources/icons/shearRegion.png b/FemDesign.Grasshopper/Resources/icons/shearRegion.png new file mode 100644 index 0000000000000000000000000000000000000000..79ab0083a54125c9007ee1d39a12512c2c9195bc GIT binary patch literal 1409 zcmV-{1%CR8P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1r|v}K~zXf)sstX zTSXLx|1&c;bFbftQzwnnN1#*%8tEorp`@;w2(dtH2;Cwi#12+SED+++N|o55AhCc| zix67~k1h~dxauRVOx+M#t0ie-yA8Q{G)a@%@#EeZ7Qt{^5E}#%|8BnX>CDX04DesZ zaUA18_IH_|pEn<53kwVP^?dnBZ?5wkk;DKT3=R5eIXhR-a9q5`g}CX(AugYrL+KG za}##4SlPR8UlfK>1!HWTh~PNh(CTVEws)_9VE~3K>i}fMb_0ZKtFbuXPgzx}> zg+jZRa=8}F&PrI81u5mRbUHm!Dz$xh{yf9d5(i_2!KT%12)Q<(C+8ISwI$kWyy%@85s)@ZrO!nCIc^fq|W)k3QNq#yLl&QYitzlTYr* z968cG+S3!B1OU#t3jnsgx#*|Uvev3S(a^ZEQ&7cXAaezv%{D6`q@g^7uYlTF6_ z!oQLGHXtJZ(w{#SwAO78vh5c4t91SP^&!srF0FOX*4EZ>&iN-&%I}(j*80`W&CRDH zk;q8^-~NWJMx*gTtyb#@g+ed<(GFeJYW01kR3Q)uoM4Pi)46l!k5ww(dqMz00GxAh z&e3Qnl*=xpBy86NhzQlHhg!{pWf6#)&s3vacA=DpX%aYR;GDzryyMKWcHJ8vSGan0 z`v{D&w@lLl;zxgajsA#>Ev)9KEa4jtOrlSs&mP1fJPWBtH^Sl{4a=K(3{n%`#tkV+*A zEiG=rUjTq~dS`(#eb>*ryF**Q@g+Y`r4s9V_OJq=HvIgb`~&eI_^XJSnVFbj7@>N- z9uqP@JJ literal 0 HcmV?d00001 From 6ef931ac53789fa38da67dd017800f1e9f248da3 Mon Sep 17 00:00:00 2001 From: MP <53620289+Marco-Pellegrino@users.noreply.github.com> Date: Mon, 15 Sep 2025 23:21:30 +0200 Subject: [PATCH 04/54] . --- .../FemDesignRunAnalysis_HubBased.cs | 76 ++++++++++++++ .../Helpers/FemDesignConnectionHub.cs | 85 ++++++++++++++++ .../Pipe/FemDesignConnection_HubBased.cs | 77 +++++++++++++++ .../Pipe/FemDesignOpen_HubBased.cs | 99 +++++++++++++++++++ 4 files changed, 337 insertions(+) create mode 100644 FemDesign.Grasshopper/Calculate/FemDesignRunAnalysis_HubBased.cs create mode 100644 FemDesign.Grasshopper/Helpers/FemDesignConnectionHub.cs create mode 100644 FemDesign.Grasshopper/Pipe/FemDesignConnection_HubBased.cs create mode 100644 FemDesign.Grasshopper/Pipe/FemDesignOpen_HubBased.cs diff --git a/FemDesign.Grasshopper/Calculate/FemDesignRunAnalysis_HubBased.cs b/FemDesign.Grasshopper/Calculate/FemDesignRunAnalysis_HubBased.cs new file mode 100644 index 000000000..6332b0730 --- /dev/null +++ b/FemDesign.Grasshopper/Calculate/FemDesignRunAnalysis_HubBased.cs @@ -0,0 +1,76 @@ +// https://strusoft.com/ +using System; +using System.Collections.Generic; +using Grasshopper.Kernel; +using FemDesign.Calculate; + +namespace FemDesign.Grasshopper +{ + /// + /// Run analysis using the shared hub connection (standard GH_Component, UI-blocking). + /// + public class FemDesignRunAnalysis_HubBased : FEM_Design_API_Component + { + public FemDesignRunAnalysis_HubBased() : base("FEM-Design.RunAnalysis (Hub)", "RunAnalysis", "Run analysis on current/open model using shared connection.", CategoryName.Name(), SubCategoryName.Cat8()) + { + } + + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddGenericParameter("Analysis", "Analysis", "Analysis settings.", GH_ParamAccess.item); + } + + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.AddBooleanParameter("Success", "Success", "True if analysis succeeded.", GH_ParamAccess.item); + pManager.AddTextParameter("Log", "Log", "Operation log.", GH_ParamAccess.list); + } + + protected override void SolveInstance(IGH_DataAccess DA) + { + object handle = null; + DA.GetData("Connection", ref handle); + + Analysis analysis = null; + DA.GetData("Analysis", ref analysis); + + var log = new List(); + bool success = false; + + try + { + FemDesignConnectionHub.InvokeAsync(conn => + { + void onOutput(string s) { log.Add(s); } + conn.OnOutput += onOutput; + try + { + if (analysis == null) throw new Exception("'Analysis' input is null."); + conn.RunAnalysis(analysis); + } + finally + { + conn.OnOutput -= onOutput; + } + }).GetAwaiter().GetResult(); + + success = true; + } + catch (Exception ex) + { + log.Add(ex.Message); + success = false; + } + + DA.SetData("Success", success); + DA.SetDataList("Log", log); + } + + protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.Calculate; + public override Guid ComponentGuid => new Guid("E3E3A9B8-68C4-4B9F-BE18-ACC6E9C8B852"); + public override GH_Exposure Exposure => GH_Exposure.primary; + } +} + + diff --git a/FemDesign.Grasshopper/Helpers/FemDesignConnectionHub.cs b/FemDesign.Grasshopper/Helpers/FemDesignConnectionHub.cs new file mode 100644 index 000000000..f09e261a6 --- /dev/null +++ b/FemDesign.Grasshopper/Helpers/FemDesignConnectionHub.cs @@ -0,0 +1,85 @@ +// https://strusoft.com/ +using System; +using System.Threading; +using System.Threading.Tasks; + +namespace FemDesign.Grasshopper +{ + /// + /// Process-wide shared FemDesignConnection with serialized access. + /// Ensures the connection is created off the UI thread to avoid deadlocks. + /// + public static class FemDesignConnectionHub + { + private static readonly SemaphoreSlim _gate = new SemaphoreSlim(1, 1); + private static FemDesign.FemDesignConnection _connection; + private static volatile bool _configured; + private static string _fdDir; + private static bool _minimized; + private static string _outputDir; + private static bool _deleteOutput; + + public static void Configure(string fdDir, bool minimized, string outputDir = null, bool deleteOutput = false) + { + _fdDir = fdDir; + _minimized = minimized; + _outputDir = outputDir; + _deleteOutput = deleteOutput; + _configured = true; + } + + private static async Task EnsureCreatedAsync() + { + if (_connection != null) return; + if (!_configured) throw new InvalidOperationException("FemDesignConnectionHub not configured."); + + _connection = await Task.Run(() => + new FemDesign.FemDesignConnection(_fdDir, _minimized, outputDir: _outputDir, tempOutputDir: _deleteOutput) + ).ConfigureAwait(false); + } + + public static async Task InvokeAsync(Func func) + { + await _gate.WaitAsync().ConfigureAwait(false); + try + { + await EnsureCreatedAsync().ConfigureAwait(false); + return func(_connection); + } + finally + { + _gate.Release(); + } + } + + public static async Task InvokeAsync(Action action) + { + await _gate.WaitAsync().ConfigureAwait(false); + try + { + await EnsureCreatedAsync().ConfigureAwait(false); + action(_connection); + } + finally + { + _gate.Release(); + } + } + + public static async Task DisposeAsync() + { + await _gate.WaitAsync().ConfigureAwait(false); + try + { + _connection?.Dispose(); + _connection = null; + } + finally + { + _gate.Release(); + } + } + } +} + + diff --git a/FemDesign.Grasshopper/Pipe/FemDesignConnection_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignConnection_HubBased.cs new file mode 100644 index 000000000..242033b58 --- /dev/null +++ b/FemDesign.Grasshopper/Pipe/FemDesignConnection_HubBased.cs @@ -0,0 +1,77 @@ +// https://strusoft.com/ +using System; +using System.Collections.Generic; +using Grasshopper.Kernel; + +namespace FemDesign.Grasshopper +{ + /// + /// Configures the shared FemDesignConnectionHub and exposes a lightweight handle. + /// + public class FemDesignConnection_HubBased : FEM_Design_API_Component + { + public FemDesignConnection_HubBased() : base("FEM-Design.Connection (Hub)", "Connection", "Create or configure a shared FEM-Design connection.", CategoryName.Name(), SubCategoryName.Cat8()) + { + } + + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + pManager.AddTextParameter("FEM-Design dir", "FEM-Design dir", "Path to FEM-Design installation.", GH_ParamAccess.item, @"C:\\Program Files\\StruSoft\\FEM-Design 24\\"); + pManager[pManager.ParamCount - 1].Optional = true; + + pManager.AddBooleanParameter("Minimized", "Minimized", "Start FEM-Design minimized.", GH_ParamAccess.item, true); + pManager[pManager.ParamCount - 1].Optional = true; + + pManager.AddTextParameter("OutputDir", "OutputDir", "Directory for scripts/logs. Default: GH file directory or temp.", GH_ParamAccess.item); + pManager[pManager.ParamCount - 1].Optional = true; + + pManager.AddBooleanParameter("DeleteOutputFolder", "DeleteOutputFolder", "Delete output directory on disconnect.", GH_ParamAccess.item, false); + pManager[pManager.ParamCount - 1].Optional = true; + } + + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + } + + protected override void SolveInstance(IGH_DataAccess DA) + { + string fdDir = @"C:\\Program Files\\StruSoft\\FEM-Design 24\\"; + DA.GetData("FEM-Design dir", ref fdDir); + + bool minimized = true; + DA.GetData("Minimized", ref minimized); + + string outputDir = null; + DA.GetData("OutputDir", ref outputDir); + + bool deleteOutput = false; + DA.GetData("DeleteOutputFolder", ref deleteOutput); + + // Set working directory similarly to existing component behavior + bool fileExist = OnPingDocument().IsFilePathDefined; + if (!fileExist) + { + string tempPath = System.IO.Path.GetTempPath(); + System.IO.Directory.SetCurrentDirectory(tempPath); + } + else + { + var filePath = OnPingDocument().FilePath; + var currentDir = System.IO.Path.GetDirectoryName(filePath); + System.IO.Directory.SetCurrentDirectory(currentDir); + } + + FemDesignConnectionHub.Configure(fdDir, minimized, outputDir, deleteOutput); + + // Emit a simple token/handle to wire downstream (no real object needed since hub is static) + DA.SetData("Connection", new object()); + } + + protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_Connection; + public override Guid ComponentGuid => new Guid("9F2B6F6D-9EB8-4B0A-9B55-9B3E3B5B5D67"); + public override GH_Exposure Exposure => GH_Exposure.primary; + } +} + + diff --git a/FemDesign.Grasshopper/Pipe/FemDesignOpen_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignOpen_HubBased.cs new file mode 100644 index 000000000..5682e9bdb --- /dev/null +++ b/FemDesign.Grasshopper/Pipe/FemDesignOpen_HubBased.cs @@ -0,0 +1,99 @@ +// https://strusoft.com/ +using System; +using System.Collections.Generic; +using Grasshopper.Kernel; + +namespace FemDesign.Grasshopper +{ + /// + /// Open a model using the shared hub connection (standard GH_Component, UI-blocking). + /// + public class FemDesignOpen_HubBased : FEM_Design_API_Component + { + public FemDesignOpen_HubBased() : base("FEM-Design.Open (Hub)", "Open", "Open model in FEM-Design using shared connection.", CategoryName.Name(), SubCategoryName.Cat8()) + { + } + + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddGenericParameter("Model", "Model", "Model object or file path.", GH_ParamAccess.item); + } + + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.AddGenericParameter("Model", "Model", "Opened model (round-tripped).", GH_ParamAccess.item); + pManager.AddBooleanParameter("Success", "Success", "True if operation succeeded.", GH_ParamAccess.item); + pManager.AddTextParameter("Log", "Log", "Operation log.", GH_ParamAccess.list); + } + + protected override void SolveInstance(IGH_DataAccess DA) + { + object handle = null; + DA.GetData("Connection", ref handle); + + dynamic modelIn = null; + DA.GetData("Model", ref modelIn); + + var log = new List(); + bool success = false; + Model modelOut = null; + + try + { + // Block UI while invoking hub (acceptable per requirements) + FemDesignConnectionHub.InvokeAsync(conn => + { + void onOutput(string s) { log.Add(s); } + conn.OnOutput += onOutput; + try + { + if (modelIn is string path) + { + conn.Open(path); + } + else if (modelIn is Model m) + { + conn.Open(m); + } + else if (modelIn != null && modelIn.Value is string vpath) + { + conn.Open(vpath); + } + else if (modelIn != null && modelIn.Value is Model vm) + { + conn.Open(vm); + } + else + { + throw new Exception("Unsupported 'Model' input. Provide file path or FemDesign.Model."); + } + + modelOut = conn.GetModel(); + } + finally + { + conn.OnOutput -= onOutput; + } + }).GetAwaiter().GetResult(); + + success = true; + } + catch (Exception ex) + { + log.Add(ex.Message); + success = false; + } + + DA.SetData("Model", modelOut); + DA.SetData("Success", success); + DA.SetDataList("Log", log); + } + + protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_open; + public override Guid ComponentGuid => new Guid("7E2C6206-7B4A-4C6F-8F39-59B324F11213"); + public override GH_Exposure Exposure => GH_Exposure.primary; + } +} + + From 9b8779ace8a94d1876dd9a01ee50a56c0a49b521 Mon Sep 17 00:00:00 2001 From: MP <53620289+Marco-Pellegrino@users.noreply.github.com> Date: Mon, 15 Sep 2025 23:45:58 +0200 Subject: [PATCH 05/54] . --- .../Helpers/FemDesignConnectionHub.cs | 96 ++++++++++++------- 1 file changed, 59 insertions(+), 37 deletions(-) diff --git a/FemDesign.Grasshopper/Helpers/FemDesignConnectionHub.cs b/FemDesign.Grasshopper/Helpers/FemDesignConnectionHub.cs index f09e261a6..cabb49427 100644 --- a/FemDesign.Grasshopper/Helpers/FemDesignConnectionHub.cs +++ b/FemDesign.Grasshopper/Helpers/FemDesignConnectionHub.cs @@ -1,17 +1,17 @@ // https://strusoft.com/ using System; +using System.Collections.Concurrent; using System.Threading; using System.Threading.Tasks; namespace FemDesign.Grasshopper { /// - /// Process-wide shared FemDesignConnection with serialized access. - /// Ensures the connection is created off the UI thread to avoid deadlocks. + /// Process-wide shared FemDesignConnection with serialized access on a dedicated worker thread. + /// Ensures stable threading across iterations to avoid UI deadlocks. /// public static class FemDesignConnectionHub { - private static readonly SemaphoreSlim _gate = new SemaphoreSlim(1, 1); private static FemDesign.FemDesignConnection _connection; private static volatile bool _configured; private static string _fdDir; @@ -19,6 +19,10 @@ public static class FemDesignConnectionHub private static string _outputDir; private static bool _deleteOutput; + private static Thread _workerThread; + private static readonly BlockingCollection _queue = new BlockingCollection(); + private static readonly object _startLock = new object(); + public static void Configure(string fdDir, bool minimized, string outputDir = null, bool deleteOutput = false) { _fdDir = fdDir; @@ -26,58 +30,76 @@ public static void Configure(string fdDir, bool minimized, string outputDir = nu _outputDir = outputDir; _deleteOutput = deleteOutput; _configured = true; + EnsureStarted(); } - private static async Task EnsureCreatedAsync() + private static void EnsureStarted() { - if (_connection != null) return; - if (!_configured) throw new InvalidOperationException("FemDesignConnectionHub not configured."); + if (_workerThread != null) return; + lock (_startLock) + { + if (_workerThread != null) return; + if (!_configured) throw new InvalidOperationException("FemDesignConnectionHub not configured."); - _connection = await Task.Run(() => - new FemDesign.FemDesignConnection(_fdDir, _minimized, outputDir: _outputDir, tempOutputDir: _deleteOutput) - ).ConfigureAwait(false); + _workerThread = new Thread(() => + { + _connection = new FemDesign.FemDesignConnection(_fdDir, _minimized, outputDir: _outputDir, tempOutputDir: _deleteOutput); + foreach (var action in _queue.GetConsumingEnumerable()) + { + try { action(); } + catch { /* Swallow here; exceptions are delivered via TaskCompletionSource */ } + } + }); + _workerThread.IsBackground = true; + _workerThread.Name = "FemDesignConnectionHub-Worker"; + _workerThread.Start(); + } } - public static async Task InvokeAsync(Func func) + public static Task InvokeAsync(Func func) { - await _gate.WaitAsync().ConfigureAwait(false); - try + if (_workerThread == null) EnsureStarted(); + var tcs = new TaskCompletionSource(); + _queue.Add(() => { - await EnsureCreatedAsync().ConfigureAwait(false); - return func(_connection); - } - finally - { - _gate.Release(); - } + try { tcs.SetResult(func(_connection)); } + catch (Exception ex) { tcs.SetException(ex); } + }); + return tcs.Task; } - public static async Task InvokeAsync(Action action) + public static Task InvokeAsync(Action action) { - await _gate.WaitAsync().ConfigureAwait(false); - try + if (_workerThread == null) EnsureStarted(); + var tcs = new TaskCompletionSource(); + _queue.Add(() => { - await EnsureCreatedAsync().ConfigureAwait(false); - action(_connection); - } - finally - { - _gate.Release(); - } + try { action(_connection); tcs.SetResult(true); } + catch (Exception ex) { tcs.SetException(ex); } + }); + return tcs.Task; } - public static async Task DisposeAsync() + public static Task DisposeAsync() { - await _gate.WaitAsync().ConfigureAwait(false); - try + var tcs = new TaskCompletionSource(); + if (_workerThread == null) { - _connection?.Dispose(); - _connection = null; + tcs.SetResult(true); + return tcs.Task; } - finally + + _queue.Add(() => { - _gate.Release(); - } + try { _connection?.Dispose(); _connection = null; } + catch { /* ignore */ } + finally { tcs.SetResult(true); } + }); + + // complete queue after disposing to end thread + _queue.CompleteAdding(); + _workerThread = null; + return tcs.Task; } } } From 63e6086e9bd8d8f8318374f1f85b228a3a0fd65c Mon Sep 17 00:00:00 2001 From: MP Date: Tue, 16 Sep 2025 14:16:16 +0200 Subject: [PATCH 06/54] =?UTF-8?q?=F0=9F=91=B7=20HubBased=20components?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FemDesign.Grasshopper.csproj | 10 ++ .../Helpers/_GhRibbonLayout.cs | 5 + .../Pipe/FemDesignConnection_HubBased.cs | 2 +- .../Pipe/FemDesignOpen_HubBased.cs | 10 +- .../FemDesignRunAnalysis_HubBased.cs | 7 +- .../Pipe/FemDesignRunDesign_HubBased.cs | 84 +++++++++ .../Pipe/FemDesignSaveAs_HubBased.cs | 77 +++++++++ .../FemDesignSaveDocumentation_HubBased.cs | 82 +++++++++ .../Pipe/FemDesignSetCfg_HubBased.cs | 108 ++++++++++++ .../Pipe/FemDesignSetGlobalCfg_HubBased.cs | 108 ++++++++++++ .../Pipe/PipeReadCaseCombResults_HubBased.cs | 159 ++++++++++++++++++ 11 files changed, 646 insertions(+), 6 deletions(-) rename FemDesign.Grasshopper/{Calculate => Pipe}/FemDesignRunAnalysis_HubBased.cs (91%) create mode 100644 FemDesign.Grasshopper/Pipe/FemDesignRunDesign_HubBased.cs create mode 100644 FemDesign.Grasshopper/Pipe/FemDesignSaveAs_HubBased.cs create mode 100644 FemDesign.Grasshopper/Pipe/FemDesignSaveDocumentation_HubBased.cs create mode 100644 FemDesign.Grasshopper/Pipe/FemDesignSetCfg_HubBased.cs create mode 100644 FemDesign.Grasshopper/Pipe/FemDesignSetGlobalCfg_HubBased.cs create mode 100644 FemDesign.Grasshopper/Pipe/PipeReadCaseCombResults_HubBased.cs diff --git a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj index 6933928db..56cc998d0 100644 --- a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj +++ b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj @@ -76,6 +76,8 @@ + + @@ -146,6 +148,7 @@ + @@ -221,6 +224,8 @@ + + @@ -232,6 +237,11 @@ + + + + + diff --git a/FemDesign.Grasshopper/Helpers/_GhRibbonLayout.cs b/FemDesign.Grasshopper/Helpers/_GhRibbonLayout.cs index c02b9152b..81bfedcd4 100644 --- a/FemDesign.Grasshopper/Helpers/_GhRibbonLayout.cs +++ b/FemDesign.Grasshopper/Helpers/_GhRibbonLayout.cs @@ -82,5 +82,10 @@ public static string Cat8() { return "StruSoft - LiveLink"; } + + public static string CatHub() + { + return "Hub"; + } } } \ No newline at end of file diff --git a/FemDesign.Grasshopper/Pipe/FemDesignConnection_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignConnection_HubBased.cs index 242033b58..71be703b8 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignConnection_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignConnection_HubBased.cs @@ -10,7 +10,7 @@ namespace FemDesign.Grasshopper /// public class FemDesignConnection_HubBased : FEM_Design_API_Component { - public FemDesignConnection_HubBased() : base("FEM-Design.Connection (Hub)", "Connection", "Create or configure a shared FEM-Design connection.", CategoryName.Name(), SubCategoryName.Cat8()) + public FemDesignConnection_HubBased() : base("FEM-Design.Connection (Hub)", "Connection", "Create or configure a shared FEM-Design connection.", CategoryName.Name(), SubCategoryName.CatHub()) { } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignOpen_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignOpen_HubBased.cs index 5682e9bdb..9a4edd664 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignOpen_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignOpen_HubBased.cs @@ -10,7 +10,7 @@ namespace FemDesign.Grasshopper /// public class FemDesignOpen_HubBased : FEM_Design_API_Component { - public FemDesignOpen_HubBased() : base("FEM-Design.Open (Hub)", "Open", "Open model in FEM-Design using shared connection.", CategoryName.Name(), SubCategoryName.Cat8()) + public FemDesignOpen_HubBased() : base("FEM-Design.Open (Hub)", "Open", "Open model in FEM-Design using shared connection.", CategoryName.Name(), SubCategoryName.CatHub()) { } @@ -22,6 +22,7 @@ protected override void RegisterInputParams(GH_InputParamManager pManager) protected override void RegisterOutputParams(GH_OutputParamManager pManager) { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); pManager.AddGenericParameter("Model", "Model", "Opened model (round-tripped).", GH_ParamAccess.item); pManager.AddBooleanParameter("Success", "Success", "True if operation succeeded.", GH_ParamAccess.item); pManager.AddTextParameter("Log", "Log", "Operation log.", GH_ParamAccess.list); @@ -56,12 +57,14 @@ protected override void SolveInstance(IGH_DataAccess DA) { conn.Open(m); } - else if (modelIn != null && modelIn.Value is string vpath) + else if (modelIn != null && modelIn.Value is string) { + string vpath = modelIn.Value as string; conn.Open(vpath); } - else if (modelIn != null && modelIn.Value is Model vm) + else if (modelIn != null && modelIn.Value is Model) { + Model vm = modelIn.Value as Model; conn.Open(vm); } else @@ -85,6 +88,7 @@ protected override void SolveInstance(IGH_DataAccess DA) success = false; } + DA.SetData("Connection", new object()); DA.SetData("Model", modelOut); DA.SetData("Success", success); DA.SetDataList("Log", log); diff --git a/FemDesign.Grasshopper/Calculate/FemDesignRunAnalysis_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignRunAnalysis_HubBased.cs similarity index 91% rename from FemDesign.Grasshopper/Calculate/FemDesignRunAnalysis_HubBased.cs rename to FemDesign.Grasshopper/Pipe/FemDesignRunAnalysis_HubBased.cs index 6332b0730..9eb5c50c5 100644 --- a/FemDesign.Grasshopper/Calculate/FemDesignRunAnalysis_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignRunAnalysis_HubBased.cs @@ -11,7 +11,7 @@ namespace FemDesign.Grasshopper /// public class FemDesignRunAnalysis_HubBased : FEM_Design_API_Component { - public FemDesignRunAnalysis_HubBased() : base("FEM-Design.RunAnalysis (Hub)", "RunAnalysis", "Run analysis on current/open model using shared connection.", CategoryName.Name(), SubCategoryName.Cat8()) + public FemDesignRunAnalysis_HubBased() : base("FEM-Design.RunAnalysis (Hub)", "RunAnalysis", "Run analysis on current/open model using shared connection.", CategoryName.Name(), SubCategoryName.CatHub()) { } @@ -23,6 +23,7 @@ protected override void RegisterInputParams(GH_InputParamManager pManager) protected override void RegisterOutputParams(GH_OutputParamManager pManager) { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); pManager.AddBooleanParameter("Success", "Success", "True if analysis succeeded.", GH_ParamAccess.item); pManager.AddTextParameter("Log", "Log", "Operation log.", GH_ParamAccess.list); } @@ -63,14 +64,16 @@ protected override void SolveInstance(IGH_DataAccess DA) success = false; } + DA.SetData("Connection", new object()); DA.SetData("Success", success); DA.SetDataList("Log", log); } - protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.Calculate; + protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_RunAnalysis; public override Guid ComponentGuid => new Guid("E3E3A9B8-68C4-4B9F-BE18-ACC6E9C8B852"); public override GH_Exposure Exposure => GH_Exposure.primary; } } + diff --git a/FemDesign.Grasshopper/Pipe/FemDesignRunDesign_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignRunDesign_HubBased.cs new file mode 100644 index 000000000..fe2f18a87 --- /dev/null +++ b/FemDesign.Grasshopper/Pipe/FemDesignRunDesign_HubBased.cs @@ -0,0 +1,84 @@ +// https://strusoft.com/ +using System; +using System.Collections.Generic; +using Grasshopper.Kernel; +using FemDesign.Calculate; + +namespace FemDesign.Grasshopper +{ + /// + /// Run design using the shared hub connection (standard GH_Component, UI-blocking). + /// + public class FemDesignRunDesign_HubBased : FEM_Design_API_Component + { + public FemDesignRunDesign_HubBased() : base("FEM-Design.RunDesign (Hub)", "RunDesign", "Run design on current/open model using shared connection.", CategoryName.Name(), SubCategoryName.CatHub()) + { + } + + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddGenericParameter("Design", "Design", "Design settings.", GH_ParamAccess.item); + pManager.AddGenericParameter("DesignGroup", "DesignGroup", "Optional design groups.", GH_ParamAccess.list); + pManager[pManager.ParamCount - 1].Optional = true; + } + + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddBooleanParameter("Success", "Success", "True if design succeeded.", GH_ParamAccess.item); + pManager.AddTextParameter("Log", "Log", "Operation log.", GH_ParamAccess.list); + } + + protected override void SolveInstance(IGH_DataAccess DA) + { + object handle = null; + DA.GetData("Connection", ref handle); + + Design design = null; + DA.GetData("Design", ref design); + + var designGroups = new List(); + DA.GetDataList("DesignGroup", designGroups); + + var log = new List(); + bool success = false; + + try + { + FemDesignConnectionHub.InvokeAsync(conn => + { + void onOutput(string s) { log.Add(s); } + conn.OnOutput += onOutput; + try + { + if (design == null) throw new Exception("'Design' input is null."); + var userModule = design.Mode; + conn.RunDesign(userModule, design, designGroups); + } + finally + { + conn.OnOutput -= onOutput; + } + }).GetAwaiter().GetResult(); + + success = true; + } + catch (Exception ex) + { + log.Add(ex.Message); + success = false; + } + + DA.SetData("Connection", new object()); + DA.SetData("Success", success); + DA.SetDataList("Log", log); + } + + protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_RunDesign; + public override Guid ComponentGuid => new Guid("B2CDE1C7-4C8F-4B57-9B3B-7B4A1E2C6C9E"); + public override GH_Exposure Exposure => GH_Exposure.secondary; + } +} + + diff --git a/FemDesign.Grasshopper/Pipe/FemDesignSaveAs_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignSaveAs_HubBased.cs new file mode 100644 index 000000000..58758d198 --- /dev/null +++ b/FemDesign.Grasshopper/Pipe/FemDesignSaveAs_HubBased.cs @@ -0,0 +1,77 @@ +// https://strusoft.com/ +using System; +using System.Collections.Generic; +using Grasshopper.Kernel; + +namespace FemDesign.Grasshopper +{ + /// + /// Save model using the shared hub connection (standard GH_Component, UI-blocking). + /// + public class FemDesignSaveAs_HubBased : FEM_Design_API_Component + { + public FemDesignSaveAs_HubBased() : base("FEM-Design.Save (Hub)", "Save", "Save the current model using shared connection.", CategoryName.Name(), SubCategoryName.CatHub()) + { + } + + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddTextParameter("FilePath", "FilePath", "Save the model to .struxml or .str file.", GH_ParamAccess.item); + } + + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddBooleanParameter("Success", "Success", "True if save succeeded.", GH_ParamAccess.item); + pManager.AddTextParameter("Log", "Log", "Operation log.", GH_ParamAccess.list); + } + + protected override void SolveInstance(IGH_DataAccess DA) + { + object handle = null; + DA.GetData("Connection", ref handle); + + string filePath = null; + DA.GetData("FilePath", ref filePath); + + var log = new List(); + bool success = false; + + try + { + FemDesignConnectionHub.InvokeAsync(conn => + { + void onOutput(string s) { log.Add(s); } + conn.OnOutput += onOutput; + try + { + if (string.IsNullOrWhiteSpace(filePath)) throw new Exception("'FilePath' is null or empty."); + conn.Save(filePath); + } + finally + { + conn.OnOutput -= onOutput; + } + }).GetAwaiter().GetResult(); + + success = true; + } + catch (Exception ex) + { + log.Add(ex.Message); + success = false; + } + + DA.SetData("Connection", new object()); + DA.SetData("Success", success); + DA.SetDataList("Log", log); + } + + protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_SaveAs; + public override Guid ComponentGuid => new Guid("7C4F2E2B-5B9A-4F7B-BB38-2E7C6F3A1D42"); + public override GH_Exposure Exposure => GH_Exposure.primary; + } +} + + diff --git a/FemDesign.Grasshopper/Pipe/FemDesignSaveDocumentation_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignSaveDocumentation_HubBased.cs new file mode 100644 index 000000000..957222190 --- /dev/null +++ b/FemDesign.Grasshopper/Pipe/FemDesignSaveDocumentation_HubBased.cs @@ -0,0 +1,82 @@ +// https://strusoft.com/ +using System; +using System.Collections.Generic; +using Grasshopper.Kernel; + +namespace FemDesign.Grasshopper +{ + /// + /// Save documentation using the shared hub connection (standard GH_Component, UI-blocking). + /// + public class FemDesignSaveDocumentation_HubBased : FEM_Design_API_Component + { + public FemDesignSaveDocumentation_HubBased() : base("FEM-Design.Documentation (Hub)", "SaveDocx", "Save documentation of current model using shared connection.", CategoryName.Name(), SubCategoryName.CatHub()) + { + } + + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddTextParameter("Docx", "Docx", "Docx file path for the documentation output.", GH_ParamAccess.item); + pManager.AddTextParameter("Template", "Template", ".dsc template file path.", GH_ParamAccess.item); + pManager[pManager.ParamCount - 1].Optional = true; + } + + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddBooleanParameter("Success", "Success", "True if documentation saved.", GH_ParamAccess.item); + pManager.AddTextParameter("Log", "Log", "Operation log.", GH_ParamAccess.list); + } + + protected override void SolveInstance(IGH_DataAccess DA) + { + object handle = null; + DA.GetData("Connection", ref handle); + + string docx = null; + DA.GetData("Docx", ref docx); + + string template = null; + DA.GetData("Template", ref template); + + var log = new List(); + bool success = false; + + try + { + FemDesignConnectionHub.InvokeAsync(conn => + { + void onOutput(string s) { log.Add(s); } + conn.OnOutput += onOutput; + try + { + if (string.IsNullOrWhiteSpace(docx)) throw new Exception("'Docx' path is null or empty."); + conn.SaveDocx(docx, template); + } + finally + { + conn.OnOutput -= onOutput; + } + }).GetAwaiter().GetResult(); + + success = true; + } + catch (Exception ex) + { + log.Add(ex.Message); + success = false; + } + + DA.SetData("Connection", new object()); + DA.SetData("Success", success); + DA.SetDataList("Log", log); + } + + protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.Docx; + public override Guid ComponentGuid => new Guid("C1A1D62B-2B2D-4F81-8C7B-21BC04C4B5B8"); + public override GH_Exposure Exposure => GH_Exposure.primary; + } +} + + diff --git a/FemDesign.Grasshopper/Pipe/FemDesignSetCfg_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignSetCfg_HubBased.cs new file mode 100644 index 000000000..4745751e2 --- /dev/null +++ b/FemDesign.Grasshopper/Pipe/FemDesignSetCfg_HubBased.cs @@ -0,0 +1,108 @@ +// https://strusoft.com/ +using System; +using System.Collections.Generic; +using System.Reflection; +using Grasshopper.Kernel; + +namespace FemDesign.Grasshopper +{ + /// + /// Set configurations using the shared hub connection (standard GH_Component, UI-blocking). + /// Mirrors PipeSetCfg behavior. + /// + public class FemDesignSetCfg_HubBased : FEM_Design_API_Component + { + public FemDesignSetCfg_HubBased() : base("FEM-Design.SetConfigurations (Hub)", "SetCfg", "Set design settings for current model using shared connection.", CategoryName.Name(), SubCategoryName.CatHub()) + { + } + + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddGenericParameter("Config", "Cfg", "Filepath of configuration file or Config objects.", GH_ParamAccess.list); + pManager[pManager.ParamCount - 1].Optional = true; + } + + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddBooleanParameter("Success", "Success", "True if configuration applied.", GH_ParamAccess.item); + pManager.AddTextParameter("Log", "Log", "Operation log.", GH_ParamAccess.list); + } + + protected override void SolveInstance(IGH_DataAccess DA) + { + object handle = null; + DA.GetData("Connection", ref handle); + + var cfg = new List(); + DA.GetDataList("Config", cfg); + + var log = new List(); + bool success = false; + + try + { + FemDesignConnectionHub.InvokeAsync(conn => + { + void onOutput(string s) { log.Add(s); } + conn.OnOutput += onOutput; + try + { + if (cfg.Count == 0) + { + string assemblyLocation = Assembly.GetExecutingAssembly().Location; + var cfgfilePath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(assemblyLocation), @"cfg.xml"); + conn.SetConfig(cfgfilePath); + } + else + { + foreach (var c in cfg) + { + if (c is string s) + { + conn.SetConfig(s); + } + else if (c != null && c.Value is string) + { + string vs = c.Value as string; + conn.SetConfig(vs); + } + else if (c is FemDesign.Calculate.CONFIG cfgObj) + { + conn.SetConfig(cfgObj); + } + else if (c != null && c.Value is FemDesign.Calculate.CONFIG) + { + FemDesign.Calculate.CONFIG vCfgObj = c.Value as FemDesign.Calculate.CONFIG; + conn.SetConfig(vCfgObj); + } + } + } + } + finally + { + conn.OnOutput -= onOutput; + } + }).GetAwaiter().GetResult(); + + success = true; + } + catch (Exception ex) + { + log.Add(ex.Message); + success = false; + } + + DA.SetData("Connection", new object()); + DA.SetData("Success", success); + DA.SetDataList("Log", log); + } + + protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_Config; + public override Guid ComponentGuid => new Guid("A8F2D25E-9D7D-4CF9-8B50-ED8F5C6A3B11"); + public override GH_Exposure Exposure => GH_Exposure.obscure; + } +} + + diff --git a/FemDesign.Grasshopper/Pipe/FemDesignSetGlobalCfg_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignSetGlobalCfg_HubBased.cs new file mode 100644 index 000000000..56eb6f2f1 --- /dev/null +++ b/FemDesign.Grasshopper/Pipe/FemDesignSetGlobalCfg_HubBased.cs @@ -0,0 +1,108 @@ +// https://strusoft.com/ +using System; +using System.Collections.Generic; +using System.Reflection; +using Grasshopper.Kernel; + +namespace FemDesign.Grasshopper +{ + /// + /// Set global configurations using the shared hub connection (standard GH_Component, UI-blocking). + /// Mirrors PipeSetGlobalCfg behavior. + /// + public class FemDesignSetGlobalCfg_HubBased : FEM_Design_API_Component + { + public FemDesignSetGlobalCfg_HubBased() : base("FEM-Design.SetGlobalConfigurations (Hub)", "SetGlobalCfg", "Set global settings for current model using shared connection.", CategoryName.Name(), SubCategoryName.Cat8()) + { + } + + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddGenericParameter("GlobalConfig", "GlobCfg", "Filepath of global configuration file or GlobConfig objects.", GH_ParamAccess.list); + pManager[pManager.ParamCount - 1].Optional = true; + } + + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddBooleanParameter("Success", "Success", "True if global configuration applied.", GH_ParamAccess.item); + pManager.AddTextParameter("Log", "Log", "Operation log.", GH_ParamAccess.list); + } + + protected override void SolveInstance(IGH_DataAccess DA) + { + object handle = null; + DA.GetData("Connection", ref handle); + + var globCfg = new List(); + DA.GetDataList("GlobalConfig", globCfg); + + var log = new List(); + bool success = false; + + try + { + FemDesignConnectionHub.InvokeAsync(conn => + { + void onOutput(string s) { log.Add(s); } + conn.OnOutput += onOutput; + try + { + if (globCfg.Count == 0) + { + string assemblyLocation = Assembly.GetExecutingAssembly().Location; + var globCfgfilePath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(assemblyLocation), @"cmdglobalcfg.xml"); + conn.SetGlobalConfig(globCfgfilePath); + } + else + { + foreach (var c in globCfg) + { + if (c is string s) + { + conn.SetGlobalConfig(s); + } + else if (c != null && c.Value is string) + { + string vs = c.Value as string; + conn.SetGlobalConfig(vs); + } + else if (c is FemDesign.Calculate.GlobConfig cfgObj) + { + conn.SetGlobalConfig(cfgObj); + } + else if (c != null && c.Value is FemDesign.Calculate.GlobConfig) + { + FemDesign.Calculate.GlobConfig vCfgObj = c.Value as FemDesign.Calculate.GlobConfig; + conn.SetGlobalConfig(vCfgObj); + } + } + } + } + finally + { + conn.OnOutput -= onOutput; + } + }).GetAwaiter().GetResult(); + + success = true; + } + catch (Exception ex) + { + log.Add(ex.Message); + success = false; + } + + DA.SetData("Connection", new object()); + DA.SetData("Success", success); + DA.SetDataList("Log", log); + } + + protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_Config; + public override Guid ComponentGuid => new Guid("BC8A2A7D-8F2D-4B7B-9F52-5C6A8E2F3A44"); + public override GH_Exposure Exposure => GH_Exposure.obscure; + } +} + + diff --git a/FemDesign.Grasshopper/Pipe/PipeReadCaseCombResults_HubBased.cs b/FemDesign.Grasshopper/Pipe/PipeReadCaseCombResults_HubBased.cs new file mode 100644 index 000000000..4c95c0c83 --- /dev/null +++ b/FemDesign.Grasshopper/Pipe/PipeReadCaseCombResults_HubBased.cs @@ -0,0 +1,159 @@ +// https://strusoft.com/ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using Grasshopper; +using Grasshopper.Kernel; +using Grasshopper.Kernel.Data; +using FemDesign.Calculate; +using FemDesign.Results; + +namespace FemDesign.Grasshopper +{ + /// + /// Read load cases and load combinations results using the shared hub connection (standard GH_Component, UI-blocking). + /// Mirrors PipeReadResults logic but executes via FemDesignConnectionHub. + /// + public class FemDesignGetCaseCombResults_HubBased : FEM_Design_API_Component + { + public FemDesignGetCaseCombResults_HubBased() : base("FEM-Design.GetCaseCombResults (Hub)", "CaseCombResults", "Read load cases and load combinations results from current model using shared connection.", CategoryName.Name(), SubCategoryName.CatHub()) + { + } + + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddTextParameter("ResultType", "ResultType", "Result type names under FemDesign.Results namespace (e.g. 'NodalDisplacement').", GH_ParamAccess.list); + pManager.AddTextParameter("Case Name", "Case Name", "Optional. Load case names to filter. If empty, all cases are considered.", GH_ParamAccess.list); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddTextParameter("Combination Name", "Combo Name", "Optional. Load combination names to filter. If empty, all combinations are considered.", GH_ParamAccess.list); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddGenericParameter("Elements", "Elements", "Optional. Elements for which the results will be returned. Default: all elements.", GH_ParamAccess.list); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddGenericParameter("Options", "Options", "Optional settings for output location. Default is 'ByStep' and 'Vertices'.", GH_ParamAccess.item); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddGenericParameter("Units", "Units", "Optional. Specify result units for specific types.", GH_ParamAccess.item); + pManager[pManager.ParamCount - 1].Optional = true; + } + + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddGenericParameter("Results", "Results", "Results.", GH_ParamAccess.list); + pManager.AddBooleanParameter("Success", "Success", "True if operation succeeded.", GH_ParamAccess.item); + pManager.AddTextParameter("Log", "Log", "Operation log.", GH_ParamAccess.list); + } + + protected override void SolveInstance(IGH_DataAccess DA) + { + object handle = null; + DA.GetData("Connection", ref handle); + + var resultTypes = new List(); + DA.GetDataList("ResultType", resultTypes); + + var caseNames = new List(); + DA.GetDataList("Case Name", caseNames); + + var comboNames = new List(); + DA.GetDataList("Combination Name", comboNames); + + var elements = new List(); + DA.GetDataList("Elements", elements); + + Results.UnitResults units = null; + DA.GetData("Units", ref units); + + Options options = null; + DA.GetData("Options", ref options); + + var log = new List(); + bool success = false; + var resultsTree = new DataTree(); + + try + { + FemDesignConnectionHub.InvokeAsync(conn => + { + void onOutput(string s) { log.Add(s); } + conn.OnOutput += onOutput; + try + { + int resIndex = 0; + foreach (var rt in resultTypes) + { + int caseIndex = 0; + int combIndex = 0; + + string typeName = $"FemDesign.Results.{rt}, FemDesign.Core"; + Type resultType = Type.GetType(typeName); + if (resultType == null) + throw new ArgumentException($"Class object of name '{typeName}' does not exist!"); + + // Helper to invoke private generic methods on FemDesignConnection + List InvokeGeneric(string methodName, Type genericType, object[] args) + { + var mi = conn.GetType().GetMethod(methodName, BindingFlags.Instance | BindingFlags.NonPublic).MakeGenericMethod(genericType); + var res = (IEnumerable)mi.Invoke(conn, args); + return res.ToList(); + } + + if (!comboNames.Any() && !caseNames.Any()) + { + var res = InvokeGeneric(nameof(FemDesign.FemDesignConnection._getResults), resultType, new object[] { units, options, elements, true }); + resultsTree.AddRange(res, new GH_Path(resIndex)); + } + + if (caseNames.Any()) + { + foreach (var c in caseNames) + { + var res = InvokeGeneric(nameof(FemDesign.FemDesignConnection._getLoadCaseResults), resultType, new object[] { new List { c }, elements, units, options, true }); + resultsTree.AddRange(res, new GH_Path(resIndex, caseIndex)); + caseIndex++; + } + } + + if (comboNames.Any()) + { + combIndex = caseIndex; + foreach (var cmb in comboNames) + { + var res = InvokeGeneric(nameof(FemDesign.FemDesignConnection._getLoadCombinationResults), resultType, new object[] { new List { cmb }, elements, units, options, true }); + resultsTree.AddRange(res, new GH_Path(resIndex, combIndex)); + combIndex++; + } + } + + resIndex++; + } + } + finally + { + conn.OnOutput -= onOutput; + } + }).GetAwaiter().GetResult(); + + success = true; + } + catch (Exception ex) + { + log.Add(ex.InnerException?.Message ?? ex.Message); + success = false; + } + + DA.SetData("Connection", new object()); + DA.SetDataTree(1, resultsTree); + DA.SetData("Success", success); + DA.SetDataList("Log", log); + } + + protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_readresult; + public override Guid ComponentGuid => new Guid("D9B9F6B4-62C3-4D62-9E6B-9E2B1D5B2C8A"); + public override GH_Exposure Exposure => GH_Exposure.tertiary; + } +} + + + From 5a8cc550e1b9b39279a1587123316eb166bb73fd Mon Sep 17 00:00:00 2001 From: MP Date: Thu, 25 Sep 2025 17:40:43 +0200 Subject: [PATCH 07/54] =?UTF-8?q?=F0=9F=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FemDesign.Grasshopper.csproj | 3 + .../Pipe/FemDesignGetModel_HubBased.cs | 75 +++++++++++++ .../Pipe/FemDesignGetQuantities_HubBased.cs | 94 ++++++++++++++++ .../Pipe/FemDesignResultFromBsc_HubBased.cs | 103 ++++++++++++++++++ 4 files changed, 275 insertions(+) create mode 100644 FemDesign.Grasshopper/Pipe/FemDesignGetModel_HubBased.cs create mode 100644 FemDesign.Grasshopper/Pipe/FemDesignGetQuantities_HubBased.cs create mode 100644 FemDesign.Grasshopper/Pipe/FemDesignResultFromBsc_HubBased.cs diff --git a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj index 56cc998d0..1be1e8d83 100644 --- a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj +++ b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj @@ -242,6 +242,9 @@ + + + diff --git a/FemDesign.Grasshopper/Pipe/FemDesignGetModel_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignGetModel_HubBased.cs new file mode 100644 index 000000000..37d37e942 --- /dev/null +++ b/FemDesign.Grasshopper/Pipe/FemDesignGetModel_HubBased.cs @@ -0,0 +1,75 @@ +// https://strusoft.com/ +using System; +using System.Collections.Generic; +using Grasshopper.Kernel; + +namespace FemDesign.Grasshopper +{ + /// + /// Get the current open model using the shared hub connection (standard GH_Component, UI-blocking). + /// + public class FemDesignGetModel_HubBased : FEM_Design_API_Component + { + public FemDesignGetModel_HubBased() : base("FEM-Design.GetModel (Hub)", "GetModel", "Get the current open model in FEM-Design using shared connection.", CategoryName.Name(), SubCategoryName.CatHub()) + { + } + + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + } + + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddGenericParameter("Model", "Model", "Current FEM-Design model.", GH_ParamAccess.item); + pManager.AddBooleanParameter("Success", "Success", "True if succeeded.", GH_ParamAccess.item); + pManager.AddTextParameter("Log", "Log", "Operation log.", GH_ParamAccess.list); + } + + protected override void SolveInstance(IGH_DataAccess DA) + { + object handle = null; + DA.GetData("Connection", ref handle); + + var log = new List(); + bool success = false; + Model model = null; + + try + { + FemDesignConnectionHub.InvokeAsync(conn => + { + void onOutput(string s) { log.Add(s); } + conn.OnOutput += onOutput; + try + { + model = conn.GetModel(); + } + finally + { + conn.OnOutput -= onOutput; + } + }).GetAwaiter().GetResult(); + + success = true; + } + catch (Exception ex) + { + log.Add(ex.Message); + success = false; + } + + DA.SetData("Connection", new object()); + DA.SetData("Model", model); + DA.SetData("Success", success); + DA.SetDataList("Log", log); + } + + protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_readresult; + public override Guid ComponentGuid => new Guid("B6A1C36B-2B99-4B9F-9C48-8F3D6A9F1E2C"); + public override GH_Exposure Exposure => GH_Exposure.primary; + } +} + + diff --git a/FemDesign.Grasshopper/Pipe/FemDesignGetQuantities_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignGetQuantities_HubBased.cs new file mode 100644 index 000000000..14141b3ba --- /dev/null +++ b/FemDesign.Grasshopper/Pipe/FemDesignGetQuantities_HubBased.cs @@ -0,0 +1,94 @@ +// https://strusoft.com/ +using System; +using System.Collections.Generic; +using System.Reflection; +using Grasshopper.Kernel; + +namespace FemDesign.Grasshopper +{ + /// + /// Get quantities using the shared hub connection (standard GH_Component, UI-blocking). + /// Mirrors PipeGetQuantities behavior. + /// + public class FemDesignGetQuantities_HubBased : FEM_Design_API_Component + { + public FemDesignGetQuantities_HubBased() : base("FEM-Design.GetQuantities (Hub)", "GetQuantities", "Get quantities from current model using shared connection.", CategoryName.Name(), SubCategoryName.CatHub()) + { + } + + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddTextParameter("QuantityType", "QuantityType", "Quantity type name matching FemDesign.Results classes.", GH_ParamAccess.item); + pManager.AddGenericParameter("Units", "Units", "Optional result units.", GH_ParamAccess.item); + pManager[pManager.ParamCount - 1].Optional = true; + } + + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddGenericParameter("Quantities", "Quantities", "Quantities.", GH_ParamAccess.list); + pManager.AddBooleanParameter("Success", "Success", "True if succeeded.", GH_ParamAccess.item); + pManager.AddTextParameter("Log", "Log", "Operation log.", GH_ParamAccess.list); + } + + protected override void SolveInstance(IGH_DataAccess DA) + { + object handle = null; + DA.GetData("Connection", ref handle); + + string resultTypeName = null; + DA.GetData("QuantityType", ref resultTypeName); + + Results.UnitResults units = null; + DA.GetData("Units", ref units); + + var log = new List(); + bool success = false; + var results = new List(); + + try + { + FemDesignConnectionHub.InvokeAsync(conn => + { + void onOutput(string s) { log.Add(s); } + conn.OnOutput += onOutput; + try + { + if (string.IsNullOrWhiteSpace(resultTypeName)) throw new Exception("'QuantityType' is null or empty."); + string typeName = $"FemDesign.Results.{resultTypeName}, FemDesign.Core"; + Type resultType = Type.GetType(typeName); + if (resultType == null) throw new ArgumentException($"Class object of name '{typeName}' does not exist!"); + + var methodName = nameof(FemDesign.FemDesignConnection._getQuantities); + var mi = conn.GetType().GetMethod(methodName, BindingFlags.Instance | BindingFlags.NonPublic).MakeGenericMethod(resultType); + var res = (IEnumerable)mi.Invoke(conn, new object[] { units, true }); + results.AddRange(res); + } + finally + { + conn.OnOutput -= onOutput; + } + }).GetAwaiter().GetResult(); + + success = true; + } + catch (Exception ex) + { + log.Add(ex.Message); + success = false; + } + + DA.SetData("Connection", new object()); + DA.SetDataList("Quantities", results); + DA.SetData("Success", success); + DA.SetDataList("Log", log); + } + + protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_readresult; + public override Guid ComponentGuid => new Guid("1F2D4C7A-6A39-4F73-9F20-1C5E9A7A4B62"); + public override GH_Exposure Exposure => GH_Exposure.tertiary; + } +} + + diff --git a/FemDesign.Grasshopper/Pipe/FemDesignResultFromBsc_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignResultFromBsc_HubBased.cs new file mode 100644 index 000000000..e5cbc7261 --- /dev/null +++ b/FemDesign.Grasshopper/Pipe/FemDesignResultFromBsc_HubBased.cs @@ -0,0 +1,103 @@ +// https://strusoft.com/ +using System; +using System.Collections.Generic; +using System.Linq; +using Grasshopper.Kernel; +using Grasshopper.Kernel.Data; +using Grasshopper; + +namespace FemDesign.Grasshopper +{ + /// + /// Extract results from a model using a .bsc file with the shared hub connection (standard GH_Component, UI-blocking). + /// + public class FemDesignResultFromBsc_HubBased : FEM_Design_API_Component + { + public FemDesignResultFromBsc_HubBased() : base("FEM-Design.GetResultFromBsc (Hub)", "ResultFromBsc", "Extract results using .bsc with shared connection.", CategoryName.Name(), SubCategoryName.CatHub()) + { + } + + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddTextParameter("BscFilePath", "BscFilePath", "File path(s) to .bsc batch-file(s).", GH_ParamAccess.list); + pManager.AddTextParameter("CsvFilePath", "CsvFilePath", "Optional output .csv path(s). If not set, results are saved next to the .bsc file(s).", GH_ParamAccess.list); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddGenericParameter("Elements", "Elements", "Optional elements filter.", GH_ParamAccess.list); + pManager[pManager.ParamCount - 1].Optional = true; + } + + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddTextParameter("Results", "Results", "Results as data tree (CSV paths).", GH_ParamAccess.tree); + pManager.AddBooleanParameter("Success", "Success", "True if succeeded.", GH_ParamAccess.item); + pManager.AddTextParameter("Log", "Log", "Operation log.", GH_ParamAccess.list); + } + + protected override void SolveInstance(IGH_DataAccess DA) + { + object handle = null; + DA.GetData("Connection", ref handle); + + var bscPaths = new List(); + DA.GetDataList("BscFilePath", bscPaths); + + var csvPaths = new List(); + DA.GetDataList("CsvFilePath", csvPaths); + + var elements = new List(); + DA.GetDataList("Elements", elements); + + var log = new List(); + bool success = false; + var resultsTree = new DataTree(); + + try + { + FemDesignConnectionHub.InvokeAsync(conn => + { + void onOutput(string s) { log.Add(s); } + conn.OnOutput += onOutput; + try + { + if (csvPaths == null || csvPaths.Count == 0) + { + csvPaths = bscPaths.Select(b => System.IO.Path.ChangeExtension(b, "csv")).ToList(); + } + + var results = bscPaths.Zip(csvPaths, (bsc, csv) => conn.GetResultsFromBsc(bsc, csv, elements)); + int i = 0; + foreach (var r in results) + { + resultsTree.AddRange(r, new GH_Path(i)); + i++; + } + } + finally + { + conn.OnOutput -= onOutput; + } + }).GetAwaiter().GetResult(); + + success = true; + } + catch (Exception ex) + { + log.Add(ex.Message); + success = false; + } + + DA.SetData("Connection", new object()); + DA.SetDataTree(1, resultsTree); + DA.SetData("Success", success); + DA.SetDataList("Log", log); + } + + protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_readresult; + public override Guid ComponentGuid => new Guid("5B83B0F7-2A6A-4F0C-82D1-1A2A7CC9E4DA"); + public override GH_Exposure Exposure => GH_Exposure.tertiary; + } +} + + From b7c3ce49b662faa6a84d0acbeb86a7d582c27bde Mon Sep 17 00:00:00 2001 From: MP Date: Mon, 6 Oct 2025 12:23:58 +0200 Subject: [PATCH 08/54] =?UTF-8?q?=F0=9F=91=B7=20multi=20pipe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FemDesign.Grasshopper.csproj | 2 + .../Helpers/FemDesignConnectionHub.cs | 103 ++++++++---------- .../Helpers/FemDesignHubHandle.cs | 23 ++++ .../Pipe/FemDesignConnection_HubBased.cs | 26 ++++- .../Pipe/FemDesignDisconnect_HubBased.cs | 60 ++++++++++ .../Pipe/FemDesignGetModel_HubBased.cs | 9 +- .../Pipe/FemDesignGetQuantities_HubBased.cs | 9 +- .../Pipe/FemDesignOpen_HubBased.cs | 6 +- .../Pipe/FemDesignResultFromBsc_HubBased.cs | 9 +- .../Pipe/FemDesignRunAnalysis_HubBased.cs | 6 +- .../Pipe/FemDesignRunDesign_HubBased.cs | 8 +- .../Pipe/FemDesignSaveAs_HubBased.cs | 8 +- .../FemDesignSaveDocumentation_HubBased.cs | 8 +- .../Pipe/FemDesignSetCfg_HubBased.cs | 6 +- .../Pipe/FemDesignSetGlobalCfg_HubBased.cs | 8 +- .../Pipe/PipeReadCaseCombResults_HubBased.cs | 6 +- 16 files changed, 197 insertions(+), 100 deletions(-) create mode 100644 FemDesign.Grasshopper/Helpers/FemDesignHubHandle.cs create mode 100644 FemDesign.Grasshopper/Pipe/FemDesignDisconnect_HubBased.cs diff --git a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj index 1be1e8d83..db88e837b 100644 --- a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj +++ b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj @@ -208,6 +208,7 @@ + @@ -245,6 +246,7 @@ + diff --git a/FemDesign.Grasshopper/Helpers/FemDesignConnectionHub.cs b/FemDesign.Grasshopper/Helpers/FemDesignConnectionHub.cs index cabb49427..e75f4c1b2 100644 --- a/FemDesign.Grasshopper/Helpers/FemDesignConnectionHub.cs +++ b/FemDesign.Grasshopper/Helpers/FemDesignConnectionHub.cs @@ -7,98 +7,87 @@ namespace FemDesign.Grasshopper { /// - /// Process-wide shared FemDesignConnection with serialized access on a dedicated worker thread. - /// Ensures stable threading across iterations to avoid UI deadlocks. + /// Manages one or more FemDesignConnection instances with serialized access per instance + /// on dedicated worker threads. Ensures stable threading across iterations to avoid UI deadlocks. /// public static class FemDesignConnectionHub { - private static FemDesign.FemDesignConnection _connection; - private static volatile bool _configured; - private static string _fdDir; - private static bool _minimized; - private static string _outputDir; - private static bool _deleteOutput; - - private static Thread _workerThread; - private static readonly BlockingCollection _queue = new BlockingCollection(); - private static readonly object _startLock = new object(); - - public static void Configure(string fdDir, bool minimized, string outputDir = null, bool deleteOutput = false) + private class Instance { - _fdDir = fdDir; - _minimized = minimized; - _outputDir = outputDir; - _deleteOutput = deleteOutput; - _configured = true; - EnsureStarted(); + public FemDesign.FemDesignConnection Connection; + public Thread WorkerThread; + public BlockingCollection Queue = new BlockingCollection(); } - private static void EnsureStarted() + private static readonly System.Collections.Concurrent.ConcurrentDictionary _instances = new System.Collections.Concurrent.ConcurrentDictionary(); + + /// + /// Create a new FemDesign connection instance and return its handle. + /// + public static Guid Create(string fdDir, bool minimized, string outputDir = null, bool deleteOutput = false) { - if (_workerThread != null) return; - lock (_startLock) + var id = Guid.NewGuid(); + var inst = new Instance(); + inst.WorkerThread = new Thread(() => { - if (_workerThread != null) return; - if (!_configured) throw new InvalidOperationException("FemDesignConnectionHub not configured."); - - _workerThread = new Thread(() => + inst.Connection = new FemDesign.FemDesignConnection(fdDir, minimized, outputDir: outputDir, tempOutputDir: deleteOutput); + foreach (var action in inst.Queue.GetConsumingEnumerable()) { - _connection = new FemDesign.FemDesignConnection(_fdDir, _minimized, outputDir: _outputDir, tempOutputDir: _deleteOutput); - foreach (var action in _queue.GetConsumingEnumerable()) - { - try { action(); } - catch { /* Swallow here; exceptions are delivered via TaskCompletionSource */ } - } - }); - _workerThread.IsBackground = true; - _workerThread.Name = "FemDesignConnectionHub-Worker"; - _workerThread.Start(); - } + try { action(); } + catch { /* Swallow here; exceptions are delivered via TaskCompletionSource */ } + } + }); + inst.WorkerThread.IsBackground = true; + inst.WorkerThread.Name = $"FemDesignConnectionHub-Worker-{id}"; + if (!_instances.TryAdd(id, inst)) throw new InvalidOperationException("Failed to create FemDesign connection instance."); + inst.WorkerThread.Start(); + return id; } - public static Task InvokeAsync(Func func) + private static Instance Require(Guid id) { - if (_workerThread == null) EnsureStarted(); + if (!_instances.TryGetValue(id, out var inst)) throw new InvalidOperationException("Invalid or disposed FemDesign connection handle."); + return inst; + } + + public static Task InvokeAsync(Guid id, Func func) + { + var inst = Require(id); var tcs = new TaskCompletionSource(); - _queue.Add(() => + inst.Queue.Add(() => { - try { tcs.SetResult(func(_connection)); } + try { tcs.SetResult(func(inst.Connection)); } catch (Exception ex) { tcs.SetException(ex); } }); return tcs.Task; } - public static Task InvokeAsync(Action action) + public static Task InvokeAsync(Guid id, Action action) { - if (_workerThread == null) EnsureStarted(); + var inst = Require(id); var tcs = new TaskCompletionSource(); - _queue.Add(() => + inst.Queue.Add(() => { - try { action(_connection); tcs.SetResult(true); } + try { action(inst.Connection); tcs.SetResult(true); } catch (Exception ex) { tcs.SetException(ex); } }); return tcs.Task; } - public static Task DisposeAsync() + public static Task DisposeAsync(Guid id) { var tcs = new TaskCompletionSource(); - if (_workerThread == null) - { - tcs.SetResult(true); - return tcs.Task; - } + if (!_instances.TryGetValue(id, out var inst)) { tcs.SetResult(true); return tcs.Task; } - _queue.Add(() => + inst.Queue.Add(() => { - try { _connection?.Dispose(); _connection = null; } + try { inst.Connection?.Dispose(); inst.Connection = null; } catch { /* ignore */ } finally { tcs.SetResult(true); } }); - // complete queue after disposing to end thread - _queue.CompleteAdding(); - _workerThread = null; + inst.Queue.CompleteAdding(); + _instances.TryRemove(id, out _); return tcs.Task; } } diff --git a/FemDesign.Grasshopper/Helpers/FemDesignHubHandle.cs b/FemDesign.Grasshopper/Helpers/FemDesignHubHandle.cs new file mode 100644 index 000000000..85232b02c --- /dev/null +++ b/FemDesign.Grasshopper/Helpers/FemDesignHubHandle.cs @@ -0,0 +1,23 @@ +// https://strusoft.com/ +using System; + +namespace FemDesign.Grasshopper +{ + /// + /// Lightweight handle object that references a specific FemDesignConnectionHub instance. + /// + public class FemDesignHubHandle + { + public Guid Id { get; } + + public FemDesignHubHandle(Guid id) + { + Id = id; + } + + public override string ToString() + { + return $"FemDesignHubHandle: {Id}"; + } + } +} \ No newline at end of file diff --git a/FemDesign.Grasshopper/Pipe/FemDesignConnection_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignConnection_HubBased.cs index 71be703b8..422c29279 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignConnection_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignConnection_HubBased.cs @@ -1,6 +1,7 @@ // https://strusoft.com/ using System; using System.Collections.Generic; +using Grasshopper; using Grasshopper.Kernel; namespace FemDesign.Grasshopper @@ -10,6 +11,7 @@ namespace FemDesign.Grasshopper /// public class FemDesignConnection_HubBased : FEM_Design_API_Component { + private Guid _handle = Guid.Empty; public FemDesignConnection_HubBased() : base("FEM-Design.Connection (Hub)", "Connection", "Create or configure a shared FEM-Design connection.", CategoryName.Name(), SubCategoryName.CatHub()) { } @@ -62,10 +64,28 @@ protected override void SolveInstance(IGH_DataAccess DA) System.IO.Directory.SetCurrentDirectory(currentDir); } - FemDesignConnectionHub.Configure(fdDir, minimized, outputDir, deleteOutput); + if (_handle == Guid.Empty) + { + _handle = FemDesignConnectionHub.Create(fdDir, minimized, outputDir, deleteOutput); + } + + // Emit a handle object to wire downstream + DA.SetData("Connection", new FemDesign.Grasshopper.FemDesignHubHandle(_handle)); + } + + public override void RemovedFromDocument(GH_Document document) + { + try + { + if (_handle != Guid.Empty) + { + FemDesignConnectionHub.DisposeAsync(_handle).GetAwaiter().GetResult(); + _handle = Guid.Empty; + } + } + catch { } - // Emit a simple token/handle to wire downstream (no real object needed since hub is static) - DA.SetData("Connection", new object()); + base.RemovedFromDocument(document); } protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_Connection; diff --git a/FemDesign.Grasshopper/Pipe/FemDesignDisconnect_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignDisconnect_HubBased.cs new file mode 100644 index 000000000..16868ba01 --- /dev/null +++ b/FemDesign.Grasshopper/Pipe/FemDesignDisconnect_HubBased.cs @@ -0,0 +1,60 @@ +// https://strusoft.com/ +using System; +using System.Collections.Generic; +using Grasshopper.Kernel; + +namespace FemDesign.Grasshopper +{ + /// + /// Disconnects a specific FEM-Design hub connection (standard GH_Component, UI-blocking). + /// + public class FemDesignDisconnect_HubBased : FEM_Design_API_Component + { + public FemDesignDisconnect_HubBased() : base("FEM-Design.Disconnect (Hub)", "Disconnect", "Close the FEM-Design instance associated with the given hub connection.", CategoryName.Name(), SubCategoryName.CatHub()) + { + } + + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Hub connection handle to disconnect.", GH_ParamAccess.item); + } + + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Same handle (now disposed).", GH_ParamAccess.item); + pManager.AddBooleanParameter("Success", "Success", "True if disconnect succeeded.", GH_ParamAccess.item); + pManager.AddTextParameter("Log", "Log", "Operation log.", GH_ParamAccess.list); + } + + protected override void SolveInstance(IGH_DataAccess DA) + { + FemDesign.Grasshopper.FemDesignHubHandle handle = null; + DA.GetData("Connection", ref handle); + + var log = new List(); + bool success = false; + + try + { + if (handle == null) throw new Exception("'Connection' handle is null."); + FemDesignConnectionHub.DisposeAsync(handle.Id).GetAwaiter().GetResult(); + success = true; + } + catch (Exception ex) + { + log.Add(ex.Message); + success = false; + } + + DA.SetData("Connection", handle); + DA.SetData("Success", success); + DA.SetDataList("Log", log); + } + + protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_Connection; + public override Guid ComponentGuid => new Guid("D1D3C1D9-0E4F-4A5E-8C6B-3C1A4E2B9D61"); + public override GH_Exposure Exposure => GH_Exposure.secondary; + } +} + + diff --git a/FemDesign.Grasshopper/Pipe/FemDesignGetModel_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignGetModel_HubBased.cs index 37d37e942..1bb960cdd 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignGetModel_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignGetModel_HubBased.cs @@ -29,8 +29,8 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override void SolveInstance(IGH_DataAccess DA) { - object handle = null; - DA.GetData("Connection", ref handle); + FemDesign.Grasshopper.FemDesignHubHandle handle = null; + DA.GetData("Connection", ref handle); var log = new List(); bool success = false; @@ -38,7 +38,7 @@ protected override void SolveInstance(IGH_DataAccess DA) try { - FemDesignConnectionHub.InvokeAsync(conn => + FemDesignConnectionHub.InvokeAsync(handle.Id, conn => { void onOutput(string s) { log.Add(s); } conn.OnOutput += onOutput; @@ -60,7 +60,7 @@ protected override void SolveInstance(IGH_DataAccess DA) success = false; } - DA.SetData("Connection", new object()); + DA.SetData("Connection", handle); DA.SetData("Model", model); DA.SetData("Success", success); DA.SetDataList("Log", log); @@ -73,3 +73,4 @@ protected override void SolveInstance(IGH_DataAccess DA) } + diff --git a/FemDesign.Grasshopper/Pipe/FemDesignGetQuantities_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignGetQuantities_HubBased.cs index 14141b3ba..3d5858429 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignGetQuantities_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignGetQuantities_HubBased.cs @@ -34,8 +34,8 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override void SolveInstance(IGH_DataAccess DA) { - object handle = null; - DA.GetData("Connection", ref handle); + FemDesign.Grasshopper.FemDesignHubHandle handle = null; + DA.GetData("Connection", ref handle); string resultTypeName = null; DA.GetData("QuantityType", ref resultTypeName); @@ -49,7 +49,7 @@ protected override void SolveInstance(IGH_DataAccess DA) try { - FemDesignConnectionHub.InvokeAsync(conn => + FemDesignConnectionHub.InvokeAsync(handle.Id, conn => { void onOutput(string s) { log.Add(s); } conn.OnOutput += onOutput; @@ -79,7 +79,7 @@ protected override void SolveInstance(IGH_DataAccess DA) success = false; } - DA.SetData("Connection", new object()); + DA.SetData("Connection", handle); DA.SetDataList("Quantities", results); DA.SetData("Success", success); DA.SetDataList("Log", log); @@ -92,3 +92,4 @@ protected override void SolveInstance(IGH_DataAccess DA) } + diff --git a/FemDesign.Grasshopper/Pipe/FemDesignOpen_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignOpen_HubBased.cs index 9a4edd664..0840ca013 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignOpen_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignOpen_HubBased.cs @@ -30,7 +30,7 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override void SolveInstance(IGH_DataAccess DA) { - object handle = null; + FemDesignHubHandle handle = null; DA.GetData("Connection", ref handle); dynamic modelIn = null; @@ -43,7 +43,7 @@ protected override void SolveInstance(IGH_DataAccess DA) try { // Block UI while invoking hub (acceptable per requirements) - FemDesignConnectionHub.InvokeAsync(conn => + FemDesignConnectionHub.InvokeAsync(handle.Id, conn => { void onOutput(string s) { log.Add(s); } conn.OnOutput += onOutput; @@ -88,7 +88,7 @@ protected override void SolveInstance(IGH_DataAccess DA) success = false; } - DA.SetData("Connection", new object()); + DA.SetData("Connection", handle); DA.SetData("Model", modelOut); DA.SetData("Success", success); DA.SetDataList("Log", log); diff --git a/FemDesign.Grasshopper/Pipe/FemDesignResultFromBsc_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignResultFromBsc_HubBased.cs index e5cbc7261..6010e5bf9 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignResultFromBsc_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignResultFromBsc_HubBased.cs @@ -37,8 +37,8 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override void SolveInstance(IGH_DataAccess DA) { - object handle = null; - DA.GetData("Connection", ref handle); + FemDesignHubHandle handle = null; + DA.GetData("Connection", ref handle); var bscPaths = new List(); DA.GetDataList("BscFilePath", bscPaths); @@ -55,7 +55,7 @@ protected override void SolveInstance(IGH_DataAccess DA) try { - FemDesignConnectionHub.InvokeAsync(conn => + FemDesignConnectionHub.InvokeAsync(handle.Id, conn => { void onOutput(string s) { log.Add(s); } conn.OnOutput += onOutput; @@ -88,7 +88,7 @@ protected override void SolveInstance(IGH_DataAccess DA) success = false; } - DA.SetData("Connection", new object()); + DA.SetData("Connection", handle); DA.SetDataTree(1, resultsTree); DA.SetData("Success", success); DA.SetDataList("Log", log); @@ -101,3 +101,4 @@ protected override void SolveInstance(IGH_DataAccess DA) } + diff --git a/FemDesign.Grasshopper/Pipe/FemDesignRunAnalysis_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignRunAnalysis_HubBased.cs index 9eb5c50c5..27c7dd529 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignRunAnalysis_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignRunAnalysis_HubBased.cs @@ -30,7 +30,7 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override void SolveInstance(IGH_DataAccess DA) { - object handle = null; + FemDesign.Grasshopper.FemDesignHubHandle handle = null; DA.GetData("Connection", ref handle); Analysis analysis = null; @@ -41,7 +41,7 @@ protected override void SolveInstance(IGH_DataAccess DA) try { - FemDesignConnectionHub.InvokeAsync(conn => + FemDesignConnectionHub.InvokeAsync(handle.Id, conn => { void onOutput(string s) { log.Add(s); } conn.OnOutput += onOutput; @@ -64,7 +64,7 @@ protected override void SolveInstance(IGH_DataAccess DA) success = false; } - DA.SetData("Connection", new object()); + DA.SetData("Connection", handle); DA.SetData("Success", success); DA.SetDataList("Log", log); } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignRunDesign_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignRunDesign_HubBased.cs index fe2f18a87..a8ea4b43b 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignRunDesign_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignRunDesign_HubBased.cs @@ -32,8 +32,8 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override void SolveInstance(IGH_DataAccess DA) { - object handle = null; - DA.GetData("Connection", ref handle); + FemDesignHubHandle handle = null; + DA.GetData("Connection", ref handle); Design design = null; DA.GetData("Design", ref design); @@ -46,7 +46,7 @@ protected override void SolveInstance(IGH_DataAccess DA) try { - FemDesignConnectionHub.InvokeAsync(conn => + FemDesignConnectionHub.InvokeAsync(handle.Id, conn => { void onOutput(string s) { log.Add(s); } conn.OnOutput += onOutput; @@ -70,7 +70,7 @@ protected override void SolveInstance(IGH_DataAccess DA) success = false; } - DA.SetData("Connection", new object()); + DA.SetData("Connection", handle); DA.SetData("Success", success); DA.SetDataList("Log", log); } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignSaveAs_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignSaveAs_HubBased.cs index 58758d198..3831c5038 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignSaveAs_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignSaveAs_HubBased.cs @@ -29,8 +29,8 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override void SolveInstance(IGH_DataAccess DA) { - object handle = null; - DA.GetData("Connection", ref handle); + FemDesignHubHandle handle = null; + DA.GetData("Connection", ref handle); string filePath = null; DA.GetData("FilePath", ref filePath); @@ -40,7 +40,7 @@ protected override void SolveInstance(IGH_DataAccess DA) try { - FemDesignConnectionHub.InvokeAsync(conn => + FemDesignConnectionHub.InvokeAsync(handle.Id, conn => { void onOutput(string s) { log.Add(s); } conn.OnOutput += onOutput; @@ -63,7 +63,7 @@ protected override void SolveInstance(IGH_DataAccess DA) success = false; } - DA.SetData("Connection", new object()); + DA.SetData("Connection", handle); DA.SetData("Success", success); DA.SetDataList("Log", log); } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignSaveDocumentation_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignSaveDocumentation_HubBased.cs index 957222190..014318958 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignSaveDocumentation_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignSaveDocumentation_HubBased.cs @@ -31,8 +31,8 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override void SolveInstance(IGH_DataAccess DA) { - object handle = null; - DA.GetData("Connection", ref handle); + FemDesignHubHandle handle = null; + DA.GetData("Connection", ref handle); string docx = null; DA.GetData("Docx", ref docx); @@ -45,7 +45,7 @@ protected override void SolveInstance(IGH_DataAccess DA) try { - FemDesignConnectionHub.InvokeAsync(conn => + FemDesignConnectionHub.InvokeAsync(handle.Id, conn => { void onOutput(string s) { log.Add(s); } conn.OnOutput += onOutput; @@ -68,7 +68,7 @@ protected override void SolveInstance(IGH_DataAccess DA) success = false; } - DA.SetData("Connection", new object()); + DA.SetData("Connection", handle); DA.SetData("Success", success); DA.SetDataList("Log", log); } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignSetCfg_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignSetCfg_HubBased.cs index 4745751e2..f1e172ec8 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignSetCfg_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignSetCfg_HubBased.cs @@ -32,7 +32,7 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override void SolveInstance(IGH_DataAccess DA) { - object handle = null; + FemDesignHubHandle handle = null; DA.GetData("Connection", ref handle); var cfg = new List(); @@ -43,7 +43,7 @@ protected override void SolveInstance(IGH_DataAccess DA) try { - FemDesignConnectionHub.InvokeAsync(conn => + FemDesignConnectionHub.InvokeAsync(handle.Id, conn => { void onOutput(string s) { log.Add(s); } conn.OnOutput += onOutput; @@ -94,7 +94,7 @@ protected override void SolveInstance(IGH_DataAccess DA) success = false; } - DA.SetData("Connection", new object()); + DA.SetData("Connection", handle); DA.SetData("Success", success); DA.SetDataList("Log", log); } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignSetGlobalCfg_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignSetGlobalCfg_HubBased.cs index 56eb6f2f1..a38860e4d 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignSetGlobalCfg_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignSetGlobalCfg_HubBased.cs @@ -32,8 +32,8 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override void SolveInstance(IGH_DataAccess DA) { - object handle = null; - DA.GetData("Connection", ref handle); + FemDesignHubHandle handle = null; + DA.GetData("Connection", ref handle); var globCfg = new List(); DA.GetDataList("GlobalConfig", globCfg); @@ -43,7 +43,7 @@ protected override void SolveInstance(IGH_DataAccess DA) try { - FemDesignConnectionHub.InvokeAsync(conn => + FemDesignConnectionHub.InvokeAsync(handle.Id, conn => { void onOutput(string s) { log.Add(s); } conn.OnOutput += onOutput; @@ -94,7 +94,7 @@ protected override void SolveInstance(IGH_DataAccess DA) success = false; } - DA.SetData("Connection", new object()); + DA.SetData("Connection", handle); DA.SetData("Success", success); DA.SetDataList("Log", log); } diff --git a/FemDesign.Grasshopper/Pipe/PipeReadCaseCombResults_HubBased.cs b/FemDesign.Grasshopper/Pipe/PipeReadCaseCombResults_HubBased.cs index 4c95c0c83..af7d727aa 100644 --- a/FemDesign.Grasshopper/Pipe/PipeReadCaseCombResults_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/PipeReadCaseCombResults_HubBased.cs @@ -47,7 +47,7 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override void SolveInstance(IGH_DataAccess DA) { - object handle = null; + FemDesignHubHandle handle = null; DA.GetData("Connection", ref handle); var resultTypes = new List(); @@ -74,7 +74,7 @@ protected override void SolveInstance(IGH_DataAccess DA) try { - FemDesignConnectionHub.InvokeAsync(conn => + FemDesignConnectionHub.InvokeAsync(handle.Id, conn => { void onOutput(string s) { log.Add(s); } conn.OnOutput += onOutput; @@ -143,7 +143,7 @@ protected override void SolveInstance(IGH_DataAccess DA) success = false; } - DA.SetData("Connection", new object()); + DA.SetData("Connection", handle); DA.SetDataTree(1, resultsTree); DA.SetData("Success", success); DA.SetDataList("Log", log); From d84457292ef8a347a45e779f504d0ef648849aa6 Mon Sep 17 00:00:00 2001 From: MP Date: Wed, 12 Nov 2025 17:21:43 +0100 Subject: [PATCH 09/54] =?UTF-8?q?=F0=9F=94=A5=20stage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FemDesign.Core/Bars/Bar.cs | 14 +++++++++++++- FemDesign.Core/Model/Model.cs | 11 +++++++---- FemDesign.Core/Shells/Slab.cs | 14 +++++++++++++- FemDesign.Core/Shells/SlabPart.cs | 5 ++++- 4 files changed, 37 insertions(+), 7 deletions(-) diff --git a/FemDesign.Core/Bars/Bar.cs b/FemDesign.Core/Bars/Bar.cs index 375b2fe84..974e37561 100644 --- a/FemDesign.Core/Bars/Bar.cs +++ b/FemDesign.Core/Bars/Bar.cs @@ -96,7 +96,19 @@ public Geometry.Edge Edge public BarType Type { get; set; } [XmlAttribute("stage")] - public int StageId { get; set; } = 1; + public int _stageId = 1; + + [XmlIgnore] + public int StageId + { + get { return _stageId; } + set + { + _stageId = value; + if (this.BarPart != null) + this.BarPart.StageId = value; + } + } [XmlElement("bar_part", Order = 1)] public BarPart _barPart; // bar_part_type diff --git a/FemDesign.Core/Model/Model.cs b/FemDesign.Core/Model/Model.cs index 828f0a9d6..dfcfb1b63 100644 --- a/FemDesign.Core/Model/Model.cs +++ b/FemDesign.Core/Model/Model.cs @@ -103,16 +103,19 @@ public partial class Model [XmlElement("bolt_types", Order = 18)] public List BoltTypes { get; set; } - [XmlElement("geometry", Order = 19)] + //[XmlElement("bar_end_lib_type", Order = 19)] + //public List BarEndReleaseTypes { get; set; } + + [XmlElement("geometry", Order = 20)] public StruSoft.Interop.StruXml.Data.DatabaseGeometry Geometry { get; set; } - [XmlElement("user_defined_filter", Order = 20)] + [XmlElement("user_defined_filter", Order = 21)] public List UserDefinedFilters { get; set; } - [XmlElement("user_defined_views", Order = 21)] + [XmlElement("user_defined_views", Order = 22)] public StruSoft.Interop.StruXml.Data.DatabaseUser_defined_views UserDefinedViews { get; set; } - [XmlElement("end", Order = 22)] + [XmlElement("end", Order = 23)] public string End { get; set; } internal static bool HasResults(string filePath) diff --git a/FemDesign.Core/Shells/Slab.cs b/FemDesign.Core/Shells/Slab.cs index 595316520..10561b4d5 100644 --- a/FemDesign.Core/Shells/Slab.cs +++ b/FemDesign.Core/Shells/Slab.cs @@ -47,7 +47,19 @@ protected override int GetUniqueInstanceCount() // This method body must be the public SlabType Type { get; set; } [XmlAttribute("stage")] - public int StageId { get; set; } = 1; + public int _stageId; + + [XmlIgnore] + public int StageId + { + get { return _stageId; } + set + { + _stageId = value; + if(this.SlabPart != null) + this.SlabPart.StageId = value; + } + } [XmlElement("slab_part", Order = 1)] public SlabPart _slabPart; diff --git a/FemDesign.Core/Shells/SlabPart.cs b/FemDesign.Core/Shells/SlabPart.cs index 2803b0c5d..c9d7bac93 100644 --- a/FemDesign.Core/Shells/SlabPart.cs +++ b/FemDesign.Core/Shells/SlabPart.cs @@ -1,5 +1,6 @@ // https://strusoft.com/ +using FemDesign.GenericClasses; using System; using System.Collections.Generic; using System.Globalization; @@ -11,7 +12,7 @@ namespace FemDesign.Shells /// slab_part_type /// [System.Serializable] - public partial class SlabPart: NamedEntityPartBase + public partial class SlabPart: NamedEntityPartBase, IStageElement { private static int _plateInstance = 0; private static int _wallInstance = 0; @@ -99,6 +100,8 @@ public double MeshSize get {return this._meshSize;} set {this._meshSize = RestrictedDouble.NonNegMax_1e20(value);} } + [XmlAttribute("stage")] + public int StageId { get; set; } = 1; //[XmlElement("contour", Order = 1)] //public List _contours; //[XmlIgnore] From 97fb8ab73faff4f230bd4585559891182f660d7c Mon Sep 17 00:00:00 2001 From: MP Date: Wed, 12 Nov 2025 17:22:30 +0100 Subject: [PATCH 10/54] =?UTF-8?q?=F0=9F=92=84=20category=20reinforcement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FemDesign.Grasshopper/Helpers/_GhRibbonLayout.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/FemDesign.Grasshopper/Helpers/_GhRibbonLayout.cs b/FemDesign.Grasshopper/Helpers/_GhRibbonLayout.cs index 81bfedcd4..70d37f48d 100644 --- a/FemDesign.Grasshopper/Helpers/_GhRibbonLayout.cs +++ b/FemDesign.Grasshopper/Helpers/_GhRibbonLayout.cs @@ -78,6 +78,11 @@ public static string Cat7b() return new string(' ', 1) + "Results"; } + public static string CatReinforcement() + { + return "Reinforcement"; + } + public static string Cat8() { return "StruSoft - LiveLink"; From 4a1ac535f6e1a575b1dd567e7e18f64ae72c53e7 Mon Sep 17 00:00:00 2001 From: MP Date: Thu, 13 Nov 2025 17:37:52 +0100 Subject: [PATCH 11/54] =?UTF-8?q?=F0=9F=91=B7=20bended=20bar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reinforcement/PunchingReinforcement.cs | 2 +- .../FemDesign.Grasshopper.csproj | 11 ++ .../Properties/Resources.Designer.cs | 60 +++++++++ .../Properties/Resources.resx | 18 +++ .../Reinforcement/Punching/BendedBar.cs | 88 +++++++++++++ .../Reinforcement/Punching/PunchingBase.cs | 120 +++++++++++++++++ .../PunchingReinforcementAddToSlab.cs | 46 +++++++ .../Reinforcement/Punching/StirrupCircular.cs | 122 ++++++++++++++++++ .../Reinforcement/Punching/StudRail.cs | 105 +++++++++++++++ .../Resources/icons/BendedBar.png | Bin 0 -> 1312 bytes .../Resources/icons/Punching.png | Bin 0 -> 444 bytes .../Resources/icons/StirrupCircular.png | Bin 0 -> 1550 bytes .../Resources/icons/StirrupOpen.png | Bin 0 -> 1165 bytes .../Resources/icons/StudRail.png | Bin 0 -> 1343 bytes .../Resources/icons/StudRailPeiko.png | Bin 0 -> 1320 bytes 15 files changed, 571 insertions(+), 1 deletion(-) create mode 100644 FemDesign.Grasshopper/Reinforcement/Punching/BendedBar.cs create mode 100644 FemDesign.Grasshopper/Reinforcement/Punching/PunchingBase.cs create mode 100644 FemDesign.Grasshopper/Reinforcement/Punching/PunchingReinforcementAddToSlab.cs create mode 100644 FemDesign.Grasshopper/Reinforcement/Punching/StirrupCircular.cs create mode 100644 FemDesign.Grasshopper/Reinforcement/Punching/StudRail.cs create mode 100644 FemDesign.Grasshopper/Resources/icons/BendedBar.png create mode 100644 FemDesign.Grasshopper/Resources/icons/Punching.png create mode 100644 FemDesign.Grasshopper/Resources/icons/StirrupCircular.png create mode 100644 FemDesign.Grasshopper/Resources/icons/StirrupOpen.png create mode 100644 FemDesign.Grasshopper/Resources/icons/StudRail.png create mode 100644 FemDesign.Grasshopper/Resources/icons/StudRailPeiko.png diff --git a/FemDesign.Core/Reinforcement/PunchingReinforcement.cs b/FemDesign.Core/Reinforcement/PunchingReinforcement.cs index 85724fcbf..cbff40a77 100644 --- a/FemDesign.Core/Reinforcement/PunchingReinforcement.cs +++ b/FemDesign.Core/Reinforcement/PunchingReinforcement.cs @@ -198,7 +198,7 @@ public int StudsOnRail public string _height; [XmlIgnore] - public double Height + public double? Height { get { diff --git a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj index db88e837b..c41fc97f9 100644 --- a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj +++ b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj @@ -310,8 +310,13 @@ + + + + + @@ -976,7 +981,12 @@ + + + + + @@ -1012,6 +1022,7 @@ + diff --git a/FemDesign.Grasshopper/Properties/Resources.Designer.cs b/FemDesign.Grasshopper/Properties/Resources.Designer.cs index 53d4e6913..ef513eac6 100644 --- a/FemDesign.Grasshopper/Properties/Resources.Designer.cs +++ b/FemDesign.Grasshopper/Properties/Resources.Designer.cs @@ -170,6 +170,16 @@ internal static System.Drawing.Bitmap Bedding { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap BendedBar { + get { + object obj = ResourceManager.GetObject("BendedBar", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -2110,6 +2120,16 @@ internal static System.Drawing.Bitmap PtcStrand { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Punching { + get { + object obj = ResourceManager.GetObject("Punching", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -2620,6 +2640,26 @@ internal static System.Drawing.Bitmap StiffnessPoint { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap StirrupCircular { + get { + object obj = ResourceManager.GetObject("StirrupCircular", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap StirrupOpen { + get { + object obj = ResourceManager.GetObject("StirrupOpen", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -2700,6 +2740,26 @@ internal static System.Drawing.Bitmap Stratum { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap StudRail { + get { + object obj = ResourceManager.GetObject("StudRail", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap StudRailPeiko { + get { + object obj = ResourceManager.GetObject("StudRailPeiko", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/FemDesign.Grasshopper/Properties/Resources.resx b/FemDesign.Grasshopper/Properties/Resources.resx index 6ea27f364..ba56fd75e 100644 --- a/FemDesign.Grasshopper/Properties/Resources.resx +++ b/FemDesign.Grasshopper/Properties/Resources.resx @@ -7420,4 +7420,22 @@ ..\Resources\icons\shearRegion.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\icons\Punching.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons\BendedBar.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons\StirrupCircular.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons\StirrupOpen.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons\StudRail.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons\StudRailPeiko.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/FemDesign.Grasshopper/Reinforcement/Punching/BendedBar.cs b/FemDesign.Grasshopper/Reinforcement/Punching/BendedBar.cs new file mode 100644 index 000000000..227a177fd --- /dev/null +++ b/FemDesign.Grasshopper/Reinforcement/Punching/BendedBar.cs @@ -0,0 +1,88 @@ +using Grasshopper.Kernel; +using Grasshopper.Kernel.Parameters; +using Grasshopper.Kernel.Types; +using FemDesign.Grasshopper.Components.UIWidgets; +using System; + +namespace FemDesign.Grasshopper +{ + public class BendedBar : SubComponent + { + public override string name() => "BendedBar"; + public override string display_name() => "BendedBar"; + + public override void registerEvaluationUnits(EvaluationUnitManager mngr) + { + EvaluationUnit evaluationUnit = new EvaluationUnit(name(), display_name(), ""); + mngr.RegisterUnit(evaluationUnit); + evaluationUnit.Icon = FemDesign.Properties.Resources.BendedBar; + + + evaluationUnit.RegisterInputParam(new Param_Point(), "LocalCenter", "LocalCenter", "Local center point of the bended bar.", GH_ParamAccess.item); + evaluationUnit.RegisterInputParam(new Param_GenericObject(), "ReinforcingMaterial", "ReinforcingMaterial", "Reinforcing material.", GH_ParamAccess.item); + evaluationUnit.RegisterInputParam(new Param_Number(), "Diameter", "Dia", "Diameter of the bended bar. [mm]", GH_ParamAccess.item, new GH_Number(10.0)); + evaluationUnit.RegisterInputParam(new Param_Number(), "TipSectionsLength", "TipLen", "Length of the tip sections. [mm]", GH_ParamAccess.item, new GH_Number(0.0)); + evaluationUnit.RegisterInputParam(new Param_Number(), "MiddleSectionsLength", "MidLen", "Length of the middle sections. [mm]", GH_ParamAccess.item, new GH_Number(0.0)); + evaluationUnit.RegisterInputParam(new Param_Number(), "Height", "Height", "Height of the bended bar. [mm]", GH_ParamAccess.item, new GH_Number(0.0)); + evaluationUnit.RegisterInputParam(new Param_Number(), "Angle", "Angle", "Bend angle. [degrees]", GH_ParamAccess.item, new GH_Number(90.0)); + evaluationUnit.RegisterInputParam(new Param_String(), "Direction", "Dir", "Direction of the bended bar local x-axis. Options: X, Y.", GH_ParamAccess.item, new GH_String("X")); + + + } + + public override void SolveInstance(IGH_DataAccess DA, out string msg, out GH_RuntimeMessageLevel level) + { + msg = ""; + level = GH_RuntimeMessageLevel.Warning; + + Rhino.Geometry.Point3d LocalCenter = new Rhino.Geometry.Point3d(0, 0, 0); + DA.GetData(0, ref LocalCenter); + + var reinforcingMaterial = new FemDesign.Materials.Material(); + DA.GetData(1, ref reinforcingMaterial); + + var diameter = 10.0; + DA.GetData(2, ref diameter); + + var tipSectionsLength = 0.0; + DA.GetData(3, ref tipSectionsLength); + + var middleSectionsLength = 0.0; + DA.GetData(4, ref middleSectionsLength); + + var height = 0.0; + DA.GetData(5, ref height); + + var angle = 90.0; + DA.GetData(6, ref angle); + + angle = angle * Math.PI / 180.0; + + if (angle < 0 || angle > Math.PI / 2) + { + msg = "Angle must be between 0 and 90 degrees."; + level = GH_RuntimeMessageLevel.Error; + return; + } + + + var direction = "X"; + DA.GetData(7, ref direction); + + var bendedBar = new FemDesign.Reinforcement.BendedBar(); + + bendedBar.LocalCenter = LocalCenter.FromRhino(); + bendedBar.Wire = new FemDesign.Reinforcement.Wire(diameter, reinforcingMaterial, Reinforcement.WireProfileType.Ribbed); + bendedBar.Angle = angle; + bendedBar.Height = height; + bendedBar.MiddleSectionsLength = middleSectionsLength; + bendedBar.TipSectionsLength = tipSectionsLength; + bendedBar.Direction = direction; + + + + + DA.SetData(0, bendedBar); + } + } +} \ No newline at end of file diff --git a/FemDesign.Grasshopper/Reinforcement/Punching/PunchingBase.cs b/FemDesign.Grasshopper/Reinforcement/Punching/PunchingBase.cs new file mode 100644 index 000000000..a15b07125 --- /dev/null +++ b/FemDesign.Grasshopper/Reinforcement/Punching/PunchingBase.cs @@ -0,0 +1,120 @@ +using Grasshopper.Kernel; +using Grasshopper.Kernel.Parameters; +using Grasshopper.Kernel.Types; +using FemDesign.Grasshopper.Components.UIWidgets; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Rhino.Geometry; +using FemDesign.Grasshopper; +using System.Windows.Forms; +using FemDesign.Grasshopper.Extension.ComponentExtension; +using FemDesign.Loads; +using Grasshopper.Kernel.Special; +using FemDesign.Reinforcement; + +namespace FemDesign.Grasshopper +{ + public class PunchingBase : GH_SwitcherComponent + { + private List _subcomponents = new List(); + public override string UnitMenuName => "PunchingReinforcement"; + protected override string DefaultEvaluationUnit => _subcomponents[0].name(); + public override Guid ComponentGuid => new Guid("{68F38838-9C23-46CC-A656-386925AAE3B9}"); + public override GH_Exposure Exposure => GH_Exposure.tertiary; + + protected override Bitmap Icon => FemDesign.Properties.Resources.Punching; + + public PunchingBase() + : base("Punching", "Punching", + "Punching reinforcement settings for a FEM-Design model.", + CategoryName.Name(), SubCategoryName.CatReinforcement()) + { + ((GH_Component)this).Hidden = true; + } + + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + } + + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.RegisterParam(new Param_GenericObject(), "PunchingReinforcement", "PunchingReinforcement", "Punching reinforcement settings."); + } + + protected override void RegisterEvaluationUnits(EvaluationUnitManager mngr) + { + _subcomponents.Add(new StudRail()); + _subcomponents.Add(new StirrupCircular()); + + foreach (SubComponent item in _subcomponents) + { + item.registerEvaluationUnits(mngr); + } + } + + protected override void OnComponentLoaded() + { + base.OnComponentLoaded(); + foreach (SubComponent item in _subcomponents) + { + item.OnComponentLoaded(); + } + } + + protected override void SolveInstance(IGH_DataAccess DA, EvaluationUnit unit) + { + if (unit == null) + { + return; + } + foreach (SubComponent item in _subcomponents) + { + if (unit.Name.Equals(item.name())) + { + item.SolveInstance(DA, out var msg, out var level); + if (msg != "") + { + ((GH_ActiveObject)this).AddRuntimeMessage(level, msg); + } + return; + } + } + throw new Exception("Invalid sub-component"); + } + // Part of the code that allows to extend the menu with additional items + // Right click on the component to see the options + public override void AppendAdditionalMenuItems(ToolStripDropDown menu) + { + base.AppendAdditionalMenuItems(menu); + if (evalUnits.Units.Count > 0) + { + Menu_AppendSeparator(menu); + ToolStripMenuItem toolStripMenuItem = Menu_AppendItem(menu, "PunchingReinforcement"); + foreach (EvaluationUnit unit in evalUnits.Units) + { + Menu_AppendItem(toolStripMenuItem.DropDown, unit.Name, Menu_ActivateUnit, null, true, unit.Active).Tag = unit; + } + Menu_AppendSeparator(menu); + } + } + private void Menu_ActivateUnit(object sender, EventArgs e) + { + try + { + EvaluationUnit evaluationUnit = (EvaluationUnit)((ToolStripMenuItem)sender).Tag; + if (evaluationUnit != null) + { + SwitchUnit(evaluationUnit); + } + } + catch (Exception ex) + { + throw ex; + } + } + } +} \ No newline at end of file diff --git a/FemDesign.Grasshopper/Reinforcement/Punching/PunchingReinforcementAddToSlab.cs b/FemDesign.Grasshopper/Reinforcement/Punching/PunchingReinforcementAddToSlab.cs new file mode 100644 index 000000000..38244ca7e --- /dev/null +++ b/FemDesign.Grasshopper/Reinforcement/Punching/PunchingReinforcementAddToSlab.cs @@ -0,0 +1,46 @@ +// https://strusoft.com/ +using System; +using System.Collections.Generic; +using System.Linq; +using Eto.Forms; +using Grasshopper.Kernel; +using Rhino.Geometry; + +namespace FemDesign.Grasshopper +{ + public class PunchingReinforcementAddToSlab : FEM_Design_API_Component + { + public PunchingReinforcementAddToSlab() : base("PunchingReinforcement.AddToSlab", "AddToSlab", "", "FEM-Design", "Reinforcement") + { + + } + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + pManager.AddGenericParameter("Slab", "Slab", "Slab.", GH_ParamAccess.item); + pManager.AddGenericParameter("PunchingReinforcement", "PunchingReinforcement", "PunchingReinforcement to add to slab. Item or list.", GH_ParamAccess.list); + } + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.AddGenericParameter("Slab", "Slab", "Passed slab.", GH_ParamAccess.item); + } + protected override void SolveInstance(IGH_DataAccess DA) + { + + // return + DA.SetData(0, null); + } + protected override System.Drawing.Bitmap Icon + { + get + { + return FemDesign.Properties.Resources.RebarAddToElement; + } + } + public override Guid ComponentGuid + { + get { return new Guid("{24F1454C-423E-4549-8317-0216D51AF236}"); } + } + + public override GH_Exposure Exposure => GH_Exposure.tertiary; + } +} \ No newline at end of file diff --git a/FemDesign.Grasshopper/Reinforcement/Punching/StirrupCircular.cs b/FemDesign.Grasshopper/Reinforcement/Punching/StirrupCircular.cs new file mode 100644 index 000000000..3ae41d1cd --- /dev/null +++ b/FemDesign.Grasshopper/Reinforcement/Punching/StirrupCircular.cs @@ -0,0 +1,122 @@ +using Grasshopper.Kernel; +using Grasshopper.Kernel.Parameters; +using Grasshopper.Kernel.Types; +using FemDesign.Grasshopper.Components.UIWidgets; + + +namespace FemDesign.Grasshopper +{ + public class StirrupCircular : SubComponent + { + public override string name() => "StirrupCircular"; + public override string display_name() => "StirrupCircular"; + + public override void registerEvaluationUnits(EvaluationUnitManager mngr) + { + EvaluationUnit evaluationUnit = new EvaluationUnit(name(), display_name(), ""); + mngr.RegisterUnit(evaluationUnit); + evaluationUnit.Icon = FemDesign.Properties.Resources.StirrupCircular; + + evaluationUnit.RegisterInputParam(new Param_GenericObject(), "Quality", "Quality", "", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; + + + evaluationUnit.RegisterInputParam(new Param_Number(), "Diameter", "Diameter", "", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Number(), "Width", "Width", ".", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Number(), "Height", "Height", "", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Number(), "MaxDistance", "MaxDistance", "", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_GenericObject(), "Quality", "Quality", "", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; + + evaluationUnit.RegisterInputParam(new Param_Number(), "Diameter", "Diameter", "", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Number(), "Overlap", "Overlap", "", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + + GH_ExtendableMenu gH_ExtendableMenu0 = new GH_ExtendableMenu(0, ""); + gH_ExtendableMenu0.Name = "Stirrup"; + gH_ExtendableMenu0.Expand(); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[0]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[1]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[2]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[3]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[4]); + evaluationUnit.AddMenu(gH_ExtendableMenu0); + + + GH_ExtendableMenu gH_ExtendableMenu1 = new GH_ExtendableMenu(1, ""); + gH_ExtendableMenu1.Name = "Auxiliary"; + gH_ExtendableMenu1.Expand(); + gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[5]); + gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[6]); + gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[7]); + //gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[8]); + evaluationUnit.AddMenu(gH_ExtendableMenu1); + } + + public override void SolveInstance(IGH_DataAccess DA, out string msg, out GH_RuntimeMessageLevel level) + { + msg = ""; + level = GH_RuntimeMessageLevel.Warning; + + FemDesign.Materials.Material stirrupQuality = null; + DA.GetData(0, ref stirrupQuality); + + double stirrupDiameter = 0.01; + DA.GetData(1, ref stirrupDiameter); + + double stirrupWidth = 0.2; + DA.GetData(2, ref stirrupWidth); + + double stirrupHeight = 0.2; + DA.GetData(3, ref stirrupHeight); + + double stirrupMaxDistance = 0.2; + DA.GetData(4, ref stirrupMaxDistance); + + FemDesign.Materials.Material auxiliaryQuality = null; + DA.GetData(5, ref auxiliaryQuality); + + double auxiliaryDiameter = 0.01; + DA.GetData(6, ref auxiliaryDiameter); + + double auxiliaryOverlap = 0.2; + DA.GetData(7, ref auxiliaryOverlap); + + + var stirrup = new FemDesign.Reinforcement.ReinforcingRing(); + + var stirrups = new FemDesign.Reinforcement.ReinforcingRingStirrups(); + stirrups.Width = stirrupWidth; + stirrups.Height = stirrupHeight; + stirrups.MaxDistance = stirrupMaxDistance; + stirrups.Wire = new Reinforcement.Wire(stirrupDiameter, stirrupQuality, Reinforcement.WireProfileType.Ribbed); + + stirrup.Stirrups = stirrups; + + var auxiliary = new FemDesign.Reinforcement.AuxiliaryReinforcement(); + auxiliary.InnerRadius = 0.50; + auxiliary.Overlap = auxiliaryOverlap; + auxiliary.Wire = new Reinforcement.Wire(auxiliaryDiameter, auxiliaryQuality, Reinforcement.WireProfileType.Ribbed); + + stirrup.AuxiliaryReinforcement = auxiliary; + + DA.SetData(0, stirrup); + } + + protected void setModelProps() + { + this.Parent_Component.ExpireSolution(true); + } + } +} \ No newline at end of file diff --git a/FemDesign.Grasshopper/Reinforcement/Punching/StudRail.cs b/FemDesign.Grasshopper/Reinforcement/Punching/StudRail.cs new file mode 100644 index 000000000..6ee1ba1a5 --- /dev/null +++ b/FemDesign.Grasshopper/Reinforcement/Punching/StudRail.cs @@ -0,0 +1,105 @@ +using Grasshopper.Kernel; +using Grasshopper.Kernel.Parameters; +using Grasshopper.Kernel.Types; +using FemDesign.Grasshopper.Components.UIWidgets; + +namespace FemDesign.Grasshopper +{ + public class StudRail : SubComponent + { + public override string name() => "StudRail"; + public override string display_name() => "StudRail"; + + public override void registerEvaluationUnits(EvaluationUnitManager mngr) + { + EvaluationUnit evaluationUnit = new EvaluationUnit(name(), display_name(), ""); + mngr.RegisterUnit(evaluationUnit); + evaluationUnit.Icon = FemDesign.Properties.Resources.StudRail; + + evaluationUnit.RegisterInputParam(new Param_String(), "Pattern", "Pattern", "Stud rail pattern.", GH_ParamAccess.item, new GH_String("Orthogonal")); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_GenericObject(), "Reinforcement", "Reinforcement", "Reinforcement material.", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; + + evaluationUnit.RegisterInputParam(new Param_Number(), "Diameter", "Diameter", "Diameter of studs [mm].", GH_ParamAccess.item, new GH_Number(16.0)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Integer(), "NumberRails", "NumberRails", "Number of rails.", GH_ParamAccess.item, new GH_Integer(2)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Integer(), "NumberStudsPerMeter", "NumberStudsPerMeter", "Number of studs per meter.", GH_ParamAccess.item, new GH_Integer(4)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Number(), "So", "So", "Spacing So [mm].", GH_ParamAccess.item, new GH_Number(150.0)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Number(), "S1", "S1", "Spacing S1 [mm].", GH_ParamAccess.item, new GH_Number(200.0)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Number(), "S2", "S2", "Spacing S2 [mm].", GH_ParamAccess.item, new GH_Number(300.0)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Number(), "Height", "Height", "Determine height automatically.", GH_ParamAccess.item, new GH_Number(0.0)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Boolean(), "UseOnly2_3", "UseOnly2_3", "Use only 2/3 of the studs.", GH_ParamAccess.item, new GH_Boolean(false)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + } + + public override void SolveInstance(IGH_DataAccess DA, out string msg, out GH_RuntimeMessageLevel level) + { + msg = ""; + level = GH_RuntimeMessageLevel.Warning; + + string pattern = ""; + DA.GetData(0, ref pattern); + + var reinforcement = new FemDesign.Materials.Material(); + DA.GetData(1, ref reinforcement); + + var diameter = 16.0; + DA.GetData(2, ref diameter); + + var numberRails = 2; + DA.GetData(3, ref numberRails); + + var numberStudsPerMeter = 4; + DA.GetData(4, ref numberStudsPerMeter); + + var so = 150.0; + DA.GetData(5, ref so); + + var s1 = 200.0; + DA.GetData(6, ref s1); + + var s2 = 300.0; + DA.GetData(7, ref s2); + + double? height = 0.00; + DA.GetData(8, ref height); + + var useOnly2_3 = false; + DA.GetData(9, ref useOnly2_3); + + var studRail = new FemDesign.Reinforcement.StudRails(); + studRail.Patter = pattern; + studRail.S0 = so; + studRail.S1 = s1; + studRail.S2 = s2; + studRail.RailsOnCircle = numberRails; + studRail.StudsOnRail = numberStudsPerMeter; + studRail.Height = height == 0.00 ? null : height; + studRail.UseMinimalElements = useOnly2_3; + + var generalProduct = new FemDesign.Reinforcement.GeneralProduct(); + generalProduct.Wire = new FemDesign.Reinforcement.Wire(diameter, reinforcement, Reinforcement.WireProfileType.Ribbed); + + studRail.GeneralProduct = generalProduct; + + + DA.SetData(0, studRail); + } + } +} \ No newline at end of file diff --git a/FemDesign.Grasshopper/Resources/icons/BendedBar.png b/FemDesign.Grasshopper/Resources/icons/BendedBar.png new file mode 100644 index 0000000000000000000000000000000000000000..80332310f1220f86f13e7c145c349569289f50ea GIT binary patch literal 1312 zcmV+*1>gFKP)fFcqyXdqwv;!pmH|Hex-0zp~|DAL1 z0m>8+@zS_{a4btFFAg0ao1H)XZSQa~lgWgxPvq#Eo}mu_;1ZEsPKTF!(79sXADzRQ ztM`%28#o&o1tbX-M2BLlef=yx9r@PBGe01?T% z0VNWNC;(&tkT~ODY-zm&0E)yVB2t>0RV6~C5D|M&Yt3*NVVSgv>xLr*ntHE&zPb7@Hy@#uy_2Shm#N-7SSeA?sEw-eO6f8>S!-0Eq#EcVlo= z*b#847#f|$?k8(8cyAna)jre*y(s89{C+29$EH4O-CFZ05y_=4tadOIO*qcq{Rd<5 z1QbOE5h0t)K~WSi0ES`U=YbLA3k7JZ2AfTRWtwn${b+KT9suaXs)lh+YDR-Pz{&@kR8#KKsv3aU))-&T^O1SzS2@R{l}z^ zhDtvBa?7T_Ap}YXP0+nv~+)fyV4yShpo7J2K0KNDxgJlQdF!8P~CMG5l^%<~_v-vy# zpvtW|PV~hNO-;|;?AW(e>-=S~;j4qYe>>hgvOlO9zrVA0%dKR#h^l}e3%U7=Pt~nE zM?`$7<;xDbx)%3sO^tV^1~>^+asUEA)wVkQkX|g@t_!-|%^SR%8f$z#&o-L-lXLN_ zjq9s^#Nx@e;ImJcPtd72;oa>}~q+p&3jjGwjbv3sZ9`$dUxkfSdQnp=m0DZaaoXXYgEOEp9|7 zQ5*1}KIp|lQHLvKqL!yw*$kGBcQ%_{N3!khd@jd02L;?t&xyX#qc`uz`aU`EOvT|J z`dd!Dzvs*smq$BfJ#+4(*S1}mO&3@&=%Yk3843D)m)Fc->D%FSI;Q}9z5=YeoQ|Ud zBZ(_q<^j&I&E>S6@%y|Tr+*zff8@M3iV$mp5;2HKWm=L?{%pR_d(+l$;o0BHqQAAR?17z!D@F z=K=sEz+#NSB3L_j?li*TOB4z%hWcPV)*p?CXlYgojaKZ$ht}f&xGXEo5+DYq8bZLb zEE{7IOnNlsVYdnjhr=8|YNLlwy}PGDRVC^VJ>MYN?ebqwS1bC#)-5&wXzOe%3-}j; WsXN1^0Q39+0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0Z~arK~zXf?UXTV z!ax{?-#b%Fi6A&c$WkO71b=~}KfqOjKSck7xMy|D=A`1_pcKT(#S#h)#iAW6SkOSc ze4P?vnrI6Jhx%;yeeZYAac~D*xil=iFwGb8ym00Ba1QADL$L3WpxLxZ2!iVZL;zz1 z#sEn=iUovooCB#81Lq8_mKHCtZI2uWFbrTebCJ(mD3xwdt7*t))8Qz#TcF(rYIZcMkAs^!68-clVLnjwC~gD5Gl%rip4&4yRV74SQ-t7DwW5x zL-qOx>G~`&$D;+GOa{p1ZlmRI$TEYX+(pX)i2?v%?DSRooQj~Cr(c$MDsbva`_3%+QjB!1-%}yS~1A7gyC=%Z3mbp mu-kDQ4g!P0TeN-UzwiYPCwc$h2FC*c0000rb7U<8H|pfd%b@=#o2qT8AjT5XJvsvoGk8#lYjnvIF;mumLghVIs= z&2G#-;)iv$F%d<$sfV z{^xhj`JKlf*hQF`wtO3+%klTuWJQg~<8NpsaYw!Fa@QZsOear*PM!n@V=H}*aAtp8 z7A+HVLDcUlM43S|Q(vm}R+JPyMnozzgNS&$9bp⋙S>lb!H*_<@Km=bV)H-!m)&7 z=!f~(@>+JRjxN8~JDcH;E-ggnS9m;>Og{U> z+dbdAL(yY5!piu27rg#HkIaEkY>8DIEY zpYM(Tja2|ZJi~u_|N3g~gQ3X;Gh4UbziWzy0fCu?>0tCF$C|-7ebX%#2+0sL=YRg< zqmLN$I>S?~mAYV%3ktRAZ=J4bx)IkJXM@Y{?i9ft0L(136Xk$xlPe~kuoMZ?>12Yt z$9#WrEk-}NxRB{zr99L1CDk2Qm(O;8KX;nsjL=}#&&?(^Pa>OaAtKdgv)uxcb^ui8 zL+QthON(?3<#_{ceG(sCUTj>H^P8#>~bMKP$aAeD46j5VN$^<6Cl^ND&xFXO#9pRL%id9-UeG>A_|z4q5f@5K+Hv zXrh3KrjFDYPakZuV9XPF20)d*5WJtEbe${jNyxqSj()uW%bsd2K3_1d{U)lY30QhD$ z@!=Pfp)O`NY;tu62f+Fyl!#KPbUGapO_d6B^F8@GXHsLT7@hRIN<_-p^(s=woZjCq zQ<0@WViz+vYD$d1a?M4YM6|Za)i!|jKFBdhr;#q^Yrz1r2Wra(E;_yZwI}s^W`5*& zd-EzY*Yw?7`NQRDKebwmZ2-KPB-FZceI7Ft+HTvtqmw%TA_BXEdV4?wEv)2TcDd); z{fmCu_h3WSdAt9Ue+@hS``L|PLqUPD$}xFU>A#x!#RH9XIw(Zp0; zvQ$c606th7oKaa{y>%V>NVeLU9~PX3K*_1vvB-4DLVoHKpVhBl-qC4yHID8leM)qiYyhj z5K-jIaaYemAdncg2YQGopi27mzP(jwDiKpwlkOixBx9E~e4Ffzaq9_$&-P4b`OHP1 z&%Me6u~_QxkyG8@1!A!y!6XlSd}-eMnQM(b{_r^f=c^9?kV|6E}O=E#p>nzs?3J~WC5t#7yquWij9ge_#-Rh6TxIn zToxp6C=QF+1cM;w?%!kZR+bjE5Yft}{&qV*0{u-cO~T4*Q2+n{07*qoM6N<$f*D}^ A9RL6T literal 0 HcmV?d00001 diff --git a/FemDesign.Grasshopper/Resources/icons/StirrupOpen.png b/FemDesign.Grasshopper/Resources/icons/StirrupOpen.png new file mode 100644 index 0000000000000000000000000000000000000000..b9932e6827e5d80a4e268597be137b9c7ae9241f GIT binary patch literal 1165 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 Date: Tue, 18 Nov 2025 15:29:55 +0100 Subject: [PATCH 12/54] =?UTF-8?q?=F0=9F=91=B7=20punching=20reinforcement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FemDesign.Core/Model/Model.cs | 97 +++++++++++- FemDesign.Core/Reinforcement/PunchingArea.cs | 64 +++++++- .../Reinforcement/PunchingReinforcement.cs | 87 +++++++---- .../Reinforcement/SurfaceReinforcement.cs | 24 +++ FemDesign.Core/Shells/Slab.cs | 9 +- .../FemDesign.Grasshopper.csproj | 1 + .../Reinforcement/Punching/BendedBar.cs | 103 ++++++++++--- .../Reinforcement/Punching/PunchingBase.cs | 4 +- .../PunchingReinforcementAddToSlab.cs | 15 +- .../Reinforcement/Punching/StirrupCircular.cs | 141 +++++++++++------- .../Reinforcement/Punching/StirrupOpen.cs | 135 +++++++++++++++++ .../Reinforcement/Punching/StudRail.cs | 108 ++++++++++---- 12 files changed, 647 insertions(+), 141 deletions(-) create mode 100644 FemDesign.Grasshopper/Reinforcement/Punching/StirrupOpen.cs diff --git a/FemDesign.Core/Model/Model.cs b/FemDesign.Core/Model/Model.cs index dfcfb1b63..02f5f139c 100644 --- a/FemDesign.Core/Model/Model.cs +++ b/FemDesign.Core/Model/Model.cs @@ -10,6 +10,8 @@ using FemDesign.LibraryItems; using FemDesign.Loads; using FemDesign.Composites; +using System.Linq; +using Newtonsoft.Json.Linq; namespace FemDesign { @@ -106,16 +108,16 @@ public partial class Model //[XmlElement("bar_end_lib_type", Order = 19)] //public List BarEndReleaseTypes { get; set; } - [XmlElement("geometry", Order = 20)] + [XmlElement("geometry", Order = 19)] public StruSoft.Interop.StruXml.Data.DatabaseGeometry Geometry { get; set; } - [XmlElement("user_defined_filter", Order = 21)] + [XmlElement("user_defined_filter", Order = 20)] public List UserDefinedFilters { get; set; } - [XmlElement("user_defined_views", Order = 22)] + [XmlElement("user_defined_views", Order = 21)] public StruSoft.Interop.StruXml.Data.DatabaseUser_defined_views UserDefinedViews { get; set; } - [XmlElement("end", Order = 23)] + [XmlElement("end", Order = 22)] public string End { get; set; } internal static bool HasResults(string filePath) @@ -2207,6 +2209,9 @@ private void AddSlab(Shells.Slab obj, bool overwrite) // add ShearControlRegion this.AddShearControlRegions(obj, overwrite); + // add PunchingReinforcement + this.AddPunchingReinforcements(obj, overwrite); + // add line connection types (predefined rigidity) foreach (Releases.RigidityDataLibType3 predef in obj.SlabPart.Region.GetPredefinedRigidities()) { @@ -2695,6 +2700,90 @@ private bool ShearControlRegionInModel(Reinforcement.ShearControlRegionType obj) } + /// + /// Add SurfaceReinforcement(s) from Slab to Model. + /// + /// + /// + private void AddPunchingReinforcements(Shells.Slab obj, bool overwrite) + { + foreach (Reinforcement.PunchingReinforcement punchingReinforcement in obj.PunchingReinforcement) + { + this.AddPunchingReinforcement(punchingReinforcement, overwrite); + } + } + + private void AddPunchingReinforcement(Reinforcement.PunchingReinforcement obj, bool overwrite) + { + // in model? + bool inModel = this.PunchingReinforcementInModel(obj); + + // in model, don't overwrite + if (inModel && !overwrite) + { + throw new System.ArgumentException($"{obj.GetType().FullName} with guid: {obj.Guid} has already been added to model. Did you add the same {obj.GetType().FullName} to different Slabs?"); + } + + // in model, overwrite + else if (inModel && overwrite) + { + this.Entities.PunchingReinforcements.RemoveAll(x => x.Guid == obj.Guid); + } + + // add obj + this.Entities.PunchingReinforcements.Add(obj); + + this.AddPunchingArea(obj.PunchingArea, overwrite); + } + + private void AddPunchingArea(Reinforcement.PunchingArea obj, bool overwrite) + { + // in model? + bool inModel = this.PunchingAreaInModel(obj); + // in model, don't overwrite + if (inModel && !overwrite) + { + throw new System.ArgumentException($"{obj.GetType().FullName} with guid: {obj.Guid} has already been added to model. Did you add the same {obj.GetType().FullName} to different Slabs?"); + } + + // in model, overwrite + else if (inModel && overwrite) + { + this.Entities.PunchingArea.RemoveAll(x => x.Guid == obj.Guid); + } + + // need a method to set local_x, local_y and region. + // localx and localy are set according to the connected bar. + // region is set according to the the section region of the bar + + this.Entities.PunchingArea.Add(obj); + + } + + private bool PunchingReinforcementInModel(Reinforcement.PunchingReinforcement obj) + { + foreach (Reinforcement.PunchingReinforcement elem in this.Entities.PunchingReinforcements) + { + if (elem.Guid == obj.Guid) + { + return true; + } + } + return false; + } + + private bool PunchingAreaInModel(Reinforcement.PunchingArea obj) + { + foreach (Reinforcement.PunchingArea elem in this.Entities.PunchingArea) + { + if (elem.Guid == obj.Guid) + { + return true; + } + } + return false; + } + /// /// Add Foundation to the Model /// diff --git a/FemDesign.Core/Reinforcement/PunchingArea.cs b/FemDesign.Core/Reinforcement/PunchingArea.cs index 18e6652d4..d16b4838f 100644 --- a/FemDesign.Core/Reinforcement/PunchingArea.cs +++ b/FemDesign.Core/Reinforcement/PunchingArea.cs @@ -1,4 +1,6 @@ +using FemDesign.Geometry; using System.Xml.Serialization; +using System; namespace FemDesign.Reinforcement @@ -10,7 +12,7 @@ public partial class PunchingArea: EntityBase public GuidListType BaseShell { get; set; } [XmlElement("connected_bar", Order = 2)] - public GuidListType[] ConnectedBar { get; set; } + public GuidListType ConnectedBar { get; set; } [XmlElement("local_pos", Order = 3)] public Geometry.Point3d LocalPos { get; set; } @@ -35,5 +37,65 @@ public partial class PunchingArea: EntityBase [XmlAttribute("name")] public string Name { get; set; } + public PunchingArea() + { + this.EntityCreated(); + } + + internal FemDesign.Bars.Bar FindClosestBar(Model model) + { + if (model == null) + return null; + + var bars = model.Entities.Bars; + if (bars == null) + return null; + + FemDesign.Bars.Bar closestBar = null; + double minDistance = 0.001; + + foreach (var bar in bars) + { + var curve = bar.BarPart.Edge; + if (curve == null) + continue; + + // Calculate distance from LocalPos to the bar (line segment) + double distance = DistancePointToSegment(this.LocalPos, curve); + if (distance < minDistance) + { + closestBar = bar; + break; + } + } + + // You may want to define a threshold for "attached" (e.g., < 1e-6) + return closestBar; + } + + // Helper method to calculate distance from point to segment + private static double DistancePointToSegment(FemDesign.Geometry.Point3d p, FemDesign.Geometry.Edge edge) + { + var a = edge.Points[0]; + var b = edge.Points[1]; + + // Vector from a to p + double dx = b.X - a.X; + double dy = b.Y - a.Y; + double dz = b.Z - a.Z; + + double t = ((p.X - a.X) * dx + (p.Y - a.Y) * dy + (p.Z - a.Z) * dz) / (dx * dx + dy * dy + dz * dz); + t = System.Math.Max(0, Math.Min(1, t)); + + double closestX = a.X + t * dx; + double closestY = a.Y + t * dy; + double closestZ = a.Z + t * dz; + + double distX = p.X - closestX; + double distY = p.Y - closestY; + double distZ = p.Z - closestZ; + + return Math.Sqrt(distX * distX + distY * distY + distZ * distZ); + } } } diff --git a/FemDesign.Core/Reinforcement/PunchingReinforcement.cs b/FemDesign.Core/Reinforcement/PunchingReinforcement.cs index cbff40a77..61e7931be 100644 --- a/FemDesign.Core/Reinforcement/PunchingReinforcement.cs +++ b/FemDesign.Core/Reinforcement/PunchingReinforcement.cs @@ -1,3 +1,4 @@ +using FemDesign.GenericClasses; using System.Xml.Serialization; @@ -10,8 +11,20 @@ public partial class PunchingReinforcement: EntityBase public GuidListType BaseShell { get; set; } [XmlElement("punching_area", Order = 2)] - public GuidListType PunchingArea { get; set; } + public GuidListType PunchingAreaRef { get; set; } + private FemDesign.Reinforcement.PunchingArea _punchingArea; + + [XmlIgnore] + public FemDesign.Reinforcement.PunchingArea PunchingArea + { + get => _punchingArea; + set + { + _punchingArea = value; + PunchingAreaRef = value != null ? new GuidListType(value.Guid) : null; + } + } // choice bended_bar [XmlElement("bended_bar", Order = 3)] public BendedBar BendedBar { get; set; } @@ -27,6 +40,13 @@ public partial class PunchingReinforcement: EntityBase // choice stud_rails [XmlElement("stud_rails", Order = 6)] public StudRails StudRails { get; set; } + + public PunchingReinforcement() + { + this.EntityCreated(); + } + + } [System.Serializable] @@ -130,13 +150,13 @@ public partial class StudRails public PeikkoPsbProduct PeikkoPsbProduct { get; set; } [XmlAttribute("pattern")] - public string Patter { get; set; } + public string Pattern { get; set; } [XmlAttribute("s0")] public double _s0 { get; set; } [XmlIgnore] - public double S0 + public double S0 { get => _s0; set => _s0 = RestrictedDouble.NonZeroMax_10_1(value); @@ -163,53 +183,35 @@ public double S2 } [XmlAttribute("rails_on_circle")] - public string _railsOnCircle; + public int _railsOnCircle; [XmlIgnore] public int RailsOnCircle { - get - { - return System.Int32.Parse(this._railsOnCircle); - } - set - { - this._railsOnCircle = value.ToString(); - } + get => _railsOnCircle; + set => _railsOnCircle = (int)RestrictedDouble.ValueInClosedInterval(value, 4, 50); } [XmlAttribute("studs_on_rail")] - public string _studsOnRail; + public int _studsOnRail; [XmlIgnore] public int StudsOnRail { - get - { - return System.Int32.Parse(this._studsOnRail); - } - set - { - this._studsOnRail = value.ToString(); - } + get => _studsOnRail; + set => _studsOnRail = (int)RestrictedDouble.ValueInClosedInterval(value, 2, 50); } [XmlAttribute("height")] public string _height; [XmlIgnore] - public double? Height + public double Height { - get - { - return double.Parse(this._height); - } - set - { - this._height = value.ToString(); - } + get => double.TryParse(_height, out var value) ? value : 0.0; + set => _height = RestrictedDouble.ValueInClosedInterval(value, 0.01, 10).ToString(); } - + [XmlAttribute("use_minimal_elements")] public bool UseMinimalElements { get; set; } } @@ -243,4 +245,27 @@ public partial class PshData [XmlAttribute("n_y_dir")] public int NumYDireciton { get; set; } } + + public enum Pattern + { + [Parseable("Radial", "radial", "RADIAL")] + [XmlEnum("radial")] + Radial, + [Parseable("Orthogonal", "orthogonal", "ORTHOGONAL")] + [XmlEnum("orthogonal")] + Orthogonal, + [Parseable("SemiOrthogonal", "semiorthogonal", "SEMIORTHOGONAL")] + [XmlEnum("semi-orthogonal")] + SemiOrthogonal + } + + public enum Direction + { + [Parseable("x", "X")] + [XmlEnum("x")] + X, + [Parseable("y", "Y")] + [XmlEnum("y")] + Y, + } } \ No newline at end of file diff --git a/FemDesign.Core/Reinforcement/SurfaceReinforcement.cs b/FemDesign.Core/Reinforcement/SurfaceReinforcement.cs index 507832a8f..78b8cd001 100644 --- a/FemDesign.Core/Reinforcement/SurfaceReinforcement.cs +++ b/FemDesign.Core/Reinforcement/SurfaceReinforcement.cs @@ -189,6 +189,30 @@ private static Shells.Slab AddCentricReinfToSlab(Shells.Slab slab, List punchingReinforcements) + { + // deep clone. downstreams objs will contain changes made in this method, upstream objs will not. + // downstream and uppstream objs will share guid. + Shells.Slab clone = slab.DeepClone(); + // deep clone punching reinforcements + var punchingReinforcementsClone = punchingReinforcements.DeepClone(); + // check if slab material is concrete + if (clone.Material.Concrete == null) + { + throw new System.ArgumentException("Material of slab must be concrete"); + } + foreach (var item in punchingReinforcementsClone) + { + // add references to item + item.BaseShell = new GuidListType(clone.SlabPart.Guid); + item.PunchingArea.BaseShell = new GuidListType(clone.SlabPart.Guid); + + clone.PunchingReinforcement.Add(item); + } + return clone; + } + public static Shells.Slab AddShearControlRegionToSlab(Shells.Slab slab, List shearControlRegions) { // deep clone. downstreams objs will contain changes made in this method, upstream objs will not. diff --git a/FemDesign.Core/Shells/Slab.cs b/FemDesign.Core/Shells/Slab.cs index 10561b4d5..8f992ad38 100644 --- a/FemDesign.Core/Shells/Slab.cs +++ b/FemDesign.Core/Shells/Slab.cs @@ -37,17 +37,20 @@ protected override int GetUniqueInstanceCount() // This method body must be the [XmlIgnore] public Reinforcement.SurfaceReinforcementParameters SurfaceReinforcementParameters { get; set; } [XmlIgnore] - public List SurfaceReinforcement = new List(); + public List SurfaceReinforcement { get; set; } = new List(); [XmlIgnore] - public List ShearControlRegions = new List(); + public List ShearControlRegions { get; set; } = new List(); + + [XmlIgnore] + public List PunchingReinforcement { get; set; } = new List(); [XmlAttribute("type")] public SlabType Type { get; set; } [XmlAttribute("stage")] - public int _stageId; + public int _stageId = 1; [XmlIgnore] public int StageId diff --git a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj index c41fc97f9..a1b91acef 100644 --- a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj +++ b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj @@ -312,6 +312,7 @@ + diff --git a/FemDesign.Grasshopper/Reinforcement/Punching/BendedBar.cs b/FemDesign.Grasshopper/Reinforcement/Punching/BendedBar.cs index 227a177fd..4c00a07d7 100644 --- a/FemDesign.Grasshopper/Reinforcement/Punching/BendedBar.cs +++ b/FemDesign.Grasshopper/Reinforcement/Punching/BendedBar.cs @@ -1,7 +1,8 @@ -using Grasshopper.Kernel; +using FemDesign.Grasshopper.Components.UIWidgets; +using FemDesign.Reinforcement; +using Grasshopper.Kernel; using Grasshopper.Kernel.Parameters; using Grasshopper.Kernel.Types; -using FemDesign.Grasshopper.Components.UIWidgets; using System; namespace FemDesign.Grasshopper @@ -15,18 +16,50 @@ public override void registerEvaluationUnits(EvaluationUnitManager mngr) { EvaluationUnit evaluationUnit = new EvaluationUnit(name(), display_name(), ""); mngr.RegisterUnit(evaluationUnit); - evaluationUnit.Icon = FemDesign.Properties.Resources.BendedBar; + //evaluationUnit.Icon = FemDesign.Properties.Resources.BendedBar; + evaluationUnit.RegisterInputParam(new Param_Plane(), "Point|Plane", "Point|Plane", "", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; + + evaluationUnit.RegisterInputParam(new Param_Brep(), "Region", "Region", "", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; evaluationUnit.RegisterInputParam(new Param_Point(), "LocalCenter", "LocalCenter", "Local center point of the bended bar.", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; + evaluationUnit.RegisterInputParam(new Param_GenericObject(), "ReinforcingMaterial", "ReinforcingMaterial", "Reinforcing material.", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; + evaluationUnit.RegisterInputParam(new Param_Number(), "Diameter", "Dia", "Diameter of the bended bar. [mm]", GH_ParamAccess.item, new GH_Number(10.0)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + evaluationUnit.RegisterInputParam(new Param_Number(), "TipSectionsLength", "TipLen", "Length of the tip sections. [mm]", GH_ParamAccess.item, new GH_Number(0.0)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + evaluationUnit.RegisterInputParam(new Param_Number(), "MiddleSectionsLength", "MidLen", "Length of the middle sections. [mm]", GH_ParamAccess.item, new GH_Number(0.0)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + evaluationUnit.RegisterInputParam(new Param_Number(), "Height", "Height", "Height of the bended bar. [mm]", GH_ParamAccess.item, new GH_Number(0.0)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + evaluationUnit.RegisterInputParam(new Param_Number(), "Angle", "Angle", "Bend angle. [degrees]", GH_ParamAccess.item, new GH_Number(90.0)); - evaluationUnit.RegisterInputParam(new Param_String(), "Direction", "Dir", "Direction of the bended bar local x-axis. Options: X, Y.", GH_ParamAccess.item, new GH_String("X")); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + evaluationUnit.RegisterInputParam(new Param_String(), "Direction", "Dir", "Direction of the bended bar local x-axis. Options: X, Y.", GH_ParamAccess.item, new GH_String("X")); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + GH_ExtendableMenu gH_ExtendableMenu0 = new GH_ExtendableMenu(0, ""); + gH_ExtendableMenu0.Name = "Bended"; + gH_ExtendableMenu0.Expand(); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[2]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[3]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[4]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[5]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[6]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[7]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[8]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[9]); + evaluationUnit.AddMenu(gH_ExtendableMenu0); } @@ -35,26 +68,36 @@ public override void SolveInstance(IGH_DataAccess DA, out string msg, out GH_Run msg = ""; level = GH_RuntimeMessageLevel.Warning; + var plane = Rhino.Geometry.Plane.WorldXY; + DA.GetData(0, ref plane); + + Rhino.Geometry.Brep region = null; + DA.GetData(1, ref region); + Rhino.Geometry.Point3d LocalCenter = new Rhino.Geometry.Point3d(0, 0, 0); - DA.GetData(0, ref LocalCenter); + DA.GetData(2, ref LocalCenter); var reinforcingMaterial = new FemDesign.Materials.Material(); - DA.GetData(1, ref reinforcingMaterial); + DA.GetData(3, ref reinforcingMaterial); var diameter = 10.0; - DA.GetData(2, ref diameter); + DA.GetData(4, ref diameter); + diameter = diameter / 1000.0; // mm to m var tipSectionsLength = 0.0; - DA.GetData(3, ref tipSectionsLength); + DA.GetData(5, ref tipSectionsLength); + tipSectionsLength = tipSectionsLength / 1000.0; // mm to m var middleSectionsLength = 0.0; - DA.GetData(4, ref middleSectionsLength); + DA.GetData(6, ref middleSectionsLength); + middleSectionsLength = middleSectionsLength / 1000.0; // mm to m var height = 0.0; - DA.GetData(5, ref height); + DA.GetData(7, ref height); + height = height / 1000.0; // mm to m var angle = 90.0; - DA.GetData(6, ref angle); + DA.GetData(8, ref angle); angle = angle * Math.PI / 180.0; @@ -65,24 +108,42 @@ public override void SolveInstance(IGH_DataAccess DA, out string msg, out GH_Run return; } - var direction = "X"; - DA.GetData(7, ref direction); + DA.GetData(9, ref direction); + + var _direction = FemDesign.GenericClasses.EnumParser.Parse(direction); + + + var punchingReinforcement = new FemDesign.Reinforcement.PunchingReinforcement(); + { + // punching area + var punchingArea = new FemDesign.Reinforcement.PunchingArea(); + punchingArea.LocalPos = plane.Origin.FromRhino(); + punchingArea.LocalX = plane.XAxis.FromRhino(); + punchingArea.LocalY = plane.YAxis.FromRhino(); + punchingArea.Region = region.FromRhino(); + + punchingReinforcement.PunchingArea = punchingArea; + } var bendedBar = new FemDesign.Reinforcement.BendedBar(); + { + bendedBar.LocalCenter = LocalCenter.FromRhino(); + bendedBar.Wire = new FemDesign.Reinforcement.Wire(diameter, reinforcingMaterial, Reinforcement.WireProfileType.Ribbed); + bendedBar.Angle = angle; + bendedBar.Height = height; + bendedBar.MiddleSectionsLength = middleSectionsLength; + bendedBar.TipSectionsLength = tipSectionsLength; + bendedBar.Direction = direction; + } + + punchingReinforcement.BendedBar = bendedBar; - bendedBar.LocalCenter = LocalCenter.FromRhino(); - bendedBar.Wire = new FemDesign.Reinforcement.Wire(diameter, reinforcingMaterial, Reinforcement.WireProfileType.Ribbed); - bendedBar.Angle = angle; - bendedBar.Height = height; - bendedBar.MiddleSectionsLength = middleSectionsLength; - bendedBar.TipSectionsLength = tipSectionsLength; - bendedBar.Direction = direction; - DA.SetData(0, bendedBar); + DA.SetData(0, punchingReinforcement); } } } \ No newline at end of file diff --git a/FemDesign.Grasshopper/Reinforcement/Punching/PunchingBase.cs b/FemDesign.Grasshopper/Reinforcement/Punching/PunchingBase.cs index a15b07125..afde25653 100644 --- a/FemDesign.Grasshopper/Reinforcement/Punching/PunchingBase.cs +++ b/FemDesign.Grasshopper/Reinforcement/Punching/PunchingBase.cs @@ -25,7 +25,6 @@ public class PunchingBase : GH_SwitcherComponent protected override string DefaultEvaluationUnit => _subcomponents[0].name(); public override Guid ComponentGuid => new Guid("{68F38838-9C23-46CC-A656-386925AAE3B9}"); public override GH_Exposure Exposure => GH_Exposure.tertiary; - protected override Bitmap Icon => FemDesign.Properties.Resources.Punching; public PunchingBase() @@ -49,6 +48,9 @@ protected override void RegisterEvaluationUnits(EvaluationUnitManager mngr) { _subcomponents.Add(new StudRail()); _subcomponents.Add(new StirrupCircular()); + _subcomponents.Add(new BendedBar()); + _subcomponents.Add(new StirrupOpen()); + foreach (SubComponent item in _subcomponents) { diff --git a/FemDesign.Grasshopper/Reinforcement/Punching/PunchingReinforcementAddToSlab.cs b/FemDesign.Grasshopper/Reinforcement/Punching/PunchingReinforcementAddToSlab.cs index 38244ca7e..c82316a90 100644 --- a/FemDesign.Grasshopper/Reinforcement/Punching/PunchingReinforcementAddToSlab.cs +++ b/FemDesign.Grasshopper/Reinforcement/Punching/PunchingReinforcementAddToSlab.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using Eto.Forms; +using FemDesign.Reinforcement; using Grasshopper.Kernel; using Rhino.Geometry; @@ -25,10 +26,18 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) } protected override void SolveInstance(IGH_DataAccess DA) { - - // return - DA.SetData(0, null); + FemDesign.Shells.Slab slab = null; + DA.GetData(0, ref slab); + + List punchingReinforcements = new List(); + DA.GetDataList(1, punchingReinforcements); + + punchingReinforcements = punchingReinforcements.DeepClone(); + + FemDesign.Shells.Slab obj = FemDesign.Reinforcement.SurfaceReinforcement.AddPunchingReinforcement(slab, punchingReinforcements); + DA.SetData(0, obj); } + protected override System.Drawing.Bitmap Icon { get diff --git a/FemDesign.Grasshopper/Reinforcement/Punching/StirrupCircular.cs b/FemDesign.Grasshopper/Reinforcement/Punching/StirrupCircular.cs index 3ae41d1cd..36a94f259 100644 --- a/FemDesign.Grasshopper/Reinforcement/Punching/StirrupCircular.cs +++ b/FemDesign.Grasshopper/Reinforcement/Punching/StirrupCircular.cs @@ -6,6 +6,7 @@ namespace FemDesign.Grasshopper { + public class StirrupCircular : SubComponent { public override string name() => "StirrupCircular"; @@ -15,52 +16,60 @@ public override void registerEvaluationUnits(EvaluationUnitManager mngr) { EvaluationUnit evaluationUnit = new EvaluationUnit(name(), display_name(), ""); mngr.RegisterUnit(evaluationUnit); - evaluationUnit.Icon = FemDesign.Properties.Resources.StirrupCircular; + //evaluationUnit.Icon = FemDesign.Properties.Resources.StirrupCircular; + + evaluationUnit.RegisterInputParam(new Param_Plane(), "Point|Plane", "Point|Plane", "", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; + + evaluationUnit.RegisterInputParam(new Param_Brep(), "Region", "Region", "", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; - evaluationUnit.RegisterInputParam(new Param_GenericObject(), "Quality", "Quality", "", GH_ParamAccess.item); + evaluationUnit.RegisterInputParam(new Param_Number(), "InnerRadius", "InnerRadius", "[m]", GH_ParamAccess.item); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; + evaluationUnit.RegisterInputParam(new Param_GenericObject(), "ReinforcingMaterial", "ReinforcingMaterial", "", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; - evaluationUnit.RegisterInputParam(new Param_Number(), "Diameter", "Diameter", "", GH_ParamAccess.item); + evaluationUnit.RegisterInputParam(new Param_Number(), "Diameter", "Diameter", "[mm]", GH_ParamAccess.item); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; - evaluationUnit.RegisterInputParam(new Param_Number(), "Width", "Width", ".", GH_ParamAccess.item); + evaluationUnit.RegisterInputParam(new Param_Number(), "Width", "Width", "[mm]", GH_ParamAccess.item); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; - evaluationUnit.RegisterInputParam(new Param_Number(), "Height", "Height", "", GH_ParamAccess.item); + evaluationUnit.RegisterInputParam(new Param_Number(), "Height", "Height", "[mm]", GH_ParamAccess.item); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; - evaluationUnit.RegisterInputParam(new Param_Number(), "MaxDistance", "MaxDistance", "", GH_ParamAccess.item); + evaluationUnit.RegisterInputParam(new Param_Number(), "MaxDistance", "MaxDistance", "[mm]", GH_ParamAccess.item); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; - evaluationUnit.RegisterInputParam(new Param_GenericObject(), "Quality", "Quality", "", GH_ParamAccess.item); + evaluationUnit.RegisterInputParam(new Param_GenericObject(), "ReinforcingMaterial", "ReinforcingMaterial", "", GH_ParamAccess.item); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; - evaluationUnit.RegisterInputParam(new Param_Number(), "Diameter", "Diameter", "", GH_ParamAccess.item); + evaluationUnit.RegisterInputParam(new Param_Number(), "Diameter", "Diameter", "[mm]", GH_ParamAccess.item); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; - evaluationUnit.RegisterInputParam(new Param_Number(), "Overlap", "Overlap", "", GH_ParamAccess.item); + evaluationUnit.RegisterInputParam(new Param_Number(), "Overlap", "Overlap", "[mm]", GH_ParamAccess.item); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; GH_ExtendableMenu gH_ExtendableMenu0 = new GH_ExtendableMenu(0, ""); gH_ExtendableMenu0.Name = "Stirrup"; gH_ExtendableMenu0.Expand(); - gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[0]); - gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[1]); gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[2]); gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[3]); gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[4]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[5]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[6]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[7]); evaluationUnit.AddMenu(gH_ExtendableMenu0); GH_ExtendableMenu gH_ExtendableMenu1 = new GH_ExtendableMenu(1, ""); gH_ExtendableMenu1.Name = "Auxiliary"; gH_ExtendableMenu1.Expand(); - gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[5]); - gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[6]); - gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[7]); - //gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[8]); + gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[8]); + gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[9]); + gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[10]); evaluationUnit.AddMenu(gH_ExtendableMenu1); } @@ -69,49 +78,81 @@ public override void SolveInstance(IGH_DataAccess DA, out string msg, out GH_Run msg = ""; level = GH_RuntimeMessageLevel.Warning; - FemDesign.Materials.Material stirrupQuality = null; - DA.GetData(0, ref stirrupQuality); - - double stirrupDiameter = 0.01; - DA.GetData(1, ref stirrupDiameter); + var plane = Rhino.Geometry.Plane.WorldXY; + DA.GetData(0, ref plane); - double stirrupWidth = 0.2; - DA.GetData(2, ref stirrupWidth); + Rhino.Geometry.Brep region = null; + DA.GetData(1, ref region); - double stirrupHeight = 0.2; - DA.GetData(3, ref stirrupHeight); + double innerRadius = 1.0; + DA.GetData(2, ref innerRadius); - double stirrupMaxDistance = 0.2; - DA.GetData(4, ref stirrupMaxDistance); - - FemDesign.Materials.Material auxiliaryQuality = null; - DA.GetData(5, ref auxiliaryQuality); - - double auxiliaryDiameter = 0.01; - DA.GetData(6, ref auxiliaryDiameter); - - double auxiliaryOverlap = 0.2; - DA.GetData(7, ref auxiliaryOverlap); - - - var stirrup = new FemDesign.Reinforcement.ReinforcingRing(); + FemDesign.Materials.Material stirrupQuality = null; + DA.GetData(3, ref stirrupQuality); - var stirrups = new FemDesign.Reinforcement.ReinforcingRingStirrups(); - stirrups.Width = stirrupWidth; - stirrups.Height = stirrupHeight; - stirrups.MaxDistance = stirrupMaxDistance; - stirrups.Wire = new Reinforcement.Wire(stirrupDiameter, stirrupQuality, Reinforcement.WireProfileType.Ribbed); + double stirrupDiameter = 10; + DA.GetData(4, ref stirrupDiameter); + stirrupDiameter /= 1000.0; // mm to m - stirrup.Stirrups = stirrups; + double stirrupWidth = 200; + DA.GetData(5, ref stirrupWidth); + stirrupWidth /= 1000.0; // mm to m - var auxiliary = new FemDesign.Reinforcement.AuxiliaryReinforcement(); - auxiliary.InnerRadius = 0.50; - auxiliary.Overlap = auxiliaryOverlap; - auxiliary.Wire = new Reinforcement.Wire(auxiliaryDiameter, auxiliaryQuality, Reinforcement.WireProfileType.Ribbed); + double stirrupHeight = 200; + DA.GetData(6, ref stirrupHeight); + stirrupHeight /= 1000.0; // mm to m - stirrup.AuxiliaryReinforcement = auxiliary; + double stirrupMaxDistance = 200; + DA.GetData(7, ref stirrupMaxDistance); + stirrupMaxDistance /= 1000.0; // mm to m - DA.SetData(0, stirrup); + FemDesign.Materials.Material auxiliaryQuality = null; + DA.GetData(8, ref auxiliaryQuality); + + double auxiliaryDiameter = 10; + DA.GetData(9, ref auxiliaryDiameter); + auxiliaryDiameter /= 1000.0; // mm to m + + double auxiliaryOverlap = 200; + DA.GetData(10, ref auxiliaryOverlap); + auxiliaryOverlap /= 1000.0; // mm to m + + var punchingReinforcement = new FemDesign.Reinforcement.PunchingReinforcement(); + { + // punching area + var punchingArea = new FemDesign.Reinforcement.PunchingArea(); + punchingArea.LocalPos = plane.Origin.FromRhino(); + punchingArea.LocalX = plane.XAxis.FromRhino(); + punchingArea.LocalY = plane.YAxis.FromRhino(); + punchingArea.Region = region.FromRhino(); + + punchingReinforcement.PunchingArea = punchingArea; + } + + var reinforcingRing = new FemDesign.Reinforcement.ReinforcingRing(); + { + // stirrups + var stirrups = new FemDesign.Reinforcement.ReinforcingRingStirrups(); + stirrups.Width = stirrupWidth; + stirrups.Height = stirrupHeight; + stirrups.MaxDistance = stirrupMaxDistance; + stirrups.Wire = new Reinforcement.Wire(stirrupDiameter, stirrupQuality, Reinforcement.WireProfileType.Ribbed); + + // auxiliary reinforcement + var auxiliary = new FemDesign.Reinforcement.AuxiliaryReinforcement(); + auxiliary.InnerRadius = 0.50; + auxiliary.Overlap = auxiliaryOverlap; + auxiliary.Wire = new Reinforcement.Wire(auxiliaryDiameter, auxiliaryQuality, Reinforcement.WireProfileType.Ribbed); + + // assign to reinforcing ring + reinforcingRing.Stirrups = stirrups; + reinforcingRing.AuxiliaryReinforcement = auxiliary; + } + + + punchingReinforcement.ReinforcingRing = reinforcingRing; + + DA.SetData(0, punchingReinforcement); } protected void setModelProps() diff --git a/FemDesign.Grasshopper/Reinforcement/Punching/StirrupOpen.cs b/FemDesign.Grasshopper/Reinforcement/Punching/StirrupOpen.cs new file mode 100644 index 000000000..ed65369f8 --- /dev/null +++ b/FemDesign.Grasshopper/Reinforcement/Punching/StirrupOpen.cs @@ -0,0 +1,135 @@ +using Grasshopper.Kernel; +using Grasshopper.Kernel.Parameters; +using Grasshopper.Kernel.Types; +using FemDesign.Grasshopper.Components.UIWidgets; + + +namespace FemDesign.Grasshopper +{ + + public class StirrupOpen : SubComponent + { + public override string name() => "StirrupOpen"; + public override string display_name() => "StirrupOpen"; + + public override void registerEvaluationUnits(EvaluationUnitManager mngr) + { + EvaluationUnit evaluationUnit = new EvaluationUnit(name(), display_name(), ""); + mngr.RegisterUnit(evaluationUnit); + //evaluationUnit.Icon = FemDesign.Properties.Resources.StirrupCircular; + + evaluationUnit.RegisterInputParam(new Param_Plane(), "Point|Plane", "Point|Plane", "", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; + + evaluationUnit.RegisterInputParam(new Param_Brep(), "Region", "Region", "", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; + + evaluationUnit.RegisterInputParam(new Param_GenericObject(), "ReinforcingMaterial", "ReinforcingMaterial", "", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; + + evaluationUnit.RegisterInputParam(new Param_Number(), "Diameter", "Diameter", "[mm]", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Number(), "Width", "Width", "[m]", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; + + evaluationUnit.RegisterInputParam(new Param_GenericObject(), "Length", "Length", "", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; + + evaluationUnit.RegisterInputParam(new Param_Number(), "Height", "Height", "[mm]", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Number(), "Distance_X", "Distance_X", "[mm]", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Number(), "Distance_Y", "Distance_Y", "[mm]", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + + + GH_ExtendableMenu gH_ExtendableMenu0 = new GH_ExtendableMenu(0, ""); + gH_ExtendableMenu0.Name = "Stirrup"; + gH_ExtendableMenu0.Expand(); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[2]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[3]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[4]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[5]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[6]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[7]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[8]); + evaluationUnit.AddMenu(gH_ExtendableMenu0); + } + + public override void SolveInstance(IGH_DataAccess DA, out string msg, out GH_RuntimeMessageLevel level) + { + msg = ""; + level = GH_RuntimeMessageLevel.Warning; + + var plane = Rhino.Geometry.Plane.WorldXY; + DA.GetData(0, ref plane); + + Rhino.Geometry.Brep region = null; + DA.GetData(1, ref region); + + FemDesign.Materials.Material stirrupQuality = null; + DA.GetData(2, ref stirrupQuality); + + double stirrupDiameter = 10; + DA.GetData(3, ref stirrupDiameter); + stirrupDiameter /= 1000.0; // mm to m + + double stirrupWidth = 200; + DA.GetData(4, ref stirrupWidth); + stirrupWidth /= 1000.0; // mm to m + + double stirrupLength = 200; + DA.GetData(5, ref stirrupLength); + stirrupLength /= 1000.0; // mm to m + + double stirrupHeight = 200; + DA.GetData(6, ref stirrupHeight); + stirrupHeight /= 1000.0; // mm to m + + double distance_x = 200; + DA.GetData(7, ref distance_x); + distance_x /= 1000.0; // mm to m + + double distance_y = 200; + DA.GetData(8, ref distance_y); + distance_y /= 1000.0; // mm to m + + var punchingReinforcement = new FemDesign.Reinforcement.PunchingReinforcement(); + { + // punching area + var punchingArea = new FemDesign.Reinforcement.PunchingArea(); + punchingArea.LocalPos = plane.Origin.FromRhino(); + punchingArea.LocalX = plane.XAxis.FromRhino(); + punchingArea.LocalY = plane.YAxis.FromRhino(); + punchingArea.Region = region.FromRhino(); + + punchingReinforcement.PunchingArea = punchingArea; + } + + var openStirrups = new FemDesign.Reinforcement.OpenStirrups(); + { + openStirrups.Wire = new FemDesign.Reinforcement.Wire(stirrupDiameter, stirrupQuality, Reinforcement.WireProfileType.Ribbed); + openStirrups.Region = region.FromRhino(); + openStirrups.Width = stirrupWidth; + openStirrups.Length = stirrupLength; + openStirrups.Height = stirrupHeight; + openStirrups.DistanceX = distance_x; + openStirrups.DistanceY = distance_y; + } + + + punchingReinforcement.OpenStirrups = openStirrups; + + DA.SetData(0, punchingReinforcement); + } + + protected void setModelProps() + { + this.Parent_Component.ExpireSolution(true); + } + } +} \ No newline at end of file diff --git a/FemDesign.Grasshopper/Reinforcement/Punching/StudRail.cs b/FemDesign.Grasshopper/Reinforcement/Punching/StudRail.cs index 6ee1ba1a5..dba3b8839 100644 --- a/FemDesign.Grasshopper/Reinforcement/Punching/StudRail.cs +++ b/FemDesign.Grasshopper/Reinforcement/Punching/StudRail.cs @@ -1,7 +1,11 @@ -using Grasshopper.Kernel; +using FemDesign.Grasshopper.Components.UIWidgets; +using FemDesign.Loads; +using GH_IO.Types; +using Grasshopper.Kernel; using Grasshopper.Kernel.Parameters; using Grasshopper.Kernel.Types; -using FemDesign.Grasshopper.Components.UIWidgets; +using System; +using System.Linq; namespace FemDesign.Grasshopper { @@ -14,12 +18,19 @@ public override void registerEvaluationUnits(EvaluationUnitManager mngr) { EvaluationUnit evaluationUnit = new EvaluationUnit(name(), display_name(), ""); mngr.RegisterUnit(evaluationUnit); - evaluationUnit.Icon = FemDesign.Properties.Resources.StudRail; + //evaluationUnit.Icon = FemDesign.Properties.Resources.StudRail; + + evaluationUnit.RegisterInputParam(new Param_Plane(), "Point|Plane", "Point|Plane", "", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; + + evaluationUnit.RegisterInputParam(new Param_Brep(), "Region", "Region", "", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; evaluationUnit.RegisterInputParam(new Param_String(), "Pattern", "Pattern", "Stud rail pattern.", GH_ParamAccess.item, new GH_String("Orthogonal")); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].EnumInput = Enum.GetNames(typeof(FemDesign.Reinforcement.Pattern)).ToList(); - evaluationUnit.RegisterInputParam(new Param_GenericObject(), "Reinforcement", "Reinforcement", "Reinforcement material.", GH_ParamAccess.item); + evaluationUnit.RegisterInputParam(new Param_GenericObject(), "ReinforcingMaterial", "ReinforcingMaterial", "Reinforcement material.", GH_ParamAccess.item); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; evaluationUnit.RegisterInputParam(new Param_Number(), "Diameter", "Diameter", "Diameter of studs [mm].", GH_ParamAccess.item, new GH_Number(16.0)); @@ -40,12 +51,26 @@ public override void registerEvaluationUnits(EvaluationUnitManager mngr) evaluationUnit.RegisterInputParam(new Param_Number(), "S2", "S2", "Spacing S2 [mm].", GH_ParamAccess.item, new GH_Number(300.0)); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; - evaluationUnit.RegisterInputParam(new Param_Number(), "Height", "Height", "Determine height automatically.", GH_ParamAccess.item, new GH_Number(0.0)); + evaluationUnit.RegisterInputParam(new Param_Number(), "Height", "Height", "NOT YET IMPLEMENTED. Contact us if interested!", GH_ParamAccess.item, new GH_Number(0.0)); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; evaluationUnit.RegisterInputParam(new Param_Boolean(), "UseOnly2_3", "UseOnly2_3", "Use only 2/3 of the studs.", GH_ParamAccess.item, new GH_Boolean(false)); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + GH_ExtendableMenu gH_ExtendableMenu0 = new GH_ExtendableMenu(0, ""); + gH_ExtendableMenu0.Name = "Stud"; + gH_ExtendableMenu0.Expand(); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[2]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[3]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[4]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[5]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[6]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[7]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[8]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[9]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[10]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[11]); + evaluationUnit.AddMenu(gH_ExtendableMenu0); } public override void SolveInstance(IGH_DataAccess DA, out string msg, out GH_RuntimeMessageLevel level) @@ -53,53 +78,82 @@ public override void SolveInstance(IGH_DataAccess DA, out string msg, out GH_Run msg = ""; level = GH_RuntimeMessageLevel.Warning; + var plane = Rhino.Geometry.Plane.WorldXY; + DA.GetData(0, ref plane); + + Rhino.Geometry.Brep region = null; + DA.GetData(1, ref region); + string pattern = ""; - DA.GetData(0, ref pattern); + DA.GetData(2, ref pattern); + + //var _pattern = FemDesign.GenericClasses.EnumParser.Parse(pattern); var reinforcement = new FemDesign.Materials.Material(); - DA.GetData(1, ref reinforcement); + DA.GetData(3, ref reinforcement); var diameter = 16.0; - DA.GetData(2, ref diameter); + DA.GetData(4, ref diameter); + diameter /= 1000; // mm to m var numberRails = 2; - DA.GetData(3, ref numberRails); + DA.GetData(5, ref numberRails); var numberStudsPerMeter = 4; - DA.GetData(4, ref numberStudsPerMeter); + DA.GetData(6, ref numberStudsPerMeter); var so = 150.0; - DA.GetData(5, ref so); + DA.GetData(7, ref so); + so = so/1000; // mm to m var s1 = 200.0; - DA.GetData(6, ref s1); + DA.GetData(8, ref s1); + s1 = s1/1000; // mm to m var s2 = 300.0; - DA.GetData(7, ref s2); + DA.GetData(9, ref s2); + s2 = s2/1000; // mm to m double? height = 0.00; - DA.GetData(8, ref height); + DA.GetData(10, ref height); + height = height == 0.00 ? null : height/1000; var useOnly2_3 = false; - DA.GetData(9, ref useOnly2_3); + DA.GetData(11, ref useOnly2_3); + + var punchingReinforcement = new FemDesign.Reinforcement.PunchingReinforcement(); + { + // punching area + var punchingArea = new FemDesign.Reinforcement.PunchingArea(); + punchingArea.LocalPos = plane.Origin.FromRhino(); + punchingArea.LocalX = plane.XAxis.FromRhino(); + punchingArea.LocalY = plane.YAxis.FromRhino(); + punchingArea.Region = region.FromRhino(); + + punchingReinforcement.PunchingArea = punchingArea; + } + var studRail = new FemDesign.Reinforcement.StudRails(); - studRail.Patter = pattern; - studRail.S0 = so; - studRail.S1 = s1; - studRail.S2 = s2; - studRail.RailsOnCircle = numberRails; - studRail.StudsOnRail = numberStudsPerMeter; - studRail.Height = height == 0.00 ? null : height; - studRail.UseMinimalElements = useOnly2_3; + { + studRail.Pattern = pattern; + studRail.S0 = so; + studRail.S1 = s1; + studRail.S2 = s2; + studRail.RailsOnCircle = numberRails; + studRail.StudsOnRail = numberStudsPerMeter; + //studRail.Height = height == 0.00 ? null : height/1000; + studRail.UseMinimalElements = useOnly2_3; - var generalProduct = new FemDesign.Reinforcement.GeneralProduct(); - generalProduct.Wire = new FemDesign.Reinforcement.Wire(diameter, reinforcement, Reinforcement.WireProfileType.Ribbed); + var generalProduct = new FemDesign.Reinforcement.GeneralProduct(); + generalProduct.Wire = new FemDesign.Reinforcement.Wire(diameter, reinforcement, Reinforcement.WireProfileType.Ribbed); - studRail.GeneralProduct = generalProduct; + studRail.GeneralProduct = generalProduct; + } + punchingReinforcement.StudRails = studRail; - DA.SetData(0, studRail); + DA.SetData(0, punchingReinforcement); } } } \ No newline at end of file From 575dc27f0425d0f066628b9a0e0710daedde8e08 Mon Sep 17 00:00:00 2001 From: MP Date: Tue, 18 Nov 2025 17:28:24 +0100 Subject: [PATCH 13/54] =?UTF-8?q?=F0=9F=91=B7=20punching=20reinforcement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reinforcement/PunchingReinforcement.cs | 2 +- .../Reinforcement/Punching/PunchingBase.cs | 2 +- .../Reinforcement/Punching/StirrupOpen.cs | 11 +++++++++-- .../Reinforcement/Punching/StudRail.cs | 4 ++-- FemDesign.Tests/Model/ModelTests.cs | 15 ++++++++++++++- 5 files changed, 27 insertions(+), 7 deletions(-) diff --git a/FemDesign.Core/Reinforcement/PunchingReinforcement.cs b/FemDesign.Core/Reinforcement/PunchingReinforcement.cs index 61e7931be..d940c85c2 100644 --- a/FemDesign.Core/Reinforcement/PunchingReinforcement.cs +++ b/FemDesign.Core/Reinforcement/PunchingReinforcement.cs @@ -150,7 +150,7 @@ public partial class StudRails public PeikkoPsbProduct PeikkoPsbProduct { get; set; } [XmlAttribute("pattern")] - public string Pattern { get; set; } + public Pattern Pattern { get; set; } [XmlAttribute("s0")] public double _s0 { get; set; } diff --git a/FemDesign.Grasshopper/Reinforcement/Punching/PunchingBase.cs b/FemDesign.Grasshopper/Reinforcement/Punching/PunchingBase.cs index afde25653..d75e22169 100644 --- a/FemDesign.Grasshopper/Reinforcement/Punching/PunchingBase.cs +++ b/FemDesign.Grasshopper/Reinforcement/Punching/PunchingBase.cs @@ -48,7 +48,7 @@ protected override void RegisterEvaluationUnits(EvaluationUnitManager mngr) { _subcomponents.Add(new StudRail()); _subcomponents.Add(new StirrupCircular()); - _subcomponents.Add(new BendedBar()); + //_subcomponents.Add(new BendedBar()); _subcomponents.Add(new StirrupOpen()); diff --git a/FemDesign.Grasshopper/Reinforcement/Punching/StirrupOpen.cs b/FemDesign.Grasshopper/Reinforcement/Punching/StirrupOpen.cs index ed65369f8..37e853c7b 100644 --- a/FemDesign.Grasshopper/Reinforcement/Punching/StirrupOpen.cs +++ b/FemDesign.Grasshopper/Reinforcement/Punching/StirrupOpen.cs @@ -33,7 +33,7 @@ public override void registerEvaluationUnits(EvaluationUnitManager mngr) evaluationUnit.RegisterInputParam(new Param_Number(), "Width", "Width", "[m]", GH_ParamAccess.item); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; - evaluationUnit.RegisterInputParam(new Param_GenericObject(), "Length", "Length", "", GH_ParamAccess.item); + evaluationUnit.RegisterInputParam(new Param_Number(), "Length", "Length", "", GH_ParamAccess.item); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; evaluationUnit.RegisterInputParam(new Param_Number(), "Height", "Height", "[mm]", GH_ParamAccess.item); @@ -45,6 +45,9 @@ public override void registerEvaluationUnits(EvaluationUnitManager mngr) evaluationUnit.RegisterInputParam(new Param_Number(), "Distance_Y", "Distance_Y", "[mm]", GH_ParamAccess.item); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + evaluationUnit.RegisterInputParam(new Param_Brep(), "RegionStirrups", "RegionStirrups", "", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; + GH_ExtendableMenu gH_ExtendableMenu0 = new GH_ExtendableMenu(0, ""); @@ -57,6 +60,7 @@ public override void registerEvaluationUnits(EvaluationUnitManager mngr) gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[6]); gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[7]); gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[8]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[9]); evaluationUnit.AddMenu(gH_ExtendableMenu0); } @@ -98,6 +102,9 @@ public override void SolveInstance(IGH_DataAccess DA, out string msg, out GH_Run DA.GetData(8, ref distance_y); distance_y /= 1000.0; // mm to m + Rhino.Geometry.Brep regionStirrups = null; + DA.GetData(9, ref regionStirrups); + var punchingReinforcement = new FemDesign.Reinforcement.PunchingReinforcement(); { // punching area @@ -113,7 +120,7 @@ public override void SolveInstance(IGH_DataAccess DA, out string msg, out GH_Run var openStirrups = new FemDesign.Reinforcement.OpenStirrups(); { openStirrups.Wire = new FemDesign.Reinforcement.Wire(stirrupDiameter, stirrupQuality, Reinforcement.WireProfileType.Ribbed); - openStirrups.Region = region.FromRhino(); + openStirrups.Region = regionStirrups.FromRhino(); openStirrups.Width = stirrupWidth; openStirrups.Length = stirrupLength; openStirrups.Height = stirrupHeight; diff --git a/FemDesign.Grasshopper/Reinforcement/Punching/StudRail.cs b/FemDesign.Grasshopper/Reinforcement/Punching/StudRail.cs index dba3b8839..6c33be322 100644 --- a/FemDesign.Grasshopper/Reinforcement/Punching/StudRail.cs +++ b/FemDesign.Grasshopper/Reinforcement/Punching/StudRail.cs @@ -87,7 +87,7 @@ public override void SolveInstance(IGH_DataAccess DA, out string msg, out GH_Run string pattern = ""; DA.GetData(2, ref pattern); - //var _pattern = FemDesign.GenericClasses.EnumParser.Parse(pattern); + var _pattern = FemDesign.GenericClasses.EnumParser.Parse(pattern); var reinforcement = new FemDesign.Materials.Material(); DA.GetData(3, ref reinforcement); @@ -136,7 +136,7 @@ public override void SolveInstance(IGH_DataAccess DA, out string msg, out GH_Run var studRail = new FemDesign.Reinforcement.StudRails(); { - studRail.Pattern = pattern; + studRail.Pattern = _pattern; studRail.S0 = so; studRail.S1 = s1; studRail.S2 = s2; diff --git a/FemDesign.Tests/Model/ModelTests.cs b/FemDesign.Tests/Model/ModelTests.cs index e1e079875..ca1aa2d8b 100644 --- a/FemDesign.Tests/Model/ModelTests.cs +++ b/FemDesign.Tests/Model/ModelTests.cs @@ -139,10 +139,23 @@ public void Open() Model model = new Model(Country.S); using (var connection = new FemDesign.FemDesignConnection()) { - connection.Open(model, true); + connection.Open(model); } } + + [TestCategory("FEM-Design required")] + [TestMethod("Open a Model")] + public void OpenGlobalModel() + { + + string filePath = "Model/global-test-model_MASTER_OUT.struxml"; + var model = Model.DeserializeFromFilePath(filePath); + + Assert.IsTrue(model.Entities.Bars.Count > 1); + + } + /// /// Test if the global model can be deep cloned. /// From 0049e22815ec7cae0043f43015d5921492cf571e Mon Sep 17 00:00:00 2001 From: MP Date: Wed, 19 Nov 2025 11:33:35 +0100 Subject: [PATCH 14/54] =?UTF-8?q?=F0=9F=91=B7=20punching?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FemDesign.Grasshopper/Reinforcement/Punching/BendedBar.cs | 3 ++- .../Reinforcement/Punching/StirrupCircular.cs | 3 ++- FemDesign.Grasshopper/Reinforcement/Punching/StirrupOpen.cs | 3 ++- FemDesign.Grasshopper/Reinforcement/Punching/StudRail.cs | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/FemDesign.Grasshopper/Reinforcement/Punching/BendedBar.cs b/FemDesign.Grasshopper/Reinforcement/Punching/BendedBar.cs index 4c00a07d7..60cbf6abd 100644 --- a/FemDesign.Grasshopper/Reinforcement/Punching/BendedBar.cs +++ b/FemDesign.Grasshopper/Reinforcement/Punching/BendedBar.cs @@ -16,7 +16,8 @@ public override void registerEvaluationUnits(EvaluationUnitManager mngr) { EvaluationUnit evaluationUnit = new EvaluationUnit(name(), display_name(), ""); mngr.RegisterUnit(evaluationUnit); - //evaluationUnit.Icon = FemDesign.Properties.Resources.BendedBar; + evaluationUnit.Icon = FemDesign.Properties.Resources.BendedBar; + evaluationUnit.RegisterInputParam(new Param_Plane(), "Point|Plane", "Point|Plane", "", GH_ParamAccess.item); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; diff --git a/FemDesign.Grasshopper/Reinforcement/Punching/StirrupCircular.cs b/FemDesign.Grasshopper/Reinforcement/Punching/StirrupCircular.cs index 36a94f259..0aa57500f 100644 --- a/FemDesign.Grasshopper/Reinforcement/Punching/StirrupCircular.cs +++ b/FemDesign.Grasshopper/Reinforcement/Punching/StirrupCircular.cs @@ -16,7 +16,8 @@ public override void registerEvaluationUnits(EvaluationUnitManager mngr) { EvaluationUnit evaluationUnit = new EvaluationUnit(name(), display_name(), ""); mngr.RegisterUnit(evaluationUnit); - //evaluationUnit.Icon = FemDesign.Properties.Resources.StirrupCircular; + evaluationUnit.Icon = FemDesign.Properties.Resources.StirrupCircular; + evaluationUnit.RegisterInputParam(new Param_Plane(), "Point|Plane", "Point|Plane", "", GH_ParamAccess.item); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; diff --git a/FemDesign.Grasshopper/Reinforcement/Punching/StirrupOpen.cs b/FemDesign.Grasshopper/Reinforcement/Punching/StirrupOpen.cs index 37e853c7b..4b32a8c4b 100644 --- a/FemDesign.Grasshopper/Reinforcement/Punching/StirrupOpen.cs +++ b/FemDesign.Grasshopper/Reinforcement/Punching/StirrupOpen.cs @@ -16,7 +16,8 @@ public override void registerEvaluationUnits(EvaluationUnitManager mngr) { EvaluationUnit evaluationUnit = new EvaluationUnit(name(), display_name(), ""); mngr.RegisterUnit(evaluationUnit); - //evaluationUnit.Icon = FemDesign.Properties.Resources.StirrupCircular; + evaluationUnit.Icon = FemDesign.Properties.Resources.StirrupOpen; + evaluationUnit.RegisterInputParam(new Param_Plane(), "Point|Plane", "Point|Plane", "", GH_ParamAccess.item); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; diff --git a/FemDesign.Grasshopper/Reinforcement/Punching/StudRail.cs b/FemDesign.Grasshopper/Reinforcement/Punching/StudRail.cs index 6c33be322..de5e3b0f6 100644 --- a/FemDesign.Grasshopper/Reinforcement/Punching/StudRail.cs +++ b/FemDesign.Grasshopper/Reinforcement/Punching/StudRail.cs @@ -1,5 +1,6 @@ using FemDesign.Grasshopper.Components.UIWidgets; using FemDesign.Loads; +using FemDesign.Properties; using GH_IO.Types; using Grasshopper.Kernel; using Grasshopper.Kernel.Parameters; @@ -18,7 +19,7 @@ public override void registerEvaluationUnits(EvaluationUnitManager mngr) { EvaluationUnit evaluationUnit = new EvaluationUnit(name(), display_name(), ""); mngr.RegisterUnit(evaluationUnit); - //evaluationUnit.Icon = FemDesign.Properties.Resources.StudRail; + evaluationUnit.Icon = FemDesign.Properties.Resources.StudRail; evaluationUnit.RegisterInputParam(new Param_Plane(), "Point|Plane", "Point|Plane", "", GH_ParamAccess.item); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = false; From 187a816f3eca62e8d87ad1b15bd0e4fe3b081173 Mon Sep 17 00:00:00 2001 From: MP Date: Wed, 19 Nov 2025 12:00:42 +0100 Subject: [PATCH 15/54] =?UTF-8?q?=E2=9C=A8=20concreteDesignConfig?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Config/ConcreteDesignConfiguration.cs | 22 ++++++++++++++----- .../Configs/ConcreteDesignConfig.cs | 7 +++++- .../Configs/SteelDesignConfiguration.cs | 1 - .../Loads/Load groups/AccidentalLoadGroup.cs | 1 - .../Loads/Load groups/PermanentLoadGroup.cs | 1 - .../Loads/Load groups/StressLoadGroup.cs | 1 - FemDesign.Tests/Calculate/CmdConfigTests.cs | 1 + 7 files changed, 23 insertions(+), 11 deletions(-) diff --git a/FemDesign.Core/Calculate/Config/ConcreteDesignConfiguration.cs b/FemDesign.Core/Calculate/Config/ConcreteDesignConfiguration.cs index 586650cd0..cdf393949 100644 --- a/FemDesign.Core/Calculate/Config/ConcreteDesignConfiguration.cs +++ b/FemDesign.Core/Calculate/Config/ConcreteDesignConfiguration.cs @@ -52,29 +52,39 @@ public enum CalculationMethod [XmlAttribute("fReopeningCracks")] public bool ReopeningCracks { get; set; } = false; + /// + /// Use upper limit for Eq. 7.11 + /// + [XmlAttribute("fUseUpperLimitForEq711")] + public bool UseUpperLimitForEq711 { get; set; } = false; + - private ConcreteDesignConfig() + /// + /// Concrete design configuration + /// + public ConcreteDesignConfig() { } - public ConcreteDesignConfig(CalculationMethod secondOrder, bool crackQuasiPermanent = true, bool crackFrequent = false, bool crackCharacteristic = false, bool reopeningCracks = false) + public ConcreteDesignConfig(CalculationMethod secondOrder, bool crackQuasiPermanent = true, bool crackFrequent = false, bool crackCharacteristic = false, bool reopeningCracks = false, bool useUpperLimitForEq711 = false) { SecondOrderCalculationMethod = secondOrder; CrackWidthQuasiPermanent = crackQuasiPermanent; CrackWidthFrequent = crackFrequent; CrackWidthCharacteristic = crackCharacteristic; ReopeningCracks = reopeningCracks; + UseUpperLimitForEq711 = useUpperLimitForEq711; } - public static ConcreteDesignConfig NominalStiffness(bool crackQuasiPermanent = true, bool crackFrequent = false, bool crackCharacteristic = false) + public static ConcreteDesignConfig NominalStiffness(bool crackQuasiPermanent = true, bool crackFrequent = false, bool crackCharacteristic = false, bool useUpperLimitForEq711 = false) { - return new ConcreteDesignConfig(CalculationMethod.NominalStiffness, crackQuasiPermanent, crackFrequent, crackCharacteristic); + return new ConcreteDesignConfig(CalculationMethod.NominalStiffness, crackQuasiPermanent, crackFrequent, crackCharacteristic, useUpperLimitForEq711: useUpperLimitForEq711); } - public static ConcreteDesignConfig NominalCurvature(bool crackQuasiPermanent = true, bool crackFrequent = false, bool crackCharacteristic = false) + public static ConcreteDesignConfig NominalCurvature(bool crackQuasiPermanent = true, bool crackFrequent = false, bool crackCharacteristic = false, bool useUpperLimitForEq711 = false) { - return new ConcreteDesignConfig(CalculationMethod.NominalCurvature, crackQuasiPermanent, crackFrequent, crackCharacteristic); + return new ConcreteDesignConfig(CalculationMethod.NominalCurvature, crackQuasiPermanent, crackFrequent, crackCharacteristic, useUpperLimitForEq711: useUpperLimitForEq711); } } diff --git a/FemDesign.Grasshopper/Calculate/Configurations/Configs/ConcreteDesignConfig.cs b/FemDesign.Grasshopper/Calculate/Configurations/Configs/ConcreteDesignConfig.cs index 361257dad..fabdb50c5 100644 --- a/FemDesign.Grasshopper/Calculate/Configurations/Configs/ConcreteDesignConfig.cs +++ b/FemDesign.Grasshopper/Calculate/Configurations/Configs/ConcreteDesignConfig.cs @@ -40,6 +40,9 @@ public override void registerEvaluationUnits(EvaluationUnitManager mngr) evaluationUnit.RegisterInputParam(new Param_Boolean(), "ReopeningCracks", "ReopeningCracks", "", GH_ParamAccess.item, new GH_Boolean(false)); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Boolean(), "UseUpperLimitForEq711", "UseUpperLimitForEq711", "", GH_ParamAccess.item, new GH_Boolean(false)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; } public override void SolveInstance(IGH_DataAccess DA, out string msg, out GH_RuntimeMessageLevel level) @@ -64,8 +67,10 @@ public override void SolveInstance(IGH_DataAccess DA, out string msg, out GH_Run bool reopeningCracks = false; DA.GetData(4, ref reopeningCracks); + bool UseUpperLimitForEq711 = false; + DA.GetData(5, ref UseUpperLimitForEq711); - var concreteDesignParameters = new FemDesign.Calculate.ConcreteDesignConfig(_calculationMethod, crackQuasiPermanent, crackFrequent, crackCharacteristic, reopeningCracks); + var concreteDesignParameters = new FemDesign.Calculate.ConcreteDesignConfig(_calculationMethod, crackQuasiPermanent, crackFrequent, crackCharacteristic, reopeningCracks, UseUpperLimitForEq711); DA.SetData(0, concreteDesignParameters); } diff --git a/FemDesign.Grasshopper/Calculate/Configurations/Configs/SteelDesignConfiguration.cs b/FemDesign.Grasshopper/Calculate/Configurations/Configs/SteelDesignConfiguration.cs index 570d9a8c6..802ca727b 100644 --- a/FemDesign.Grasshopper/Calculate/Configurations/Configs/SteelDesignConfiguration.cs +++ b/FemDesign.Grasshopper/Calculate/Configurations/Configs/SteelDesignConfiguration.cs @@ -11,7 +11,6 @@ using FemDesign.Loads; using FemDesign.Grasshopper.Extension.ComponentExtension; using Grasshopper.Kernel.Special; -using static FemDesign.Calculate.ConcreteDesignConfig; using FemDesign.GenericClasses; using FemDesign.Calculate; diff --git a/FemDesign.Grasshopper/Loads/Load groups/AccidentalLoadGroup.cs b/FemDesign.Grasshopper/Loads/Load groups/AccidentalLoadGroup.cs index 4a9e4c944..f98aaa53b 100644 --- a/FemDesign.Grasshopper/Loads/Load groups/AccidentalLoadGroup.cs +++ b/FemDesign.Grasshopper/Loads/Load groups/AccidentalLoadGroup.cs @@ -11,7 +11,6 @@ using FemDesign.Loads; using FemDesign.Grasshopper.Extension.ComponentExtension; using Grasshopper.Kernel.Special; -using static FemDesign.Calculate.ConcreteDesignConfig; using FemDesign.GenericClasses; using FemDesign.Calculate; using static System.Windows.Forms.VisualStyles.VisualStyleElement.ToolTip; diff --git a/FemDesign.Grasshopper/Loads/Load groups/PermanentLoadGroup.cs b/FemDesign.Grasshopper/Loads/Load groups/PermanentLoadGroup.cs index d9d39f38c..db13722a6 100644 --- a/FemDesign.Grasshopper/Loads/Load groups/PermanentLoadGroup.cs +++ b/FemDesign.Grasshopper/Loads/Load groups/PermanentLoadGroup.cs @@ -11,7 +11,6 @@ using FemDesign.Loads; using FemDesign.Grasshopper.Extension.ComponentExtension; using Grasshopper.Kernel.Special; -using static FemDesign.Calculate.ConcreteDesignConfig; using FemDesign.GenericClasses; using FemDesign.Calculate; diff --git a/FemDesign.Grasshopper/Loads/Load groups/StressLoadGroup.cs b/FemDesign.Grasshopper/Loads/Load groups/StressLoadGroup.cs index 5d3e5f3f6..659356269 100644 --- a/FemDesign.Grasshopper/Loads/Load groups/StressLoadGroup.cs +++ b/FemDesign.Grasshopper/Loads/Load groups/StressLoadGroup.cs @@ -11,7 +11,6 @@ using FemDesign.Loads; using FemDesign.Grasshopper.Extension.ComponentExtension; using Grasshopper.Kernel.Special; -using static FemDesign.Calculate.ConcreteDesignConfig; using FemDesign.GenericClasses; using FemDesign.Calculate; diff --git a/FemDesign.Tests/Calculate/CmdConfigTests.cs b/FemDesign.Tests/Calculate/CmdConfigTests.cs index a9cca46d2..bee93094c 100644 --- a/FemDesign.Tests/Calculate/CmdConfigTests.cs +++ b/FemDesign.Tests/Calculate/CmdConfigTests.cs @@ -54,6 +54,7 @@ public void CreateConfigSteel() // Concrete calculation parameters var concreteConfig = new Calculate.ConcreteDesignConfig(ConcreteDesignConfig.CalculationMethod.NominalCurvature, true, false, true); concreteConfig.ReopeningCracks = true; + concreteConfig.UseUpperLimitForEq711 = true; var cmdConfig = new CmdConfig(configPath, ecst, steelDesign, steelConfig, concreteConfig); From e0357a62501425ef7b744143b194dec630c657de Mon Sep 17 00:00:00 2001 From: MP Date: Wed, 19 Nov 2025 14:43:44 +0100 Subject: [PATCH 16/54] Update MaterialSetConcreteMaterialProperties.cs --- .../Materials/MaterialSetConcreteMaterialProperties.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/FemDesign.Grasshopper/Materials/MaterialSetConcreteMaterialProperties.cs b/FemDesign.Grasshopper/Materials/MaterialSetConcreteMaterialProperties.cs index d25ead939..aee81efbd 100644 --- a/FemDesign.Grasshopper/Materials/MaterialSetConcreteMaterialProperties.cs +++ b/FemDesign.Grasshopper/Materials/MaterialSetConcreteMaterialProperties.cs @@ -62,7 +62,6 @@ protected override void SolveInstance(IGH_DataAccess DA) // FemDesign.Materials.Material modifiedMaterial = FemDesign.Materials.Material.ConcreteMaterialProperties(material, creepUls, creepSlq, creepSlf, creepSlc, shrinkage); - modifiedMaterial.EntityModified(); // set output DA.SetData(0, modifiedMaterial); From bffd78e327787d5ee5ad0416c7094cce38718dba Mon Sep 17 00:00:00 2001 From: MP Date: Wed, 19 Nov 2025 18:22:20 +0100 Subject: [PATCH 17/54] =?UTF-8?q?=F0=9F=91=B7=20time=20dependant=20propert?= =?UTF-8?q?ies?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #1179 --- FemDesign.Core/FemDesign.Core.csproj | 1 + FemDesign.Core/Materials/Concrete.cs | 13 +- FemDesign.Core/Materials/Material.cs | 85 + .../Struxml/Data/FEM-Design 24.00.005.cs | 39978 ++++++++++++++++ .../FemDesign.Grasshopper.csproj | 1 + .../Materials/SetConcretePlasticity.cs | 2 +- .../Materials/SetConcreteTimeDependant.cs | 244 + .../PostTensionCable/Reinforcement.Ptc.cs | 2 +- .../Reinforcement/Punching/PunchingBase.cs | 2 +- 9 files changed, 40319 insertions(+), 9 deletions(-) create mode 100644 FemDesign.Core/Strusoft/Interop/Struxml/Data/FEM-Design 24.00.005.cs create mode 100644 FemDesign.Grasshopper/Materials/SetConcreteTimeDependant.cs diff --git a/FemDesign.Core/FemDesign.Core.csproj b/FemDesign.Core/FemDesign.Core.csproj index 1798cd886..e3e50631b 100644 --- a/FemDesign.Core/FemDesign.Core.csproj +++ b/FemDesign.Core/FemDesign.Core.csproj @@ -143,6 +143,7 @@ + diff --git a/FemDesign.Core/Materials/Concrete.cs b/FemDesign.Core/Materials/Concrete.cs index 651c6d6e3..b69c523a7 100644 --- a/FemDesign.Core/Materials/Concrete.cs +++ b/FemDesign.Core/Materials/Concrete.cs @@ -1,6 +1,6 @@ // https://strusoft.com/ -using StruSoft.Interop.StruXml.Data; +using StruSoft.Interop; using System.Xml.Serialization; namespace FemDesign.Materials @@ -12,16 +12,16 @@ namespace FemDesign.Materials public partial class Concrete: MaterialBase { [XmlElement("tda_creep")] - public StruSoft.Interop.StruXml.Data.Tda_creep2 CreepTimeDependant { get; set; } + public StruSoft.Interop.Tda_creep2 CreepTimeDependant { get; set; } [XmlElement("tda_shrinkage")] - public StruSoft.Interop.StruXml.Data.Tda_shrinkage ShrinkageTimeDependant { get; set; } + public StruSoft.Interop.Tda_shrinkage ShrinkageTimeDependant { get; set; } [XmlElement("tda_elasticity")] - public StruSoft.Interop.StruXml.Data.Tda_elasticity ElasticityTimeDependant { get; set; } + public StruSoft.Interop.Tda_elasticity ElasticityTimeDependant { get; set; } [XmlElement("plastic_analysis_data")] - public StruSoft.Interop.StruXml.Data.Concrete_pl_data Plasticity { get; set; } + public StruSoft.Interop.Concrete_pl_data Plasticity { get; set; } [XmlAttribute("Fck")] public string Fck { get; set; } // material_base_value @@ -101,7 +101,7 @@ internal void SetMaterialParameters(double creepUls, double creepSlq, double cre internal void SetPlasticity(bool plastic = true, bool hardening = true, CrushingCriterion crushing = CrushingCriterion.Prager, bool tensionStrength = true, TensionStiffening tensionStiffening = TensionStiffening.Hinton, ReducedCompression reducedCompression = ReducedCompression.Vecchio1, bool reducedTransverse = false, bool ultimateStrainRebars = true ) { - var plasticity = new StruSoft.Interop.StruXml.Data.Concrete_pl_attribs(); + var plasticity = new StruSoft.Interop.Concrete_pl_attribs(); plasticity.Elasto_plastic_behaviour = plastic; plasticity.Plastic_hardening = hardening; @@ -160,6 +160,7 @@ internal void SetPlasticity(bool plastic = true, bool hardening = true, Crushing this.Plasticity.Sc = plasticity; } + } public enum CrushingCriterion diff --git a/FemDesign.Core/Materials/Material.cs b/FemDesign.Core/Materials/Material.cs index ff8363240..f4e5e9ec5 100644 --- a/FemDesign.Core/Materials/Material.cs +++ b/FemDesign.Core/Materials/Material.cs @@ -232,5 +232,90 @@ public static Material SetConcretePlasticity(this Material material, bool plasti return newMaterial; } + public static Material SetCreep(this Material material, int to, int humidity, bool calculateAc, double ac, double u, bool nonLinearCreep, StruSoft.Interop.Cement_type cementType, bool increaseFinalValue) + { + if (material.Concrete == null) + { + throw new System.ArgumentException("Material must be concrete!"); + } + + // deep clone. downstreams objs will have contain changes made in this method, upstream objs will not. + var creep = new StruSoft.Interop.Tda_creep2(); + creep.EN_199211_2004 = new StruSoft.Interop.Tda_creep_EN1992() + { + T0 = to, + RH = humidity, + Calculate_Ac_u = calculateAc, + Ac = ac, + U = u, + Sigma_relevant = nonLinearCreep, + Cement_type = cementType, + Increase_final_value = increaseFinalValue + }; + + + Material newMaterial = material.DeepClone(); + newMaterial.EntityCreated(); + newMaterial.Concrete.CreepTimeDependant = creep; + newMaterial.EntityModified(); + + // return + return newMaterial; + } + + public static Material SetShrinkage(this Material material, int to, int humidity, bool calculateAc, double ac, double u, StruSoft.Interop.Cement_type cementType) + { + if (material.Concrete == null) + { + throw new System.ArgumentException("Material must be concrete!"); + } + + // deep clone. downstreams objs will have contain changes made in this method, upstream objs will not. + var shrinkage = new StruSoft.Interop.Tda_shrinkage(); + shrinkage.EN_199211_2004 = new StruSoft.Interop.Tda_shrinkageEN_199211_2004() + { + Ts = to, + RH = humidity, + Calculate_Ac_u = calculateAc, + Ac = ac, + U = u, + Cement_type = cementType, + }; + + + Material newMaterial = material.DeepClone(); + newMaterial.EntityCreated(); + newMaterial.Concrete.ShrinkageTimeDependant = shrinkage; + newMaterial.EntityModified(); + + // return + return newMaterial; + } + + public static Material setElasticity(this Material material, int to, StruSoft.Interop.Cement_type cementType) + { + if (material.Concrete == null) + { + throw new System.ArgumentException("Material must be concrete!"); + } + + // deep clone. downstreams objs will have contain changes made in this method, upstream objs will not. + var elasticity = new StruSoft.Interop.Tda_elasticity(); + elasticity.EN_199211_2004 = new StruSoft.Interop.Tda_elasticityEN_199211_2004() + { + T0 = to, + Cement_type = cementType, + }; + + + Material newMaterial = material.DeepClone(); + newMaterial.EntityCreated(); + newMaterial.Concrete.ElasticityTimeDependant = elasticity; + newMaterial.EntityModified(); + + // return + return newMaterial; + } + } } \ No newline at end of file diff --git a/FemDesign.Core/Strusoft/Interop/Struxml/Data/FEM-Design 24.00.005.cs b/FemDesign.Core/Strusoft/Interop/Struxml/Data/FEM-Design 24.00.005.cs new file mode 100644 index 000000000..894f2c4e9 --- /dev/null +++ b/FemDesign.Core/Strusoft/Interop/Struxml/Data/FEM-Design 24.00.005.cs @@ -0,0 +1,39978 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// This code was generated by XmlSchemaClassGenerator version 2.1.1162.0 +namespace StruSoft.Interop +{ + + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("last_stage_value", Namespace="urn:strusoft")] + public enum Last_stage_value + { + + [System.Xml.Serialization.XmlEnumAttribute("last_stage")] + Last_stage, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("stiffness_max_reached", Namespace="urn:strusoft")] + public enum Stiffness_max_reached + { + + [System.Xml.Serialization.XmlEnumAttribute("6E66")] + Item6E66, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("segmentposition_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Segmentposition_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("start")] + public double Start { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("end")] + public double End { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Segmentposition_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("quadrant", Namespace="urn:strusoft")] + public enum Quadrant + { + + [System.Xml.Serialization.XmlEnumAttribute("0")] + Item0, + + [System.Xml.Serialization.XmlEnumAttribute("90")] + Item90, + + [System.Xml.Serialization.XmlEnumAttribute("180")] + Item180, + + [System.Xml.Serialization.XmlEnumAttribute("270")] + Item270, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("direction_2d_type", Namespace="urn:strusoft")] + public enum Direction_2d_type + { + + [System.Xml.Serialization.XmlEnumAttribute("horizontal")] + Horizontal, + + [System.Xml.Serialization.XmlEnumAttribute("vertical")] + Vertical, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("guid_list_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Guid_list_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Guid_list_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("two_guid_list_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Two_guid_list_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("first")] + public string First { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("second")] + public string Second { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Two_guid_list_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("three_guid_list_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Three_guid_list_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("first")] + public string First { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("second")] + public string Second { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("third")] + public string Third { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Three_guid_list_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("rectangle_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Rectangle_type + { + + [System.Xml.Serialization.XmlElementAttribute("base_corner")] + public Point_type_3d Base_corner { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("x_direction")] + public Point_type_3d X_direction { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("y_direction")] + public Point_type_3d Y_direction { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("x_size")] + public double X_size { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("y_size")] + public double Y_size { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Rectangle_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("point_type_3d", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Location_value))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Topbottom_value))] + public partial class Point_type_3d : Point_type_2d + { + + [System.Xml.Serialization.XmlAttributeAttribute("z")] + public double Z { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("point_type_2d", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Location_value))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Point_type_3d))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Topbottom_value))] + public partial class Point_type_2d : Point_type_1d + { + + [System.Xml.Serialization.XmlAttributeAttribute("y")] + public double Y { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("point_type_1d", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Location_value))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Point_type_2d))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Point_type_3d))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Topbottom_value))] + public partial class Point_type_1d + { + + [System.Xml.Serialization.XmlAttributeAttribute("x")] + public double X { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Point_type_1d() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("fd_mat_type", Namespace="urn:strusoft")] + public enum Fd_mat_type + { + + [System.Xml.Serialization.XmlEnumAttribute("0")] + Item0, + + [System.Xml.Serialization.XmlEnumAttribute("1")] + Item1, + + [System.Xml.Serialization.XmlEnumAttribute("2")] + Item2, + + [System.Xml.Serialization.XmlEnumAttribute("3")] + Item3, + + [System.Xml.Serialization.XmlEnumAttribute("4")] + Item4, + + [System.Xml.Serialization.XmlEnumAttribute("65535")] + Item65535, + + [System.Xml.Serialization.XmlEnumAttribute("-1")] + Item_1, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("detach_type", Namespace="urn:strusoft")] + public enum Detach_type + { + + [System.Xml.Serialization.XmlEnumAttribute("")] + Empty, + + [System.Xml.Serialization.XmlEnumAttribute("x_tens")] + X_tens, + + [System.Xml.Serialization.XmlEnumAttribute("x_comp")] + X_comp, + + [System.Xml.Serialization.XmlEnumAttribute("y_tens")] + Y_tens, + + [System.Xml.Serialization.XmlEnumAttribute("y_comp")] + Y_comp, + + [System.Xml.Serialization.XmlEnumAttribute("z_tens")] + Z_tens, + + [System.Xml.Serialization.XmlEnumAttribute("z_comp")] + Z_comp, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("foundationsystems_type", Namespace="urn:strusoft")] + public enum Foundationsystems_type + { + + [System.Xml.Serialization.XmlEnumAttribute("simple")] + Simple, + + [System.Xml.Serialization.XmlEnumAttribute("surface_support_group")] + Surface_support_group, + + [System.Xml.Serialization.XmlEnumAttribute("from_soil")] + From_soil, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("slabfoundationsystems_type", Namespace="urn:strusoft")] + public enum Slabfoundationsystems_type + { + + [System.Xml.Serialization.XmlEnumAttribute("surface_support_group")] + Surface_support_group, + + [System.Xml.Serialization.XmlEnumAttribute("from_soil")] + From_soil, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("visiblelinetype", Namespace="urn:strusoft")] + public enum Visiblelinetype + { + + [System.Xml.Serialization.XmlEnumAttribute("line")] + Line, + + [System.Xml.Serialization.XmlEnumAttribute("polyline")] + Polyline, + + [System.Xml.Serialization.XmlEnumAttribute("spline")] + Spline, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("edgetype", Namespace="urn:strusoft")] + public enum Edgetype + { + + [System.Xml.Serialization.XmlEnumAttribute("line")] + Line, + + [System.Xml.Serialization.XmlEnumAttribute("arc")] + Arc, + + [System.Xml.Serialization.XmlEnumAttribute("spline")] + Spline, + + [System.Xml.Serialization.XmlEnumAttribute("polyline")] + Polyline, + + [System.Xml.Serialization.XmlEnumAttribute("circle")] + Circle, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("modification_type", Namespace="urn:strusoft")] + public enum Modification_type + { + + [System.Xml.Serialization.XmlEnumAttribute("added")] + Added, + + [System.Xml.Serialization.XmlEnumAttribute("modified")] + Modified, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("beamtype", Namespace="urn:strusoft")] + public enum Beamtype + { + + [System.Xml.Serialization.XmlEnumAttribute("beam")] + Beam, + + [System.Xml.Serialization.XmlEnumAttribute("column")] + Column, + + [System.Xml.Serialization.XmlEnumAttribute("truss")] + Truss, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("slabtype", Namespace="urn:strusoft")] + public enum Slabtype + { + + [System.Xml.Serialization.XmlEnumAttribute("plate")] + Plate, + + [System.Xml.Serialization.XmlEnumAttribute("wall")] + Wall, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("paneltype", Namespace="urn:strusoft")] + public enum Paneltype + { + + [System.Xml.Serialization.XmlEnumAttribute("concrete")] + Concrete, + + [System.Xml.Serialization.XmlEnumAttribute("timber")] + Timber, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("hor_align", Namespace="urn:strusoft")] + public enum Hor_align + { + + [System.Xml.Serialization.XmlEnumAttribute("left")] + Left, + + [System.Xml.Serialization.XmlEnumAttribute("center")] + Center, + + [System.Xml.Serialization.XmlEnumAttribute("right")] + Right, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ver_align", Namespace="urn:strusoft")] + public enum Ver_align + { + + [System.Xml.Serialization.XmlEnumAttribute("top")] + Top, + + [System.Xml.Serialization.XmlEnumAttribute("center")] + Center, + + [System.Xml.Serialization.XmlEnumAttribute("bottom")] + Bottom, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("sf_rc_face", Namespace="urn:strusoft")] + public enum Sf_rc_face + { + + [System.Xml.Serialization.XmlEnumAttribute("top")] + Top, + + [System.Xml.Serialization.XmlEnumAttribute("bottom")] + Bottom, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("sectiontype", Namespace="urn:strusoft")] + public enum Sectiontype + { + + [System.Xml.Serialization.XmlEnumAttribute("custom")] + Custom, + + I, + + U, + + [System.Xml.Serialization.XmlEnumAttribute("rect")] + Rect, + + [System.Xml.Serialization.XmlEnumAttribute("circle")] + Circle, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("standardtype", Namespace="urn:strusoft")] + public enum Standardtype + { + + EC, + + [System.Xml.Serialization.XmlEnumAttribute("general")] + General, + + [System.Xml.Serialization.XmlEnumAttribute("n/a")] + Na, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("eurocodetype", Namespace="urn:strusoft")] + public enum Eurocodetype + { + + [System.Xml.Serialization.XmlEnumAttribute("common")] + Common, + + H, + + RO, + + DK, + + S, + + N, + + FIN, + + GB, + + D, + + PL, + + TR, + + EST, + + LV, + + NL, + + B, + + E, + + [System.Xml.Serialization.XmlEnumAttribute("n/a")] + Na, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("steelmadetype", Namespace="urn:strusoft")] + public enum Steelmadetype + { + + [System.Xml.Serialization.XmlEnumAttribute("rolled")] + Rolled, + + [System.Xml.Serialization.XmlEnumAttribute("cold_worked")] + Cold_worked, + + [System.Xml.Serialization.XmlEnumAttribute("welded")] + Welded, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("direction_type", Namespace="urn:strusoft")] + public enum Direction_type + { + + [System.Xml.Serialization.XmlEnumAttribute("x")] + X, + + [System.Xml.Serialization.XmlEnumAttribute("y")] + Y, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("empty_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Empty_type + { + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("entity_color", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Entity_color + { + + [System.Xml.Serialization.XmlAttributeAttribute("tone")] + public string Tone { get; set; } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("penwidth")] + public double PenwidthValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool PenwidthValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Penwidth + { + get + { + if (this.PenwidthValueSpecified) + { + return this.PenwidthValue; + } + else + { + return null; + } + } + set + { + this.PenwidthValue = value.GetValueOrDefault(); + this.PenwidthValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Entity_color() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("reference_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Reference_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Reference_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("referencelist_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Referencelist_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _ref; + + [System.Xml.Serialization.XmlElementAttribute("ref")] + public System.Collections.Generic.List Ref + { + get + { + return _ref; + } + set + { + _ref = value; + } + } + + public Referencelist_type() + { + this._ref = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("start_end_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Start_end_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("start")] + public double Start { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("end")] + public double End { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Start_end_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ecc_value_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ecc_value_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("x")] + public double X { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("y")] + public double Y { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("z")] + public double Z { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Ecc_value_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("eccentricity_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Eccentricity_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _analytical; + + [System.Xml.Serialization.XmlElementAttribute("analytical")] + public System.Collections.Generic.List Analytical + { + get + { + return _analytical; + } + set + { + _analytical = value; + } + } + + public Eccentricity_type() + { + this._analytical = new System.Collections.Generic.List(); + this._physical = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _physical; + + [System.Xml.Serialization.XmlElementAttribute("physical")] + public System.Collections.Generic.List Physical + { + get + { + return _physical; + } + set + { + _physical = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("use_default_physical_alignment")] + public bool Use_default_physical_alignment { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("truss_eccentricity_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Truss_eccentricity_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _physical; + + [System.Xml.Serialization.XmlElementAttribute("physical")] + public System.Collections.Generic.List Physical + { + get + { + return _physical; + } + set + { + _physical = value; + } + } + + public Truss_eccentricity_type() + { + this._physical = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("use_default_physical_alignment")] + public bool Use_default_physical_alignment { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("connectivity_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Connectivity_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _predefined_connectivity = "00000000-0000-0000-0000-000000000000"; + + [System.ComponentModel.DefaultValueAttribute("00000000-0000-0000-0000-000000000000")] + [System.Xml.Serialization.XmlAttributeAttribute("predefined_connectivity")] + public string Predefined_connectivity + { + get + { + return _predefined_connectivity; + } + set + { + _predefined_connectivity = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _m_x = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("m_x")] + public bool M_x + { + get + { + return _m_x; + } + set + { + _m_x = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _m_x_release = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("m_x_release")] + public double M_x_release + { + get + { + return _m_x_release; + } + set + { + _m_x_release = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _m_y = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("m_y")] + public bool M_y + { + get + { + return _m_y; + } + set + { + _m_y = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _m_y_release = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("m_y_release")] + public double M_y_release + { + get + { + return _m_y_release; + } + set + { + _m_y_release = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _m_z = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("m_z")] + public bool M_z + { + get + { + return _m_z; + } + set + { + _m_z = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _m_z_release = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("m_z_release")] + public double M_z_release + { + get + { + return _m_z_release; + } + set + { + _m_z_release = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _r_x = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("r_x")] + public bool R_x + { + get + { + return _r_x; + } + set + { + _r_x = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _r_x_release = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("r_x_release")] + public double R_x_release + { + get + { + return _r_x_release; + } + set + { + _r_x_release = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _r_y = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("r_y")] + public bool R_y + { + get + { + return _r_y; + } + set + { + _r_y = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _r_y_release = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("r_y_release")] + public double R_y_release + { + get + { + return _r_y_release; + } + set + { + _r_y_release = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _r_z = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("r_z")] + public bool R_z + { + get + { + return _r_z; + } + set + { + _r_z = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _r_z_release = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("r_z_release")] + public double R_z_release + { + get + { + return _r_z_release; + } + set + { + _r_z_release = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Connectivity_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("simple_connectivity_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Simple_connectivity_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _m_x = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("m_x")] + public bool M_x + { + get + { + return _m_x; + } + set + { + _m_x = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _m_x_release = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("m_x_release")] + public double M_x_release + { + get + { + return _m_x_release; + } + set + { + _m_x_release = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _m_y = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("m_y")] + public bool M_y + { + get + { + return _m_y; + } + set + { + _m_y = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _m_y_release = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("m_y_release")] + public double M_y_release + { + get + { + return _m_y_release; + } + set + { + _m_y_release = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _m_z = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("m_z")] + public bool M_z + { + get + { + return _m_z; + } + set + { + _m_z = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _m_z_release = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("m_z_release")] + public double M_z_release + { + get + { + return _m_z_release; + } + set + { + _m_z_release = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _r_x = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("r_x")] + public bool R_x + { + get + { + return _r_x; + } + set + { + _r_x = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _r_x_release = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("r_x_release")] + public double R_x_release + { + get + { + return _r_x_release; + } + set + { + _r_x_release = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _r_y = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("r_y")] + public bool R_y + { + get + { + return _r_y; + } + set + { + _r_y = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _r_y_release = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("r_y_release")] + public double R_y_release + { + get + { + return _r_y_release; + } + set + { + _r_y_release = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _r_z = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("r_z")] + public bool R_z + { + get + { + return _r_z; + } + set + { + _r_z = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _r_z_release = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("r_z_release")] + public double R_z_release + { + get + { + return _r_z_release; + } + set + { + _r_z_release = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Simple_connectivity_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("plasticity_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Plasticity_type + { + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("neg")] + public double NegValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool NegValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Neg + { + get + { + if (this.NegValueSpecified) + { + return this.NegValue; + } + else + { + return null; + } + } + set + { + this.NegValue = value.GetValueOrDefault(); + this.NegValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("pos")] + public double PosValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool PosValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Pos + { + get + { + if (this.PosValueSpecified) + { + return this.PosValue; + } + else + { + return null; + } + } + set + { + this.PosValue = value.GetValueOrDefault(); + this.PosValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Plasticity_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("plasticity_type2", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Plasticity_type2 + { + + [System.Xml.Serialization.XmlAttributeAttribute("neg")] + public double Neg { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("pos")] + public double Pos { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Plasticity_type2() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("plasticity_type_3d", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Plasticity_type_3d + { + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("x_neg")] + public double X_negValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool X_negValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable X_neg + { + get + { + if (this.X_negValueSpecified) + { + return this.X_negValue; + } + else + { + return null; + } + } + set + { + this.X_negValue = value.GetValueOrDefault(); + this.X_negValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("x_pos")] + public double X_posValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool X_posValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable X_pos + { + get + { + if (this.X_posValueSpecified) + { + return this.X_posValue; + } + else + { + return null; + } + } + set + { + this.X_posValue = value.GetValueOrDefault(); + this.X_posValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("y_neg")] + public double Y_negValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Y_negValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Y_neg + { + get + { + if (this.Y_negValueSpecified) + { + return this.Y_negValue; + } + else + { + return null; + } + } + set + { + this.Y_negValue = value.GetValueOrDefault(); + this.Y_negValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("y_pos")] + public double Y_posValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Y_posValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Y_pos + { + get + { + if (this.Y_posValueSpecified) + { + return this.Y_posValue; + } + else + { + return null; + } + } + set + { + this.Y_posValue = value.GetValueOrDefault(); + this.Y_posValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("z_neg")] + public double Z_negValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Z_negValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Z_neg + { + get + { + if (this.Z_negValueSpecified) + { + return this.Z_negValue; + } + else + { + return null; + } + } + set + { + this.Z_negValue = value.GetValueOrDefault(); + this.Z_negValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("z_pos")] + public double Z_posValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Z_posValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Z_pos + { + get + { + if (this.Z_posValueSpecified) + { + return this.Z_posValue; + } + else + { + return null; + } + } + set + { + this.Z_posValue = value.GetValueOrDefault(); + this.Z_posValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Plasticity_type_3d() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("plasticity3d_force_record", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Plasticity3d_record))] + public partial class Plasticity3d_force_record + { + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("force_x_neg")] + public double Force_x_negValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Force_x_negValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Force_x_neg + { + get + { + if (this.Force_x_negValueSpecified) + { + return this.Force_x_negValue; + } + else + { + return null; + } + } + set + { + this.Force_x_negValue = value.GetValueOrDefault(); + this.Force_x_negValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("force_x_pos")] + public double Force_x_posValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Force_x_posValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Force_x_pos + { + get + { + if (this.Force_x_posValueSpecified) + { + return this.Force_x_posValue; + } + else + { + return null; + } + } + set + { + this.Force_x_posValue = value.GetValueOrDefault(); + this.Force_x_posValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("force_y_neg")] + public double Force_y_negValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Force_y_negValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Force_y_neg + { + get + { + if (this.Force_y_negValueSpecified) + { + return this.Force_y_negValue; + } + else + { + return null; + } + } + set + { + this.Force_y_negValue = value.GetValueOrDefault(); + this.Force_y_negValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("force_y_pos")] + public double Force_y_posValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Force_y_posValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Force_y_pos + { + get + { + if (this.Force_y_posValueSpecified) + { + return this.Force_y_posValue; + } + else + { + return null; + } + } + set + { + this.Force_y_posValue = value.GetValueOrDefault(); + this.Force_y_posValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("force_z_neg")] + public double Force_z_negValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Force_z_negValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Force_z_neg + { + get + { + if (this.Force_z_negValueSpecified) + { + return this.Force_z_negValue; + } + else + { + return null; + } + } + set + { + this.Force_z_negValue = value.GetValueOrDefault(); + this.Force_z_negValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("force_z_pos")] + public double Force_z_posValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Force_z_posValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Force_z_pos + { + get + { + if (this.Force_z_posValueSpecified) + { + return this.Force_z_posValue; + } + else + { + return null; + } + } + set + { + this.Force_z_posValue = value.GetValueOrDefault(); + this.Force_z_posValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Plasticity3d_force_record() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("plasticity3d_record", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Plasticity3d_record : Plasticity3d_force_record + { + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("moment_x_neg")] + public double Moment_x_negValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Moment_x_negValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Moment_x_neg + { + get + { + if (this.Moment_x_negValueSpecified) + { + return this.Moment_x_negValue; + } + else + { + return null; + } + } + set + { + this.Moment_x_negValue = value.GetValueOrDefault(); + this.Moment_x_negValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("moment_x_pos")] + public double Moment_x_posValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Moment_x_posValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Moment_x_pos + { + get + { + if (this.Moment_x_posValueSpecified) + { + return this.Moment_x_posValue; + } + else + { + return null; + } + } + set + { + this.Moment_x_posValue = value.GetValueOrDefault(); + this.Moment_x_posValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("moment_y_neg")] + public double Moment_y_negValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Moment_y_negValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Moment_y_neg + { + get + { + if (this.Moment_y_negValueSpecified) + { + return this.Moment_y_negValue; + } + else + { + return null; + } + } + set + { + this.Moment_y_negValue = value.GetValueOrDefault(); + this.Moment_y_negValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("moment_y_pos")] + public double Moment_y_posValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Moment_y_posValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Moment_y_pos + { + get + { + if (this.Moment_y_posValueSpecified) + { + return this.Moment_y_posValue; + } + else + { + return null; + } + } + set + { + this.Moment_y_posValue = value.GetValueOrDefault(); + this.Moment_y_posValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("moment_z_neg")] + public double Moment_z_negValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Moment_z_negValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Moment_z_neg + { + get + { + if (this.Moment_z_negValueSpecified) + { + return this.Moment_z_negValue; + } + else + { + return null; + } + } + set + { + this.Moment_z_negValue = value.GetValueOrDefault(); + this.Moment_z_negValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("moment_z_pos")] + public double Moment_z_posValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Moment_z_posValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Moment_z_pos + { + get + { + if (this.Moment_z_posValueSpecified) + { + return this.Moment_z_posValue; + } + else + { + return null; + } + } + set + { + this.Moment_z_posValue = value.GetValueOrDefault(); + this.Moment_z_posValueSpecified = value.HasValue; + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("camber_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Camber_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("force")] + public double Force { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("e")] + public double E { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Camber_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("camber_type_2d", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Camber_type_2d + { + + [System.Xml.Serialization.XmlAttributeAttribute("force")] + public double Force { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("e_y")] + public double E_y { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("e_z")] + public double E_z { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Camber_type_2d() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("location_value", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Location_value : Point_type_3d + { + + [System.Xml.Serialization.XmlAttributeAttribute("val")] + public double Val { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("topbottom_value", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Topbottom_value : Point_type_3d + { + + [System.Xml.Serialization.XmlAttributeAttribute("top_val")] + public double Top_val { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("bottom_val")] + public double Bottom_val { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("phe_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Phe_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("offset")] + public double Offset { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _shrink = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("shrink")] + public bool Shrink + { + get + { + return _shrink; + } + set + { + _shrink = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Phe_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("anc_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Anc_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("r")] + public double R { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("calculated_automatically")] + public bool Calculated_automatically { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("length")] + public double Length { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _automatically_handled = true; + + [System.ComponentModel.DefaultValueAttribute(true)] + [System.Xml.Serialization.XmlAttributeAttribute("automatically_handled")] + public bool Automatically_handled + { + get + { + return _automatically_handled; + } + set + { + _automatically_handled = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Anc_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("edge_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Curve_type))] + public partial class Edge_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _point; + + [System.Xml.Serialization.XmlElementAttribute("point")] + public System.Collections.Generic.List Point + { + get + { + return _point; + } + set + { + _point = value; + } + } + + public Edge_type() + { + this._point = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("normal")] + public Point_type_3d Normal { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("x_axis")] + public Point_type_3d X_axis { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("edge_connection")] + public Ec_type Edge_connection { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("physical_extent")] + public Phe_type Physical_extent { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("reinforcement_anchorage")] + public Anc_type Reinforcement_anchorage { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("type")] + public Edgetype Type { get; set; } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("radius")] + public double RadiusValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool RadiusValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Radius + { + get + { + if (this.RadiusValueSpecified) + { + return this.RadiusValue; + } + else + { + return null; + } + } + set + { + this.RadiusValue = value.GetValueOrDefault(); + this.RadiusValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("start_angle")] + public double Start_angleValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Start_angleValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Start_angle + { + get + { + if (this.Start_angleValueSpecified) + { + return this.Start_angleValue; + } + else + { + return null; + } + } + set + { + this.Start_angleValue = value.GetValueOrDefault(); + this.Start_angleValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("end_angle")] + public double End_angleValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool End_angleValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable End_angle + { + get + { + if (this.End_angleValueSpecified) + { + return this.End_angleValue; + } + else + { + return null; + } + } + set + { + this.End_angleValue = value.GetValueOrDefault(); + this.End_angleValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ec_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ec_type + { + + [System.Xml.Serialization.XmlElementAttribute("stiffness")] + public Stiffness_with_friction Stiffness { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plastic_limit_forces")] + public Plasticity_type_3d Plastic_limit_forces { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plastic_limit_moments")] + public Plasticity_type_3d Plastic_limit_moments { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rigidity")] + public Rigidity_data_type3 Rigidity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("predefined_rigidity")] + public Reference_type Predefined_rigidity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rigidity_group")] + public Rigidity_group_type3 Rigidity_group { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = "CE"; + + [System.ComponentModel.DefaultValueAttribute("CE")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _moving_local = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("moving_local")] + public bool Moving_local + { + get + { + return _moving_local; + } + set + { + _moving_local = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _joined_start_point = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("joined_start_point")] + public bool Joined_start_point + { + get + { + return _joined_start_point; + } + set + { + _joined_start_point = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _joined_end_point = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("joined_end_point")] + public bool Joined_end_point + { + get + { + return _joined_end_point; + } + set + { + _joined_end_point = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Ec_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("stiffness_with_friction", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Stiffness_with_friction : Simple_stiffness_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _friction = 0.3D; + + [System.ComponentModel.DefaultValueAttribute(0.3D)] + [System.Xml.Serialization.XmlAttributeAttribute("friction")] + public double Friction + { + get + { + return _friction; + } + set + { + _friction = value; + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("simple_stiffness_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Stiffness_with_friction))] + public partial class Simple_stiffness_type + { + + [System.Xml.Serialization.XmlElementAttribute("mov_x")] + public Stiff_base_type Mov_x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rot_x")] + public Stiff_base_type Rot_x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("mov_y")] + public Stiff_base_type Mov_y { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rot_y")] + public Stiff_base_type Rot_y { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("mov_z")] + public Stiff_base_type Mov_z { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rot_z")] + public Stiff_base_type Rot_z { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Detach_type _detach = StruSoft.Interop.Detach_type.Empty; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Detach_type.Empty)] + [System.Xml.Serialization.XmlAttributeAttribute("detach")] + public Detach_type Detach + { + get + { + return _detach; + } + set + { + _detach = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Simple_stiffness_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("stiff_base_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Stiff_base_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("neg")] + public double Neg { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("pos")] + public double Pos { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Stiff_base_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("rigidity_data_type3", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Rigidity_data_type3 : Rigidity_data_type2 + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _friction = 0.3D; + + [System.ComponentModel.DefaultValueAttribute(0.3D)] + [System.Xml.Serialization.XmlAttributeAttribute("friction")] + public double Friction + { + get + { + return _friction; + } + set + { + _friction = value; + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("rigidity_data_type2", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Rigidity_data_type3))] + public partial class Rigidity_data_type2 : Rigidity_data_type1 + { + + [System.Xml.Serialization.XmlElementAttribute("rotations")] + public Stiffness_type Rotations { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plastic_limit_moments")] + public Plasticity_type_3d Plastic_limit_moments { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("rigidity_data_type1", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Rigidity_data_type2))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Rigidity_data_type3))] + public partial class Rigidity_data_type1 : Rigidity_data_type0 + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Detach_type _detach = StruSoft.Interop.Detach_type.Empty; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Detach_type.Empty)] + [System.Xml.Serialization.XmlAttributeAttribute("detach")] + public Detach_type Detach + { + get + { + return _detach; + } + set + { + _detach = value; + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("rigidity_data_type0", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Rigidity_data_type1))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Rigidity_data_type2))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Rigidity_data_type3))] + public partial class Rigidity_data_type0 + { + + [System.Xml.Serialization.XmlElementAttribute("motions")] + public Stiffness_type Motions { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plastic_limit_forces")] + public Plasticity_type_3d Plastic_limit_forces { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("stiffness_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Stiffness_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("x_neg")] + public double X_neg { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("x_pos")] + public double X_pos { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("y_neg")] + public double Y_neg { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("y_pos")] + public double Y_pos { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("z_neg")] + public double Z_neg { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("z_pos")] + public double Z_pos { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Stiffness_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("rigidity_group_type3", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Rigidity_group_type3 : Rigidity_group_type2 + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _friction = 0.3D; + + [System.ComponentModel.DefaultValueAttribute(0.3D)] + [System.Xml.Serialization.XmlAttributeAttribute("friction")] + public double Friction + { + get + { + return _friction; + } + set + { + _friction = value; + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("rigidity_group_type2", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Rigidity_group_type3))] + public partial class Rigidity_group_type2 + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _springs; + + [System.Xml.Serialization.XmlElementAttribute("springs")] + public System.Collections.Generic.List Springs + { + get + { + return _springs; + } + set + { + _springs = value; + } + } + + public Rigidity_group_type2() + { + this._springs = new System.Collections.Generic.List(); + this._plastic_limits = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _plastic_limits; + + [System.Xml.Serialization.XmlElementAttribute("plastic_limits")] + public System.Collections.Generic.List Plastic_limits + { + get + { + return _plastic_limits; + } + set + { + _plastic_limits = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Detach_type _detach = StruSoft.Interop.Detach_type.Empty; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Detach_type.Empty)] + [System.Xml.Serialization.XmlAttributeAttribute("detach")] + public Detach_type Detach + { + get + { + return _detach; + } + set + { + _detach = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("stiffness_record", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Stiffness_record : Stiffness_motion_record + { + + [System.Xml.Serialization.XmlAttributeAttribute("Cx_neg")] + public double Cx_neg { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Cx_pos")] + public double Cx_pos { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Cy_neg")] + public double Cy_neg { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Cy_pos")] + public double Cy_pos { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Cz_neg")] + public double Cz_neg { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Cz_pos")] + public double Cz_pos { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("stiffness_motion_record", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Stiffness_record))] + public partial class Stiffness_motion_record + { + + [System.Xml.Serialization.XmlAttributeAttribute("Kx_neg")] + public double Kx_neg { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Kx_pos")] + public double Kx_pos { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Ky_neg")] + public double Ky_neg { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Ky_pos")] + public double Ky_pos { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Kz_neg")] + public double Kz_neg { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Kz_pos")] + public double Kz_pos { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Stiffness_motion_record() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("opt_localsys_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Opt_localsys_type + { + + [System.Xml.Serialization.XmlElementAttribute("local_pos")] + public Point_type_3d Local_pos { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_x")] + public Point_type_3d Local_x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_y")] + public Point_type_3d Local_y { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("localsys_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Localsys_type + { + + [System.Xml.Serialization.XmlElementAttribute("centre")] + public Point_type_3d Centre { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_x")] + public Point_type_3d Local_x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_y")] + public Point_type_3d Local_y { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("untested_localsys_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Untested_localsys_type + { + + [System.Xml.Serialization.XmlElementAttribute("pos")] + public Point_type_3d Pos { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("x")] + public Point_type_3d X { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("y")] + public Point_type_3d Y { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("z")] + public Point_type_3d Z { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("contour_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Contour_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _edge; + + [System.Xml.Serialization.XmlElementAttribute("edge")] + public System.Collections.Generic.List Edge + { + get + { + return _edge; + } + set + { + _edge = value; + } + } + + public Contour_type() + { + this._edge = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("region_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Region_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _contour; + + [System.Xml.Serialization.XmlElementAttribute("contour")] + public System.Collections.Generic.List Contour + { + get + { + return _contour; + } + set + { + _contour = value; + } + } + + public Region_type() + { + this._contour = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("drawing_region_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Drawing_region_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _contour; + + [System.Xml.Serialization.XmlElementAttribute("contour")] + public System.Collections.Generic.List Contour + { + get + { + return _contour; + } + set + { + _contour = value; + } + } + + public Drawing_region_type() + { + this._contour = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("style")] + public Style_type Style { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("style_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Style_type + { + + [System.Xml.Serialization.XmlElementAttribute("filling")] + public Fill_type Filling { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("font")] + public Text_font_type Font { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _layer = "0"; + + [System.ComponentModel.DefaultValueAttribute("0")] + [System.Xml.Serialization.XmlAttributeAttribute("layer")] + public string Layer + { + get + { + return _layer; + } + set + { + _layer = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _colour = "000000"; + + [System.ComponentModel.DefaultValueAttribute("000000")] + [System.Xml.Serialization.XmlAttributeAttribute("colour")] + public string Colour + { + get + { + return _colour; + } + set + { + _colour = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _line_style = "CONTINUOUS"; + + [System.ComponentModel.DefaultValueAttribute("CONTINUOUS")] + [System.Xml.Serialization.XmlAttributeAttribute("line_style")] + public string Line_style + { + get + { + return _line_style; + } + set + { + _line_style = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _penwidth = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("penwidth")] + public double Penwidth + { + get + { + return _penwidth; + } + set + { + _penwidth = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Pointstyle_type _point_style = StruSoft.Interop.Pointstyle_type.Cross; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Pointstyle_type.Cross)] + [System.Xml.Serialization.XmlAttributeAttribute("point_style")] + public Pointstyle_type Point_style + { + get + { + return _point_style; + } + set + { + _point_style = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Style_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("fill_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Fill_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Fillmode_type _mode = StruSoft.Interop.Fillmode_type.Auto_fill; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Fillmode_type.Auto_fill)] + [System.Xml.Serialization.XmlAttributeAttribute("mode")] + public Fillmode_type Mode + { + get + { + return _mode; + } + set + { + _mode = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _colour = "000000"; + + [System.ComponentModel.DefaultValueAttribute("000000")] + [System.Xml.Serialization.XmlAttributeAttribute("colour")] + public string Colour + { + get + { + return _colour; + } + set + { + _colour = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Fill_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("fillmode_type", Namespace="urn:strusoft")] + public enum Fillmode_type + { + + [System.Xml.Serialization.XmlEnumAttribute("auto_fill")] + Auto_fill, + + [System.Xml.Serialization.XmlEnumAttribute("colour")] + Colour, + + [System.Xml.Serialization.XmlEnumAttribute("no_fill")] + No_fill, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("text_font_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Text_font_type : Font_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Hor_align _h_align = StruSoft.Interop.Hor_align.Left; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Hor_align.Left)] + [System.Xml.Serialization.XmlAttributeAttribute("h_align")] + public Hor_align H_align + { + get + { + return _h_align; + } + set + { + _h_align = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Ver_align _v_align = StruSoft.Interop.Ver_align.Bottom; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Ver_align.Bottom)] + [System.Xml.Serialization.XmlAttributeAttribute("v_align")] + public Ver_align V_align + { + get + { + return _v_align; + } + set + { + _v_align = value; + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("font_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Text_font_type))] + public partial class Font_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _font = "Tahoma"; + + [System.ComponentModel.DefaultValueAttribute("Tahoma")] + [System.Xml.Serialization.XmlAttributeAttribute("font")] + public string Font + { + get + { + return _font; + } + set + { + _font = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Script_type _script = StruSoft.Interop.Script_type.Western; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Script_type.Western)] + [System.Xml.Serialization.XmlAttributeAttribute("script")] + public Script_type Script + { + get + { + return _script; + } + set + { + _script = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _size = 0.004D; + + [System.ComponentModel.DefaultValueAttribute(0.004D)] + [System.Xml.Serialization.XmlAttributeAttribute("size")] + public double Size + { + get + { + return _size; + } + set + { + _size = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _width = 1D; + + [System.ComponentModel.DefaultValueAttribute(1D)] + [System.Xml.Serialization.XmlAttributeAttribute("width")] + public double Width + { + get + { + return _width; + } + set + { + _width = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _slant = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("slant")] + public double Slant + { + get + { + return _slant; + } + set + { + _slant = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _bold = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("bold")] + public bool Bold + { + get + { + return _bold; + } + set + { + _bold = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _italic = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("italic")] + public bool Italic + { + get + { + return _italic; + } + set + { + _italic = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _underline = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("underline")] + public bool Underline + { + get + { + return _underline; + } + set + { + _underline = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _strikethrough = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("strikethrough")] + public bool Strikethrough + { + get + { + return _strikethrough; + } + set + { + _strikethrough = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Font_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("script_type", Namespace="urn:strusoft")] + public enum Script_type + { + + [System.Xml.Serialization.XmlEnumAttribute("default")] + Default, + + Arabic, + + Baltic, + + CE, + + Cyrillik, + + Greek, + + Hebrew, + + [System.Xml.Serialization.XmlEnumAttribute("OEM/DOS")] + OEMSlashDOS, + + [System.Xml.Serialization.XmlEnumAttribute("symbol")] + Symbol, + + Thai, + + Turkish, + + Vietnamese, + + Western, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("pointstyle_type", Namespace="urn:strusoft")] + public enum Pointstyle_type + { + + [System.Xml.Serialization.XmlEnumAttribute("cross")] + Cross, + + [System.Xml.Serialization.XmlEnumAttribute("plus_sign")] + Plus_sign, + + [System.Xml.Serialization.XmlEnumAttribute("diamond")] + Diamond, + + [System.Xml.Serialization.XmlEnumAttribute("square")] + Square, + + [System.Xml.Serialization.XmlEnumAttribute("dot")] + Dot, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("region_group_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Region_group_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _region; + + [System.Xml.Serialization.XmlElementAttribute("region")] + public System.Collections.Generic.List Region + { + get + { + return _region; + } + set + { + _region = value; + } + } + + public Region_group_type() + { + this._region = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("slab_stiffness_record", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Slab_stiffness_record + { + + [System.Xml.Serialization.XmlAttributeAttribute("bending_1_1")] + public double Bending_1_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("bending_2_2")] + public double Bending_2_2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("bending_1_2")] + public double Bending_1_2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("membran_1_1")] + public double Membran_1_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("membran_2_2")] + public double Membran_2_2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("membran_1_2")] + public double Membran_1_2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("shear_1_3")] + public double Shear_1_3 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("shear_2_3")] + public double Shear_2_3 { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Slab_stiffness_record() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("slab_stiffness_factors", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Slab_stiffness_factors + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _factors; + + [System.Xml.Serialization.XmlElementAttribute("factors")] + public System.Collections.Generic.List Factors + { + get + { + return _factors; + } + set + { + _factors = value; + } + } + + public Slab_stiffness_factors() + { + this._factors = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("slab_part_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Slab_part_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _contour; + + [System.Xml.Serialization.XmlElementAttribute("contour")] + public System.Collections.Generic.List Contour + { + get + { + return _contour; + } + set + { + _contour = value; + } + } + + public Slab_part_type() + { + this._contour = new System.Collections.Generic.List(); + this._thickness = new System.Collections.Generic.List(); + this._stiffness_modifiers = new System.Collections.Generic.List(); + this._any = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _thickness; + + [System.Xml.Serialization.XmlElementAttribute("thickness")] + public System.Collections.Generic.List Thickness + { + get + { + return _thickness; + } + set + { + _thickness = value; + } + } + + [System.Xml.Serialization.XmlElementAttribute("local_pos")] + public Point_type_3d Local_pos { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_x")] + public Point_type_3d Local_x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_y")] + public Point_type_3d Local_y { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _stiffness_modifiers; + + [System.Xml.Serialization.XmlArrayAttribute("stiffness_modifiers")] + [System.Xml.Serialization.XmlArrayItemAttribute("factors", Namespace="urn:strusoft")] + public System.Collections.Generic.List Stiffness_modifiers + { + get + { + return _stiffness_modifiers; + } + set + { + _stiffness_modifiers = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Stiffness_modifiersSpecified + { + get + { + return ((this.Stiffness_modifiers != null) + && (this.Stiffness_modifiers.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("connections")] + public Wall_connections_type Connections { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("end")] + public Empty_type End { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _any; + + [System.Xml.Serialization.XmlAnyElementAttribute()] + public System.Collections.Generic.List Any + { + get + { + return _any; + } + set + { + _any = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnySpecified + { + get + { + return ((this.Any != null) + && (this.Any.Count != 0)); + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("complex_material")] + public string Complex_material { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alignment")] + public Ver_align Alignment { get; set; } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("align_offset")] + public double Align_offsetValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Align_offsetValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Align_offset + { + get + { + if (this.Align_offsetValueSpecified) + { + return this.Align_offsetValue; + } + else + { + return null; + } + } + set + { + this.Align_offsetValue = value.GetValueOrDefault(); + this.Align_offsetValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("ortho_alfa")] + public double Ortho_alfaValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Ortho_alfaValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Ortho_alfa + { + get + { + if (this.Ortho_alfaValueSpecified) + { + return this.Ortho_alfaValue; + } + else + { + return null; + } + } + set + { + this.Ortho_alfaValue = value.GetValueOrDefault(); + this.Ortho_alfaValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("ortho_ratio")] + public double Ortho_ratioValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Ortho_ratioValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Ortho_ratio + { + get + { + if (this.Ortho_ratioValueSpecified) + { + return this.Ortho_ratioValue; + } + else + { + return null; + } + } + set + { + this.Ortho_ratioValue = value.GetValueOrDefault(); + this.Ortho_ratioValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _ecc_calc = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("ecc_calc")] + public bool Ecc_calc + { + get + { + return _ecc_calc; + } + set + { + _ecc_calc = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _ecc_crack = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("ecc_crack")] + public bool Ecc_crack + { + get + { + return _ecc_crack; + } + set + { + _ecc_crack = value; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("refracting_angle")] + public double Refracting_angleValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Refracting_angleValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Refracting_angle + { + get + { + if (this.Refracting_angleValueSpecified) + { + return this.Refracting_angleValue; + } + else + { + return null; + } + } + set + { + this.Refracting_angleValue = value.GetValueOrDefault(); + this.Refracting_angleValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _mesh_size = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("mesh_size")] + public double Mesh_size + { + get + { + return _mesh_size; + } + set + { + _mesh_size = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _application_of_geometric_changes = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("application_of_geometric_changes")] + public bool Application_of_geometric_changes + { + get + { + return _application_of_geometric_changes; + } + set + { + _application_of_geometric_changes = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("wall_connections_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Wall_connections_type + { + + [System.Xml.Serialization.XmlElementAttribute("bottom_edge")] + public Conn_side_type Bottom_edge { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("right_edge")] + public Conn_side_type Right_edge { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("top_edge")] + public Conn_side_type Top_edge { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("left_edge")] + public Conn_side_type Left_edge { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("conn_side_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Conn_side_type + { + + [System.Xml.Serialization.XmlElementAttribute("non_rigid_connection")] + public Pc_nonrigid_connection_type Non_rigid_connection { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Conn_side_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("pc_nonrigid_connection_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Pc_nonrigid_connection_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("predefined_rigidity")] + public string Predefined_rigidity { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("id")] + public string Id { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("start_point_connected")] + public bool Start_point_connected { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("end_point_connected")] + public bool End_point_connected { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Pc_nonrigid_connection_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("bar_buckling_type", Namespace="urn:strusoft")] + public enum Bar_buckling_type + { + + [System.Xml.Serialization.XmlEnumAttribute("flexural_weak")] + Flexural_weak, + + [System.Xml.Serialization.XmlEnumAttribute("flexural_stiff")] + Flexural_stiff, + + [System.Xml.Serialization.XmlEnumAttribute("pressured_flange")] + Pressured_flange, + + [System.Xml.Serialization.XmlEnumAttribute("lateral_torsional")] + Lateral_torsional, + + [System.Xml.Serialization.XmlEnumAttribute("pressured_bottom_flange")] + Pressured_bottom_flange, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("buckling_record", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Buckling_record + { + + [System.Xml.Serialization.XmlElementAttribute("start_point")] + public Point_type_3d Start_point { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("end_point")] + public Point_type_3d End_point { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("position")] + public Segmentposition_type Position { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("type")] + public Bar_buckling_type Type { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _beta = 1D; + + [System.ComponentModel.DefaultValueAttribute(1D)] + [System.Xml.Serialization.XmlAttributeAttribute("beta")] + public double Beta + { + get + { + return _beta; + } + set + { + _beta = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _continously_restrained = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("continously_restrained")] + public bool Continously_restrained + { + get + { + return _continously_restrained; + } + set + { + _continously_restrained = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _cantilever = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("cantilever")] + public bool Cantilever + { + get + { + return _cantilever; + } + set + { + _cantilever = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Ver_align _load_position = StruSoft.Interop.Ver_align.Top; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Ver_align.Top)] + [System.Xml.Serialization.XmlAttributeAttribute("load_position")] + public Ver_align Load_position + { + get + { + return _load_position; + } + set + { + _load_position = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _sway = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("sway")] + public bool Sway + { + get + { + return _sway; + } + set + { + _sway = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Buckling_record() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("buckling_data_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Buckling_data_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _buckling_length; + + [System.Xml.Serialization.XmlElementAttribute("buckling_length")] + public System.Collections.Generic.List Buckling_length + { + get + { + return _buckling_length; + } + set + { + _buckling_length = value; + } + } + + public Buckling_data_type() + { + this._buckling_length = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("apex_buckling_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Apex_buckling_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _buckling_length; + + [System.Xml.Serialization.XmlElementAttribute("buckling_length")] + public System.Collections.Generic.List Buckling_length + { + get + { + return _buckling_length; + } + set + { + _buckling_length = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Buckling_lengthSpecified + { + get + { + return ((this.Buckling_length != null) + && (this.Buckling_length.Count != 0)); + } + } + + public Apex_buckling_type() + { + this._buckling_length = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("shell_buckling_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Shell_buckling_type + { + + [System.Xml.Serialization.XmlElementAttribute("direction")] + public Point_type_3d Direction { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _contour; + + [System.Xml.Serialization.XmlArrayAttribute("contour")] + [System.Xml.Serialization.XmlArrayItemAttribute("edge", Namespace="urn:strusoft")] + public System.Collections.Generic.List Contour + { + get + { + return _contour; + } + set + { + _contour = value; + } + } + + public Shell_buckling_type() + { + this._contour = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("base_shell")] + public string Base_shell { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _beta = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("beta")] + public double Beta + { + get + { + return _beta; + } + set + { + _beta = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("composite_prop_name", Namespace="urn:strusoft")] + public enum Composite_prop_name + { + + [System.Xml.Serialization.XmlEnumAttribute("b")] + B, + + [System.Xml.Serialization.XmlEnumAttribute("b_eff")] + B_eff, + + [System.Xml.Serialization.XmlEnumAttribute("bb")] + Bb, + + [System.Xml.Serialization.XmlEnumAttribute("bc")] + Bc, + + [System.Xml.Serialization.XmlEnumAttribute("bf")] + Bf, + + [System.Xml.Serialization.XmlEnumAttribute("bt")] + Bt, + + [System.Xml.Serialization.XmlEnumAttribute("cy")] + Cy, + + [System.Xml.Serialization.XmlEnumAttribute("cz")] + Cz, + + [System.Xml.Serialization.XmlEnumAttribute("d")] + D, + + [System.Xml.Serialization.XmlEnumAttribute("d1")] + D1, + + [System.Xml.Serialization.XmlEnumAttribute("d2")] + D2, + + [System.Xml.Serialization.XmlEnumAttribute("fill_beam")] + Fill_beam, + + [System.Xml.Serialization.XmlEnumAttribute("h")] + H, + + [System.Xml.Serialization.XmlEnumAttribute("hc")] + Hc, + + [System.Xml.Serialization.XmlEnumAttribute("name")] + Name, + + [System.Xml.Serialization.XmlEnumAttribute("o1")] + O1, + + [System.Xml.Serialization.XmlEnumAttribute("o2")] + O2, + + [System.Xml.Serialization.XmlEnumAttribute("t")] + T, + + [System.Xml.Serialization.XmlEnumAttribute("tf")] + Tf, + + [System.Xml.Serialization.XmlEnumAttribute("tfb")] + Tfb, + + [System.Xml.Serialization.XmlEnumAttribute("tft")] + Tft, + + [System.Xml.Serialization.XmlEnumAttribute("th")] + Th, + + [System.Xml.Serialization.XmlEnumAttribute("tw")] + Tw, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("composite_type", Namespace="urn:strusoft")] + public enum Composite_type + { + + [System.Xml.Serialization.XmlEnumAttribute("beam_a")] + Beam_a, + + [System.Xml.Serialization.XmlEnumAttribute("beam_b")] + Beam_b, + + [System.Xml.Serialization.XmlEnumAttribute("beam_p")] + Beam_p, + + [System.Xml.Serialization.XmlEnumAttribute("column_a")] + Column_a, + + [System.Xml.Serialization.XmlEnumAttribute("column_c")] + Column_c, + + [System.Xml.Serialization.XmlEnumAttribute("column_d")] + Column_d, + + [System.Xml.Serialization.XmlEnumAttribute("column_e")] + Column_e, + + [System.Xml.Serialization.XmlEnumAttribute("column_f")] + Column_f, + + [System.Xml.Serialization.XmlEnumAttribute("column_g")] + Column_g, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("composite_part_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Composite_part_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("material")] + public string Material { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("section")] + public string Section { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _cog_offset_x = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("cog_offset_x")] + public double Cog_offset_x + { + get + { + return _cog_offset_x; + } + set + { + _cog_offset_x = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _cog_offset_y = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("cog_offset_y")] + public double Cog_offset_y + { + get + { + return _cog_offset_y; + } + set + { + _cog_offset_y = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Composite_part_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("composite_prop_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Composite_prop_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public Composite_prop_name Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("value")] + public string Value { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Composite_prop_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("composite_data", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Composite_data + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _part; + + [System.Xml.Serialization.XmlElementAttribute("part")] + public System.Collections.Generic.List Part + { + get + { + return _part; + } + set + { + _part = value; + } + } + + public Composite_data() + { + this._part = new System.Collections.Generic.List(); + this._property = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _property; + + [System.Xml.Serialization.XmlElementAttribute("property")] + public System.Collections.Generic.List Property + { + get + { + return _property; + } + set + { + _property = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool PropertySpecified + { + get + { + return ((this.Property != null) + && (this.Property.Count != 0)); + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("type")] + public Composite_type Type { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("composite_section_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Composite_section_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("pos")] + public double Pos { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Composite_section_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("complex_composite_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Complex_composite_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _composite_section; + + [System.Xml.Serialization.XmlElementAttribute("composite_section")] + public System.Collections.Generic.List Composite_section + { + get + { + return _composite_section; + } + set + { + _composite_section = value; + } + } + + public Complex_composite_type() + { + this._composite_section = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("bar_stiffness_factor_record", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Bar_stiffness_factor_record + { + + [System.Xml.Serialization.XmlAttributeAttribute("cross-sectional_area")] + public double Crosssectional_area { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _shear_area_direction_1 = 1D; + + [System.ComponentModel.DefaultValueAttribute(1D)] + [System.Xml.Serialization.XmlAttributeAttribute("shear_area_direction_1")] + public double Shear_area_direction_1 + { + get + { + return _shear_area_direction_1; + } + set + { + _shear_area_direction_1 = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _shear_area_direction_2 = 1D; + + [System.ComponentModel.DefaultValueAttribute(1D)] + [System.Xml.Serialization.XmlAttributeAttribute("shear_area_direction_2")] + public double Shear_area_direction_2 + { + get + { + return _shear_area_direction_2; + } + set + { + _shear_area_direction_2 = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _torsional_constant = 1D; + + [System.ComponentModel.DefaultValueAttribute(1D)] + [System.Xml.Serialization.XmlAttributeAttribute("torsional_constant")] + public double Torsional_constant + { + get + { + return _torsional_constant; + } + set + { + _torsional_constant = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _inertia_about_axis_1 = 1D; + + [System.ComponentModel.DefaultValueAttribute(1D)] + [System.Xml.Serialization.XmlAttributeAttribute("inertia_about_axis_1")] + public double Inertia_about_axis_1 + { + get + { + return _inertia_about_axis_1; + } + set + { + _inertia_about_axis_1 = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _inertia_about_axis_2 = 1D; + + [System.ComponentModel.DefaultValueAttribute(1D)] + [System.Xml.Serialization.XmlAttributeAttribute("inertia_about_axis_2")] + public double Inertia_about_axis_2 + { + get + { + return _inertia_about_axis_2; + } + set + { + _inertia_about_axis_2 = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Bar_stiffness_factor_record() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("bar_stiffness_factors", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Bar_stiffness_factors + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _factors; + + [System.Xml.Serialization.XmlElementAttribute("factors")] + public System.Collections.Generic.List Factors + { + get + { + return _factors; + } + set + { + _factors = value; + } + } + + public Bar_stiffness_factors() + { + this._factors = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("bar_part_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Bar_part_type + { + + [System.Xml.Serialization.XmlElementAttribute("curve")] + public Edge_type Curve { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local-y")] + public Point_type_3d Localy { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _connectivity; + + [System.Xml.Serialization.XmlElementAttribute("connectivity")] + public System.Collections.Generic.List Connectivity + { + get + { + return _connectivity; + } + set + { + _connectivity = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ConnectivitySpecified + { + get + { + return ((this.Connectivity != null) + && (this.Connectivity.Count != 0)); + } + } + + public Bar_part_type() + { + this._connectivity = new System.Collections.Generic.List(); + this._buckling_data = new System.Collections.Generic.List(); + this._stiffness_modifiers = new System.Collections.Generic.List(); + this._any = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("eccentricity")] + public Eccentricity_type Eccentricity { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _buckling_data; + + [System.Xml.Serialization.XmlArrayAttribute("buckling_data")] + [System.Xml.Serialization.XmlArrayItemAttribute("buckling_length", Namespace="urn:strusoft")] + public System.Collections.Generic.List Buckling_data + { + get + { + return _buckling_data; + } + set + { + _buckling_data = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Buckling_dataSpecified + { + get + { + return ((this.Buckling_data != null) + && (this.Buckling_data.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("camber_simulation")] + public Camber_type_2d Camber_simulation { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _stiffness_modifiers; + + [System.Xml.Serialization.XmlArrayAttribute("stiffness_modifiers")] + [System.Xml.Serialization.XmlArrayItemAttribute("factors", Namespace="urn:strusoft")] + public System.Collections.Generic.List Stiffness_modifiers + { + get + { + return _stiffness_modifiers; + } + set + { + _stiffness_modifiers = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Stiffness_modifiersSpecified + { + get + { + return ((this.Stiffness_modifiers != null) + && (this.Stiffness_modifiers.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("end")] + public Empty_type End { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _any; + + [System.Xml.Serialization.XmlAnyElementAttribute()] + public System.Collections.Generic.List Any + { + get + { + return _any; + } + set + { + _any = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnySpecified + { + get + { + return ((this.Any != null) + && (this.Any.Count != 0)); + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = ""; + + [System.ComponentModel.DefaultValueAttribute("")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("complex_material")] + public string Complex_material { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("complex_section")] + public string Complex_section { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("complex_composite")] + public string Complex_composite { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Steelmadetype _made = StruSoft.Interop.Steelmadetype.Rolled; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Steelmadetype.Rolled)] + [System.Xml.Serialization.XmlAttributeAttribute("made")] + public Steelmadetype Made + { + get + { + return _made; + } + set + { + _made = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _ecc_mode = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("ecc_mode")] + public bool Ecc_mode + { + get + { + return _ecc_mode; + } + set + { + _ecc_mode = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _ecc_calc = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("ecc_calc")] + public bool Ecc_calc + { + get + { + return _ecc_calc; + } + set + { + _ecc_calc = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _ecc_crack = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("ecc_crack")] + public bool Ecc_crack + { + get + { + return _ecc_crack; + } + set + { + _ecc_crack = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _first_order_analysis_U = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("first_order_analysis_U")] + public bool First_order_analysis_U + { + get + { + return _first_order_analysis_U; + } + set + { + _first_order_analysis_U = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _first_order_analysis_Sq = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("first_order_analysis_Sq")] + public bool First_order_analysis_Sq + { + get + { + return _first_order_analysis_Sq; + } + set + { + _first_order_analysis_Sq = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _first_order_analysis_Sf = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("first_order_analysis_Sf")] + public bool First_order_analysis_Sf + { + get + { + return _first_order_analysis_Sf; + } + set + { + _first_order_analysis_Sf = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _first_order_analysis_Sc = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("first_order_analysis_Sc")] + public bool First_order_analysis_Sc + { + get + { + return _first_order_analysis_Sc; + } + set + { + _first_order_analysis_Sc = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("truss_limit_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Truss_limit_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("value")] + public double Value { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("simple_truss_capacity_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Simple_truss_capacity_type + { + + [System.Xml.Serialization.XmlElementAttribute("limit_force")] + public Truss_limit_type Limit_force { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("simple_truss_behaviour_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Simple_truss_behaviour_type + { + + [System.Xml.Serialization.XmlElementAttribute("elastic")] + public Empty_type Elastic { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("brittle")] + public Simple_truss_capacity_type Brittle { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plastic")] + public Simple_truss_capacity_type Plastic { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("simple_truss_chr_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Simple_truss_chr_type + { + + [System.Xml.Serialization.XmlElementAttribute("compression")] + public Simple_truss_behaviour_type Compression { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("tension")] + public Simple_truss_behaviour_type Tension { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("truss_capacity_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Truss_capacity_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _limit_force; + + [System.Xml.Serialization.XmlElementAttribute("limit_force")] + public System.Collections.Generic.List Limit_force + { + get + { + return _limit_force; + } + set + { + _limit_force = value; + } + } + + public Truss_capacity_type() + { + this._limit_force = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("truss_behaviour_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Truss_behaviour_type + { + + [System.Xml.Serialization.XmlElementAttribute("elastic")] + public Empty_type Elastic { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _brittle; + + [System.Xml.Serialization.XmlArrayAttribute("brittle")] + [System.Xml.Serialization.XmlArrayItemAttribute("limit_force", Namespace="urn:strusoft")] + public System.Collections.Generic.List Brittle + { + get + { + return _brittle; + } + set + { + _brittle = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool BrittleSpecified + { + get + { + return ((this.Brittle != null) + && (this.Brittle.Count != 0)); + } + } + + public Truss_behaviour_type() + { + this._brittle = new System.Collections.Generic.List(); + this._plastic = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _plastic; + + [System.Xml.Serialization.XmlArrayAttribute("plastic")] + [System.Xml.Serialization.XmlArrayItemAttribute("limit_force", Namespace="urn:strusoft")] + public System.Collections.Generic.List Plastic + { + get + { + return _plastic; + } + set + { + _plastic = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool PlasticSpecified + { + get + { + return ((this.Plastic != null) + && (this.Plastic.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("truss_chr_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Truss_chr_type + { + + [System.Xml.Serialization.XmlElementAttribute("compression")] + public Truss_behaviour_type Compression { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("tension")] + public Truss_behaviour_type Tension { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("apex_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Apex_type + { + + [System.Xml.Serialization.XmlElementAttribute("center")] + public Point_type_3d Center { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("intersection_point")] + public Point_type_3d Intersection_point { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _buckling_data; + + [System.Xml.Serialization.XmlElementAttribute("buckling_data")] + public System.Collections.Generic.List Buckling_data + { + get + { + return _buckling_data; + } + set + { + _buckling_data = value; + } + } + + public Apex_type() + { + this._buckling_data = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("r")] + public double R { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _rounded_edge = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("rounded_edge")] + public bool Rounded_edge + { + get + { + return _rounded_edge; + } + set + { + _rounded_edge = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage_A = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage_A")] + public int Stage_A + { + get + { + return _stage_A; + } + set + { + _stage_A = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage_B = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage_B")] + public int Stage_B + { + get + { + return _stage_B; + } + set + { + _stage_B = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage_A = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage_A")] + public string End_stage_A + { + get + { + return _end_stage_A; + } + set + { + _end_stage_A = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage_B = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage_B")] + public string End_stage_B + { + get + { + return _end_stage_B; + } + set + { + _end_stage_B = value; + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("shell_model_type", Namespace="urn:strusoft")] + public enum Shell_model_type + { + + [System.Xml.Serialization.XmlEnumAttribute("none")] + None, + + [System.Xml.Serialization.XmlEnumAttribute("simple")] + Simple, + + [System.Xml.Serialization.XmlEnumAttribute("complex")] + Complex, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("bar_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Bar_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _bar_part; + + [System.Xml.Serialization.XmlElementAttribute("bar_part")] + public System.Collections.Generic.List Bar_part + { + get + { + return _bar_part; + } + set + { + _bar_part = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Bar_partSpecified + { + get + { + return ((this.Bar_part != null) + && (this.Bar_part.Count != 0)); + } + } + + public Bar_type() + { + this._bar_part = new System.Collections.Generic.List(); + this._apex = new System.Collections.Generic.List(); + this._any = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _apex; + + [System.Xml.Serialization.XmlElementAttribute("apex")] + public System.Collections.Generic.List Apex + { + get + { + return _apex; + } + set + { + _apex = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ApexSpecified + { + get + { + return ((this.Apex != null) + && (this.Apex.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("truss_behaviour")] + public Truss_chr_type Truss_behaviour { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("eccentricity")] + public Truss_eccentricity_type Eccentricity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("end")] + public Empty_type End { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _any; + + [System.Xml.Serialization.XmlAnyElementAttribute()] + public System.Collections.Generic.List Any + { + get + { + return _any; + } + set + { + _any = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnySpecified + { + get + { + return ((this.Any != null) + && (this.Any.Count != 0)); + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("type")] + public Beamtype Type { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Shell_model_type _shell_model = StruSoft.Interop.Shell_model_type.None; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Shell_model_type.None)] + [System.Xml.Serialization.XmlAttributeAttribute("shell_model")] + public Shell_model_type Shell_model + { + get + { + return _shell_model; + } + set + { + _shell_model = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("maxforce")] + public double MaxforceValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool MaxforceValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Maxforce + { + get + { + if (this.MaxforceValueSpecified) + { + return this.MaxforceValue; + } + else + { + return null; + } + } + set + { + this.MaxforceValue = value.GetValueOrDefault(); + this.MaxforceValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _compressions_plasticity = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("compressions_plasticity")] + public bool Compressions_plasticity + { + get + { + return _compressions_plasticity; + } + set + { + _compressions_plasticity = value; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("tension")] + public double TensionValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool TensionValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Tension + { + get + { + if (this.TensionValueSpecified) + { + return this.TensionValue; + } + else + { + return null; + } + } + set + { + this.TensionValue = value.GetValueOrDefault(); + this.TensionValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _tensions_plasticity = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("tensions_plasticity")] + public bool Tensions_plasticity + { + get + { + return _tensions_plasticity; + } + set + { + _tensions_plasticity = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("hidden_bar_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Hidden_bar_type + { + + [System.Xml.Serialization.XmlElementAttribute("rectangle")] + public Rectangle_type Rectangle { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("start")] + public Point_type_3d Start { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _buckling_data; + + [System.Xml.Serialization.XmlArrayAttribute("buckling_data")] + [System.Xml.Serialization.XmlArrayItemAttribute("buckling_length", Namespace="urn:strusoft")] + public System.Collections.Generic.List Buckling_data + { + get + { + return _buckling_data; + } + set + { + _buckling_data = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Buckling_dataSpecified + { + get + { + return ((this.Buckling_data != null) + && (this.Buckling_data.Count != 0)); + } + } + + public Hidden_bar_type() + { + this._buckling_data = new System.Collections.Generic.List(); + this._any = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("end")] + public Empty_type End { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _any; + + [System.Xml.Serialization.XmlAnyElementAttribute()] + public System.Collections.Generic.List Any + { + get + { + return _any; + } + set + { + _any = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnySpecified + { + get + { + return ((this.Any != null) + && (this.Any.Count != 0)); + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("base_shell")] + public string Base_shell { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _axis_in_longer_side = true; + + [System.ComponentModel.DefaultValueAttribute(true)] + [System.Xml.Serialization.XmlAttributeAttribute("axis_in_longer_side")] + public bool Axis_in_longer_side + { + get + { + return _axis_in_longer_side; + } + set + { + _axis_in_longer_side = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("slab_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Slab_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _slab_part; + + [System.Xml.Serialization.XmlElementAttribute("slab_part")] + public System.Collections.Generic.List Slab_part + { + get + { + return _slab_part; + } + set + { + _slab_part = value; + } + } + + public Slab_type() + { + this._slab_part = new System.Collections.Generic.List(); + this._any = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("end")] + public Empty_type End { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _any; + + [System.Xml.Serialization.XmlAnyElementAttribute()] + public System.Collections.Generic.List Any + { + get + { + return _any; + } + set + { + _any = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnySpecified + { + get + { + return ((this.Any != null) + && (this.Any.Count != 0)); + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("type")] + public Slabtype Type { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("stiffness_matrix_2_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Stiffness_matrix_2_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("xz")] + public double Xz { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("yz")] + public double Yz { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Stiffness_matrix_2_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("stiffness_matrix_4_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Stiffness_matrix_4_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("xx")] + public double Xx { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("xy")] + public double Xy { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("yy")] + public double Yy { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("gxy")] + public double Gxy { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Stiffness_matrix_4_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("internal_panel_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Internal_panel_type + { + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RegionSpecified + { + get + { + return ((this.Region != null) + && (this.Region.Contour.Count != 0)); + } + } + + public Internal_panel_type() + { + this.Region = new Region_type(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _mesh_size = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("mesh_size")] + public double Mesh_size + { + get + { + return _mesh_size; + } + set + { + _mesh_size = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("timber_factors_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Timber_factors_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("gamma_m_u")] + public double Gamma_m_u { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("gamma_m_as")] + public double Gamma_m_as { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("kdef_U")] + public double Kdef_U { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("kdef_Sq")] + public double Kdef_Sq { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("kdef_Sf")] + public double Kdef_Sf { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("kdef_Sc")] + public double Kdef_Sc { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("service_class")] + public byte Service_class { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("system_factor")] + public double System_factor { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Timber_factors_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("panel_connections_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Panel_connections_type + { + + [System.Xml.Serialization.XmlElementAttribute("bottom_edge")] + public Conn_side_type Bottom_edge { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("right_edge")] + public Conn_side_type Right_edge { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("top_edge")] + public Conn_side_type Top_edge { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("left_edge")] + public Conn_side_type Left_edge { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("internal_edges")] + public Conn_side_type Internal_edges { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("panel_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Panel_type + { + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + public Panel_type() + { + this.Region = new Region_type(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("direction")] + public Point_type_3d Direction { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("anchor_point")] + public Point_type_3d Anchor_point { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_pos")] + public Point_type_3d Local_pos { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("internal_panels")] + public Panel_typeInternal_panels Internal_panels { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("timber_application_data")] + public Panel_typeTimber_application_data Timber_application_data { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("camber_simulation")] + public Camber_type Camber_simulation { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("connections")] + public Panel_connections_type Connections { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("internal_plastic_limit_forces")] + public Plasticity_type_3d Internal_plastic_limit_forces { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("internal_plastic_limit_moments")] + public Plasticity_type_3d Internal_plastic_limit_moments { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("external_plastic_limit_forces")] + public Plasticity_type_3d External_plastic_limit_forces { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("external_plastic_limit_moments")] + public Plasticity_type_3d External_plastic_limit_moments { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("internal_stiffness")] + public Stiffness_with_friction Internal_stiffness { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("external_stiffness")] + public Stiffness_with_friction External_stiffness { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("internal_rigidity")] + public Rigidity_data_type3 Internal_rigidity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("internal_predefined_rigidity")] + public Reference_type Internal_predefined_rigidity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("internal_rigidity_group")] + public Rigidity_group_type3 Internal_rigidity_group { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("external_rigidity")] + public Rigidity_data_type3 External_rigidity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("external_predefined_rigidity")] + public Reference_type External_predefined_rigidity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("external_rigidity_group")] + public Rigidity_group_type3 External_rigidity_group { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("type")] + public Paneltype Type { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("complex_material")] + public string Complex_material { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("complex_section")] + public string Complex_section { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = ""; + + [System.ComponentModel.DefaultValueAttribute("")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("panelname")] + public string Panelname { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _in_situ_fabricated = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("in_situ_fabricated")] + public bool In_situ_fabricated + { + get + { + return _in_situ_fabricated; + } + set + { + _in_situ_fabricated = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("gap")] + public double Gap { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _orthotropy = 1D; + + [System.ComponentModel.DefaultValueAttribute(1D)] + [System.Xml.Serialization.XmlAttributeAttribute("orthotropy")] + public double Orthotropy + { + get + { + return _orthotropy; + } + set + { + _orthotropy = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("thickness")] + public double Thickness { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alignment")] + public Ver_align Alignment { get; set; } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("align_offset")] + public double Align_offsetValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Align_offsetValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Align_offset + { + get + { + if (this.Align_offsetValueSpecified) + { + return this.Align_offsetValue; + } + else + { + return null; + } + } + set + { + this.Align_offsetValue = value.GetValueOrDefault(); + this.Align_offsetValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _ecc_calc = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("ecc_calc")] + public bool Ecc_calc + { + get + { + return _ecc_calc; + } + set + { + _ecc_calc = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _ecc_crack = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("ecc_crack")] + public bool Ecc_crack + { + get + { + return _ecc_crack; + } + set + { + _ecc_crack = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _internal_moving_local = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("internal_moving_local")] + public bool Internal_moving_local + { + get + { + return _internal_moving_local; + } + set + { + _internal_moving_local = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _external_moving_local = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("external_moving_local")] + public bool External_moving_local + { + get + { + return _external_moving_local; + } + set + { + _external_moving_local = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _forced_plate = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("forced_plate")] + public bool Forced_plate + { + get + { + return _forced_plate; + } + set + { + _forced_plate = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _panel_width = 1.5D; + + [System.ComponentModel.DefaultValueAttribute(1.5D)] + [System.Xml.Serialization.XmlAttributeAttribute("panel_width")] + public double Panel_width + { + get + { + return _panel_width; + } + set + { + _panel_width = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("panel_type")] + public string Panel_typeProperty { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _ignored_distance = 0.02D; + + [System.ComponentModel.DefaultValueAttribute(0.02D)] + [System.Xml.Serialization.XmlAttributeAttribute("ignored_distance")] + public double Ignored_distance + { + get + { + return _ignored_distance; + } + set + { + _ignored_distance = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _ignored_in_stability = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("ignored_in_stability")] + public bool Ignored_in_stability + { + get + { + return _ignored_in_stability; + } + set + { + _ignored_in_stability = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Panel_typeInternal_panels", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Panel_typeInternal_panels + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _item; + + [System.Xml.Serialization.XmlElementAttribute("item")] + public System.Collections.Generic.List Item + { + get + { + return _item; + } + set + { + _item = value; + } + } + + public Panel_typeInternal_panels() + { + this._item = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Panel_typeTimber_application_data", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Panel_typeTimber_application_data + { + + [System.Xml.Serialization.XmlElementAttribute("factors")] + public Timber_factors_type Factors { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("panel_type")] + public string Panel_type { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _shear_coupling = true; + + [System.ComponentModel.DefaultValueAttribute(true)] + [System.Xml.Serialization.XmlAttributeAttribute("shear_coupling")] + public bool Shear_coupling + { + get + { + return _shear_coupling; + } + set + { + _shear_coupling = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _glued_narrow_sides = true; + + [System.ComponentModel.DefaultValueAttribute(true)] + [System.Xml.Serialization.XmlAttributeAttribute("glued_narrow_sides")] + public bool Glued_narrow_sides + { + get + { + return _glued_narrow_sides; + } + set + { + _glued_narrow_sides = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Panel_typeTimber_application_data() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ec_edge_list_item_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ec_edge_list_item_type + { + + [System.Xml.Serialization.XmlElementAttribute("edge_connection")] + public Ec_type Edge_connection { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("edge_index")] + public ushort Edge_index { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Ec_edge_list_item_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("pile_rigidity_group_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Pile_rigidity_group_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _springs; + + [System.Xml.Serialization.XmlElementAttribute("springs")] + public System.Collections.Generic.List Springs + { + get + { + return _springs; + } + set + { + _springs = value; + } + } + + public Pile_rigidity_group_type() + { + this._springs = new System.Collections.Generic.List(); + this._plastic_limits = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _plastic_limits; + + [System.Xml.Serialization.XmlElementAttribute("plastic_limits")] + public System.Collections.Generic.List Plastic_limits + { + get + { + return _plastic_limits; + } + set + { + _plastic_limits = value; + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("pile_rigidity_group_type1", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Pile_rigidity_group_type1 + { + + [System.Xml.Serialization.XmlElementAttribute("spring")] + public Stiff_base_type Spring { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plastic_limit_forces")] + public Plasticity_type Plastic_limit_forces { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("pile_rigidity_group_type2", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Pile_rigidity_group_type2 + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _spring; + + [System.Xml.Serialization.XmlElementAttribute("spring")] + public System.Collections.Generic.List Spring + { + get + { + return _spring; + } + set + { + _spring = value; + } + } + + public Pile_rigidity_group_type2() + { + this._spring = new System.Collections.Generic.List(); + this._plastic_limit_forces = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _plastic_limit_forces; + + [System.Xml.Serialization.XmlElementAttribute("plastic_limit_forces")] + public System.Collections.Generic.List Plastic_limit_forces + { + get + { + return _plastic_limit_forces; + } + set + { + _plastic_limit_forces = value; + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("rigidity_group_type0", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Rigidity_group_type1))] + public partial class Rigidity_group_type0 + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _springs; + + [System.Xml.Serialization.XmlElementAttribute("springs")] + public System.Collections.Generic.List Springs + { + get + { + return _springs; + } + set + { + _springs = value; + } + } + + public Rigidity_group_type0() + { + this._springs = new System.Collections.Generic.List(); + this._plastic_limits = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _plastic_limits; + + [System.Xml.Serialization.XmlElementAttribute("plastic_limits")] + public System.Collections.Generic.List Plastic_limits + { + get + { + return _plastic_limits; + } + set + { + _plastic_limits = value; + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("rigidity_group_type1", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Rigidity_group_type1 : Rigidity_group_type0 + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Detach_type _detach = StruSoft.Interop.Detach_type.Empty; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Detach_type.Empty)] + [System.Xml.Serialization.XmlAttributeAttribute("detach")] + public Detach_type Detach + { + get + { + return _detach; + } + set + { + _detach = value; + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("rigidity_datalib_type1", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Rigidity_datalib_type1 + { + + [System.Xml.Serialization.XmlElementAttribute("rigidity")] + public Rigidity_data_type1 Rigidity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rigidity_group")] + public Rigidity_group_type1 Rigidity_group { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Rigidity_datalib_type1() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("rigidity_datalib_type2", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Rigidity_datalib_type2 + { + + [System.Xml.Serialization.XmlElementAttribute("rigidity")] + public Rigidity_data_type2 Rigidity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rigidity_group")] + public Rigidity_group_type2 Rigidity_group { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Rigidity_datalib_type2() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("rigidity_datalib_type3", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Rigidity_datalib_type3 + { + + [System.Xml.Serialization.XmlElementAttribute("rigidity")] + public Rigidity_data_type3 Rigidity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rigidity_group")] + public Rigidity_group_type3 Rigidity_group { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Rigidity_datalib_type3() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("service_class_factors", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Service_class_factors + { + + [System.Xml.Serialization.XmlAttributeAttribute("kdef")] + public double Kdef { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("kmod_permanent")] + public double Kmod_permanent { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("kmod_long_term")] + public double Kmod_long_term { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("kmod_medium_term")] + public double Kmod_medium_term { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("kmod_short_term")] + public double Kmod_short_term { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("kmod_instantaneous")] + public double Kmod_instantaneous { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Service_class_factors() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("service_class_kdefs", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Service_class_kdefs + { + + [System.Xml.Serialization.XmlAttributeAttribute("service_class_0")] + public double Service_class_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("service_class_1")] + public double Service_class_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("service_class_2")] + public double Service_class_2 { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Service_class_kdefs() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("tp_datatype", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Tp_datatype + { + + [System.Xml.Serialization.XmlElementAttribute("stiffness")] + public Tp_datatypeStiffness Stiffness { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("strength")] + public Tp_datatypeStrength Strength { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("service_class_0_factors")] + public Service_class_factors Service_class_0_factors { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("service_class_1_factors")] + public Service_class_factors Service_class_1_factors { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("service_class_2_factors")] + public Service_class_factors Service_class_2_factors { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("description")] + public string Description { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("thickness")] + public double Thickness { get; set; } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("gamma_m_u")] + public double Gamma_m_uValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Gamma_m_uValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Gamma_m_u + { + get + { + if (this.Gamma_m_uValueSpecified) + { + return this.Gamma_m_uValue; + } + else + { + return null; + } + } + set + { + this.Gamma_m_uValue = value.GetValueOrDefault(); + this.Gamma_m_uValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("gamma_m_as")] + public double Gamma_m_asValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Gamma_m_asValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Gamma_m_as + { + get + { + if (this.Gamma_m_asValueSpecified) + { + return this.Gamma_m_asValue; + } + else + { + return null; + } + } + set + { + this.Gamma_m_asValue = value.GetValueOrDefault(); + this.Gamma_m_asValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("service_class")] + public byte Service_classValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Service_classValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Service_class + { + get + { + if (this.Service_classValueSpecified) + { + return this.Service_classValue; + } + else + { + return null; + } + } + set + { + this.Service_classValue = value.GetValueOrDefault(); + this.Service_classValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("system_factor")] + public double System_factorValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool System_factorValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable System_factor + { + get + { + if (this.System_factorValueSpecified) + { + return this.System_factorValue; + } + else + { + return null; + } + } + set + { + this.System_factorValue = value.GetValueOrDefault(); + this.System_factorValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Tp_datatype() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Tp_datatypeStiffness", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Tp_datatypeStiffness + { + + [System.Xml.Serialization.XmlAttributeAttribute("Em_k0")] + public double Em_k0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Em_k90")] + public double Em_k90 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Et_k0")] + public double Et_k0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Et_k90")] + public double Et_k90 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Ec_k0")] + public double Ec_k0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Ec_k90")] + public double Ec_k90 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Gr_k0")] + public double Gr_k0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Gr_k90")] + public double Gr_k90 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Gv_k")] + public double Gv_k { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("rho")] + public double Rho { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Tp_datatypeStiffness() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Tp_datatypeStrength", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Tp_datatypeStrength + { + + [System.Xml.Serialization.XmlAttributeAttribute("fm_k0")] + public double Fm_k0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("fm_k90")] + public double Fm_k90 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("ft_k0")] + public double Ft_k0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("ft_k90")] + public double Ft_k90 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("fc_k0")] + public double Fc_k0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("fc_k90")] + public double Fc_k90 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("fr_k0")] + public double Fr_k0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("fr_k90")] + public double Fr_k90 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("fv_k")] + public double Fv_k { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Tp_datatypeStrength() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("glc_layer", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Glc_layer + { + + [System.Xml.Serialization.XmlAttributeAttribute("material")] + public string Material { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("thickness")] + public double Thickness { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("theta")] + public double Theta { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Ex")] + public double Ex { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Ey")] + public double Ey { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nuxy")] + public double Nuxy { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Gxy")] + public double Gxy { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Gxz")] + public double Gxz { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Gyz")] + public double Gyz { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("rho")] + public double Rho { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Glc_layer() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("clt_layer", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Clt_layer + { + + [System.Xml.Serialization.XmlAttributeAttribute("material")] + public string Material { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("thickness")] + public double Thickness { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("theta")] + public double Theta { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Ex")] + public double Ex { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Ey")] + public double Ey { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nuxy")] + public double Nuxy { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Gxy")] + public double Gxy { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Gxz")] + public double Gxz { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Gyz")] + public double Gyz { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("rho")] + public double Rho { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("fm0k")] + public double Fm0k { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("fm90k")] + public double Fm90k { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("ft0k")] + public double Ft0k { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("ft90k")] + public double Ft90k { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("fc0k")] + public double Fc0k { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("fc90k")] + public double Fc90k { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("fxyk")] + public double Fxyk { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("fvk")] + public double Fvk { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("fRk")] + public double FRk { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("fTork")] + public double FTork { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Clt_layer() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("glc_datatype", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Glc_datatype + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _layer; + + [System.Xml.Serialization.XmlElementAttribute("layer")] + public System.Collections.Generic.List Layer + { + get + { + return _layer; + } + set + { + _layer = value; + } + } + + public Glc_datatype() + { + this._layer = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("group")] + public string Group { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("clt_datatype", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Clt_datatype + { + + [System.Xml.Serialization.XmlElementAttribute("default_kdef")] + public Service_class_kdefs Default_kdef { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _layer; + + [System.Xml.Serialization.XmlElementAttribute("layer")] + public System.Collections.Generic.List Layer + { + get + { + return _layer; + } + set + { + _layer = value; + } + } + + public Clt_datatype() + { + this._layer = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("manufacturer")] + public string Manufacturer { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("r33")] + public double R33 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("r66")] + public double R66 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("r77")] + public double R77 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("r88")] + public double R88 { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("timberpanel_lib_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Timberpanel_lib_type + { + + [System.Xml.Serialization.XmlElementAttribute("timber_panel_data")] + public Tp_datatype Timber_panel_data { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Timberpanel_lib_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("glcpanel_lib_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Glcpanel_lib_type + { + + [System.Xml.Serialization.XmlElementAttribute("glc_panel_data")] + public Glc_datatype Glc_panel_data { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Glcpanel_lib_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("cltpanel_lib_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Cltpanel_lib_type + { + + [System.Xml.Serialization.XmlElementAttribute("clt_panel_data")] + public Clt_datatype Clt_panel_data { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Cltpanel_lib_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("connected_points_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Connected_points_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _point; + + [System.Xml.Serialization.XmlElementAttribute("point")] + public System.Collections.Generic.List Point + { + get + { + return _point; + } + set + { + _point = value; + } + } + + public Connected_points_type() + { + this._point = new System.Collections.Generic.List(); + this._ref = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("local_x")] + public Point_type_3d Local_x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_y")] + public Point_type_3d Local_y { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("stiffness")] + public Simple_stiffness_type Stiffness { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plastic_limit_forces")] + public Plasticity_type_3d Plastic_limit_forces { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plastic_limit_moments")] + public Plasticity_type_3d Plastic_limit_moments { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rigidity")] + public Rigidity_data_type2 Rigidity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("predefined_rigidity")] + public Reference_type Predefined_rigidity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rigidity_group")] + public Rigidity_group_type2 Rigidity_group { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _ref; + + [System.Xml.Serialization.XmlElementAttribute("ref")] + public System.Collections.Generic.List Ref + { + get + { + return _ref; + } + set + { + _ref = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RefSpecified + { + get + { + return ((this.Ref != null) + && (this.Ref.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = "CP"; + + [System.ComponentModel.DefaultValueAttribute("CP")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _interface = 0.5D; + + [System.ComponentModel.DefaultValueAttribute(0.5D)] + [System.Xml.Serialization.XmlAttributeAttribute("interface")] + public double Interface + { + get + { + return _interface; + } + set + { + _interface = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("connected_lines_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Connected_lines_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _edge; + + [System.Xml.Serialization.XmlElementAttribute("edge")] + public System.Collections.Generic.List Edge + { + get + { + return _edge; + } + set + { + _edge = value; + } + } + + public Connected_lines_type() + { + this._edge = new System.Collections.Generic.List(); + this._ref = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("point")] + public Point_type_3d Point { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_x")] + public Point_type_3d Local_x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_y")] + public Point_type_3d Local_y { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("stiffness")] + public Simple_stiffness_type Stiffness { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plastic_limit_forces")] + public Plasticity_type_3d Plastic_limit_forces { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plastic_limit_moments")] + public Plasticity_type_3d Plastic_limit_moments { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rigidity")] + public Rigidity_data_type3 Rigidity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("predefined_rigidity")] + public Reference_type Predefined_rigidity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rigidity_group")] + public Rigidity_group_type3 Rigidity_group { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _ref; + + [System.Xml.Serialization.XmlElementAttribute("ref")] + public System.Collections.Generic.List Ref + { + get + { + return _ref; + } + set + { + _ref = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RefSpecified + { + get + { + return ((this.Ref != null) + && (this.Ref.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = "CL"; + + [System.ComponentModel.DefaultValueAttribute("CL")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _moving_local = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("moving_local")] + public bool Moving_local + { + get + { + return _moving_local; + } + set + { + _moving_local = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _interface_start = 0.5D; + + [System.ComponentModel.DefaultValueAttribute(0.5D)] + [System.Xml.Serialization.XmlAttributeAttribute("interface_start")] + public double Interface_start + { + get + { + return _interface_start; + } + set + { + _interface_start = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _interface_end = 0.5D; + + [System.ComponentModel.DefaultValueAttribute(0.5D)] + [System.Xml.Serialization.XmlAttributeAttribute("interface_end")] + public double Interface_end + { + get + { + return _interface_end; + } + set + { + _interface_end = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("surface_connection_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Surface_connection_type + { + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + public Surface_connection_type() + { + this.Region = new Region_type(); + this._ref = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("rigidity")] + public Rigidity_data_type1 Rigidity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("predefined_rigidity")] + public Reference_type Predefined_rigidity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rigidity_group")] + public Rigidity_group_type1 Rigidity_group { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _ref; + + [System.Xml.Serialization.XmlElementAttribute("ref")] + public System.Collections.Generic.List Ref + { + get + { + return _ref; + } + set + { + _ref = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RefSpecified + { + get + { + return ((this.Ref != null) + && (this.Ref.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("local_system")] + public Opt_localsys_type Local_system { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = "CS"; + + [System.ComponentModel.DefaultValueAttribute("CS")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _distance = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("distance")] + public double Distance + { + get + { + return _distance; + } + set + { + _distance = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _interface = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("interface")] + public double Interface + { + get + { + return _interface; + } + set + { + _interface = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("virtual_bar_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Virtual_bar_type + { + + [System.Xml.Serialization.XmlElementAttribute("edge")] + public Edge_type Edge { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local-y")] + public Point_type_3d Localy { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _connectivity; + + [System.Xml.Serialization.XmlElementAttribute("connectivity")] + public System.Collections.Generic.List Connectivity + { + get + { + return _connectivity; + } + set + { + _connectivity = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ConnectivitySpecified + { + get + { + return ((this.Connectivity != null) + && (this.Connectivity.Count != 0)); + } + } + + public Virtual_bar_type() + { + this._connectivity = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("truss_behaviour")] + public Simple_truss_chr_type Truss_behaviour { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = "BF"; + + [System.ComponentModel.DefaultValueAttribute("BF")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("AE")] + public double AE { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _unit_mass = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("unit_mass")] + public double Unit_mass + { + get + { + return _unit_mass; + } + set + { + _unit_mass = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _itG = 10000000D; + + [System.ComponentModel.DefaultValueAttribute(10000000D)] + [System.Xml.Serialization.XmlAttributeAttribute("ItG")] + public double ItG + { + get + { + return _itG; + } + set + { + _itG = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _i1E = 10000000D; + + [System.ComponentModel.DefaultValueAttribute(10000000D)] + [System.Xml.Serialization.XmlAttributeAttribute("I1E")] + public double I1E + { + get + { + return _i1E; + } + set + { + _i1E = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _i2E = 10000000D; + + [System.ComponentModel.DefaultValueAttribute(10000000D)] + [System.Xml.Serialization.XmlAttributeAttribute("I2E")] + public double I2E + { + get + { + return _i2E; + } + set + { + _i2E = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("virtual_shell_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Virtual_shell_type + { + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + public Virtual_shell_type() + { + this.Region = new Region_type(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("local_pos")] + public Point_type_3d Local_pos { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_x")] + public Point_type_3d Local_x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_y")] + public Point_type_3d Local_y { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("membrane_stiffness")] + public Stiffness_matrix_4_type Membrane_stiffness { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("flexural_stiffness")] + public Stiffness_matrix_4_type Flexural_stiffness { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("shear_stiffness")] + public Stiffness_matrix_2_type Shear_stiffness { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = "FS"; + + [System.ComponentModel.DefaultValueAttribute("FS")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("density")] + public double Density { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("t1")] + public double T1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("t2")] + public double T2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alfa_1")] + public double Alfa_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alfa_2")] + public double Alfa_2 { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _mesh_size = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("mesh_size")] + public double Mesh_size + { + get + { + return _mesh_size; + } + set + { + _mesh_size = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _ignore_in_st_imp_calculation = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("ignore_in_st_imp_calculation")] + public bool Ignore_in_st_imp_calculation + { + get + { + return _ignore_in_st_imp_calculation; + } + set + { + _ignore_in_st_imp_calculation = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("diaphragm_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Diaphragm_type + { + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + public Diaphragm_type() + { + this.Region = new Region_type(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = "FS"; + + [System.ComponentModel.DefaultValueAttribute("FS")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("storey_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Storey_type + { + + [System.Xml.Serialization.XmlElementAttribute("origo")] + public Point_type_3d Origo { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("direction")] + public Point_type_2d Direction { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("dimension_x")] + public double Dimension_x { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("dimension_y")] + public double Dimension_y { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Storey_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("refplane_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Refplane_type + { + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + public Refplane_type() + { + this.Region = new Region_type(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = "A"; + + [System.ComponentModel.DefaultValueAttribute("A")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("labsecgeom_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Labsecgeom_type + { + + [System.Xml.Serialization.XmlElementAttribute("line_segment")] + public Labsecgeom_typeLine_segment Line_segment { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _polyline; + + [System.Xml.Serialization.XmlArrayAttribute("polyline")] + [System.Xml.Serialization.XmlArrayItemAttribute("point", Namespace="urn:strusoft")] + public System.Collections.Generic.List Polyline + { + get + { + return _polyline; + } + set + { + _polyline = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool PolylineSpecified + { + get + { + return ((this.Polyline != null) + && (this.Polyline.Count != 0)); + } + } + + public Labsecgeom_type() + { + this._polyline = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = "A"; + + [System.ComponentModel.DefaultValueAttribute("A")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Labsecgeom_typeLine_segment", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Labsecgeom_typeLine_segment + { + + [System.Xml.Serialization.XmlElementAttribute("start_point")] + public Point_type_3d Start_point { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("base_point")] + public Point_type_3d Base_point { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("end_point")] + public Point_type_3d End_point { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _reverse_direction = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("reverse_direction")] + public bool Reverse_direction + { + get + { + return _reverse_direction; + } + set + { + _reverse_direction = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Labsecgeom_typeLine_segment() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Labsecgeom_typePolyline", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Labsecgeom_typePolyline + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _point; + + [System.Xml.Serialization.XmlElementAttribute("point")] + public System.Collections.Generic.List Point + { + get + { + return _point; + } + set + { + _point = value; + } + } + + public Labsecgeom_typePolyline() + { + this._point = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("respoint_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Respoint_type + { + + [System.Xml.Serialization.XmlElementAttribute("position")] + public Point_type_3d Position { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("font")] + public Font_type Font { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = "PT"; + + [System.ComponentModel.DefaultValueAttribute("PT")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("base_entity")] + public string Base_entity { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Respoint_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("rl_base_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Rl_base_type + { + + [System.Xml.Serialization.XmlTextAttribute()] + public string Value { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("resline_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Resline_type + { + + [System.Xml.Serialization.XmlElementAttribute("start")] + public Point_type_3d Start { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("end")] + public Point_type_3d End { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("y_axis")] + public Point_type_3d Y_axis { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _base_entity; + + [System.Xml.Serialization.XmlElementAttribute("base_entity")] + public System.Collections.Generic.List Base_entity + { + get + { + return _base_entity; + } + set + { + _base_entity = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Base_entitySpecified + { + get + { + return ((this.Base_entity != null) + && (this.Base_entity.Count != 0)); + } + } + + public Resline_type() + { + this._base_entity = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = "VB"; + + [System.ComponentModel.DefaultValueAttribute("VB")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("dim_x_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Dim_x_type + { + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("x")] + public double XValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool XValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable X + { + get + { + if (this.XValueSpecified) + { + return this.XValue; + } + else + { + return null; + } + } + set + { + this.XValue = value.GetValueOrDefault(); + this.XValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Dim_x_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("dim_y_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Dim_y_type + { + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("y")] + public double YValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool YValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Y + { + get + { + if (this.YValueSpecified) + { + return this.YValue; + } + else + { + return null; + } + } + set + { + this.YValue = value.GetValueOrDefault(); + this.YValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Dim_y_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("priority_type", Namespace="urn:strusoft")] + public enum Priority_type + { + + [System.Xml.Serialization.XmlEnumAttribute("primary")] + Primary, + + [System.Xml.Serialization.XmlEnumAttribute("secondary")] + Secondary, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("axis_label_props", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Axis_label_props + { + + [System.Xml.Serialization.XmlElementAttribute("font")] + public Font_type Font { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("colour")] + public string Colour { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("penwidth")] + public double Penwidth { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Axis_label_props() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("axis_position", Namespace="urn:strusoft")] + public enum Axis_position + { + + [System.Xml.Serialization.XmlEnumAttribute("start")] + Start, + + [System.Xml.Serialization.XmlEnumAttribute("end")] + End, + + [System.Xml.Serialization.XmlEnumAttribute("both")] + Both, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("axis_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Axis_type + { + + [System.Xml.Serialization.XmlElementAttribute("start_point")] + public Point_type_2d Start_point { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("end_point")] + public Point_type_2d End_point { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("label_props")] + public Axis_label_props Label_props { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _prefix = ""; + + [System.ComponentModel.DefaultValueAttribute("")] + [System.Xml.Serialization.XmlAttributeAttribute("prefix")] + public string Prefix + { + get + { + return _prefix; + } + set + { + _prefix = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _has_prefix = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("has_prefix")] + public bool Has_prefix + { + get + { + return _has_prefix; + } + set + { + _has_prefix = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("id")] + public int Id { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("id_is_letter")] + public bool Id_is_letter { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Priority_type _priority = StruSoft.Interop.Priority_type.Primary; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Priority_type.Primary)] + [System.Xml.Serialization.XmlAttributeAttribute("priority")] + public Priority_type Priority + { + get + { + return _priority; + } + set + { + _priority = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _use_for_views = true; + + [System.ComponentModel.DefaultValueAttribute(true)] + [System.Xml.Serialization.XmlAttributeAttribute("use_for_views")] + public bool Use_for_views + { + get + { + return _use_for_views; + } + set + { + _use_for_views = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Axis_position _label_position = StruSoft.Interop.Axis_position.Start; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Axis_position.Start)] + [System.Xml.Serialization.XmlAttributeAttribute("label_position")] + public Axis_position Label_position + { + get + { + return _label_position; + } + set + { + _label_position = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _distance_from_end_point = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("distance_from_end_point")] + public double Distance_from_end_point + { + get + { + return _distance_from_end_point; + } + set + { + _distance_from_end_point = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Axis_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ts_vertex_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ts_vertex_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _vertex; + + [System.Xml.Serialization.XmlElementAttribute("vertex")] + public System.Collections.Generic.List Vertex + { + get + { + return _vertex; + } + set + { + _vertex = value; + } + } + + public Ts_vertex_type() + { + this._vertex = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ts_indexed_vertex_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ts_indexed_vertex_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("index")] + public ushort Index { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Ts_indexed_vertex_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ts_visible_edge_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ts_visible_edge_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _vertex; + + [System.Xml.Serialization.XmlElementAttribute("vertex")] + public System.Collections.Generic.List Vertex + { + get + { + return _vertex; + } + set + { + _vertex = value; + } + } + + public Ts_visible_edge_type() + { + this._vertex = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Visiblelinetype _linetype = StruSoft.Interop.Visiblelinetype.Line; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Visiblelinetype.Line)] + [System.Xml.Serialization.XmlAttributeAttribute("linetype")] + public Visiblelinetype Linetype + { + get + { + return _linetype; + } + set + { + _linetype = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ts_contourline_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ts_contourline_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _vertex; + + [System.Xml.Serialization.XmlElementAttribute("vertex")] + public System.Collections.Generic.List Vertex + { + get + { + return _vertex; + } + set + { + _vertex = value; + } + } + + public Ts_contourline_type() + { + this._vertex = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ts_contour_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ts_contour_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _contour; + + [System.Xml.Serialization.XmlElementAttribute("contour")] + public System.Collections.Generic.List Contour + { + get + { + return _contour; + } + set + { + _contour = value; + } + } + + public Ts_contour_type() + { + this._contour = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ts_surface_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ts_surface_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _flat_face; + + [System.Xml.Serialization.XmlElementAttribute("flat_face")] + public System.Collections.Generic.List Flat_face + { + get + { + return _flat_face; + } + set + { + _flat_face = value; + } + } + + public Ts_surface_type() + { + this._flat_face = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("polyhedron_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Polyhedron_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _vertices_in_index_order; + + [System.Xml.Serialization.XmlArrayAttribute("vertices_in_index_order")] + [System.Xml.Serialization.XmlArrayItemAttribute("vertex", Namespace="urn:strusoft")] + public System.Collections.Generic.List Vertices_in_index_order + { + get + { + return _vertices_in_index_order; + } + set + { + _vertices_in_index_order = value; + } + } + + public Polyhedron_type() + { + this._vertices_in_index_order = new System.Collections.Generic.List(); + this._visible_edge = new System.Collections.Generic.List(); + this._surface = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _visible_edge; + + [System.Xml.Serialization.XmlElementAttribute("visible_edge")] + public System.Collections.Generic.List Visible_edge + { + get + { + return _visible_edge; + } + set + { + _visible_edge = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Visible_edgeSpecified + { + get + { + return ((this.Visible_edge != null) + && (this.Visible_edge.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _surface; + + [System.Xml.Serialization.XmlElementAttribute("surface")] + public System.Collections.Generic.List Surface + { + get + { + return _surface; + } + set + { + _surface = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private uint _fillmode = 1u; + + [System.ComponentModel.DefaultValueAttribute(1u)] + [System.Xml.Serialization.XmlAttributeAttribute("fillmode")] + public uint Fillmode + { + get + { + return _fillmode; + } + set + { + _fillmode = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private uint _fillcolor = 0u; + + [System.ComponentModel.DefaultValueAttribute(0u)] + [System.Xml.Serialization.XmlAttributeAttribute("fillcolor")] + public uint Fillcolor + { + get + { + return _fillcolor; + } + set + { + _fillcolor = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("lnfoundation_ref_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Lnfoundation_ref_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("ref_wall")] + public string Ref_wall { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("ref_slab")] + public string Ref_slab { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("ref_support")] + public string Ref_support { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _supports_stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("supports_stage")] + public int Supports_stage + { + get + { + return _supports_stage; + } + set + { + _supports_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _supports_end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("supports_end_stage")] + public string Supports_end_stage + { + get + { + return _supports_end_stage; + } + set + { + _supports_end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Lnfoundation_ref_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ptfoundation_ref_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ptfoundation_ref_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("ref_slab")] + public string Ref_slab { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("ref_support")] + public string Ref_support { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _supports_stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("supports_stage")] + public int Supports_stage + { + get + { + return _supports_stage; + } + set + { + _supports_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _supports_end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("supports_end_stage")] + public string Supports_end_stage + { + get + { + return _supports_end_stage; + } + set + { + _supports_end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Ptfoundation_ref_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("sffoundation_ref_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Sffoundation_ref_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("ref_slab")] + public string Ref_slab { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("ref_support")] + public string Ref_support { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _supports_stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("supports_stage")] + public int Supports_stage + { + get + { + return _supports_stage; + } + set + { + _supports_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _supports_end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("supports_end_stage")] + public string Supports_end_stage + { + get + { + return _supports_end_stage; + } + set + { + _supports_end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Sffoundation_ref_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("foundation_plinth_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Foundation_plinth_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("a")] + public double A { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("b")] + public double B { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("h")] + public double H { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Foundation_plinth_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("extruded_foundation_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Extruded_foundation_type + { + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + public Extruded_foundation_type() + { + this.Region = new Region_type(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("cuboid_plinth")] + public Foundation_plinth_type Cuboid_plinth { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("thickness")] + public double Thickness { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _above = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("above")] + public bool Above + { + get + { + return _above; + } + set + { + _above = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("foundation_insulation_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Foundation_insulation_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("e_modulus")] + public double E_modulus { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("thickness")] + public double Thickness { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("density")] + public double Density { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _gamma_m_u = 1.2D; + + [System.ComponentModel.DefaultValueAttribute(1.2D)] + [System.Xml.Serialization.XmlAttributeAttribute("gamma_m_u")] + public double Gamma_m_u + { + get + { + return _gamma_m_u; + } + set + { + _gamma_m_u = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _gamma_m_uas = 1D; + + [System.ComponentModel.DefaultValueAttribute(1D)] + [System.Xml.Serialization.XmlAttributeAttribute("gamma_m_uas")] + public double Gamma_m_uas + { + get + { + return _gamma_m_uas; + } + set + { + _gamma_m_uas = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _limit_stress = 1D; + + [System.ComponentModel.DefaultValueAttribute(1D)] + [System.Xml.Serialization.XmlAttributeAttribute("limit_stress")] + public double Limit_stress + { + get + { + return _limit_stress; + } + set + { + _limit_stress = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Foundation_insulation_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ptfoundation_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ptfoundation_type + { + + [System.Xml.Serialization.XmlElementAttribute("connection_point")] + public Point_type_3d Connection_point { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("direction")] + public Point_type_3d Direction { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("polyhedron")] + public Polyhedron_type Polyhedron { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("extruded_solid")] + public Extruded_foundation_type Extruded_solid { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("referable_parts")] + public Ptfoundation_ref_type Referable_parts { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("insulation")] + public Foundation_insulation_type Insulation { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = "F"; + + [System.ComponentModel.DefaultValueAttribute("F")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _bedding_modulus = 10000D; + + [System.ComponentModel.DefaultValueAttribute(10000D)] + [System.Xml.Serialization.XmlAttributeAttribute("bedding_modulus")] + public double Bedding_modulus + { + get + { + return _bedding_modulus; + } + set + { + _bedding_modulus = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Foundationsystems_type _analythical_system = StruSoft.Interop.Foundationsystems_type.Simple; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Foundationsystems_type.Simple)] + [System.Xml.Serialization.XmlAttributeAttribute("analythical_system")] + public Foundationsystems_type Analythical_system + { + get + { + return _analythical_system; + } + set + { + _analythical_system = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("complex_material")] + public string Complex_material { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private uint _fillmode = 1u; + + [System.ComponentModel.DefaultValueAttribute(1u)] + [System.Xml.Serialization.XmlAttributeAttribute("fillmode")] + public uint Fillmode + { + get + { + return _fillmode; + } + set + { + _fillmode = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private uint _fillcolor = 0u; + + [System.ComponentModel.DefaultValueAttribute(0u)] + [System.Xml.Serialization.XmlAttributeAttribute("fillcolor")] + public uint Fillcolor + { + get + { + return _fillcolor; + } + set + { + _fillcolor = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _slabs_stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("slabs_stage")] + public int Slabs_stage + { + get + { + return _slabs_stage; + } + set + { + _slabs_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _slabs_end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("slabs_end_stage")] + public string Slabs_end_stage + { + get + { + return _slabs_end_stage; + } + set + { + _slabs_end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _point_connections_stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("point_connections_stage")] + public int Point_connections_stage + { + get + { + return _point_connections_stage; + } + set + { + _point_connections_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _point_connections_end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("point_connections_end_stage")] + public string Point_connections_end_stage + { + get + { + return _point_connections_end_stage; + } + set + { + _point_connections_end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Ptfoundation_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("lnfoundation_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Lnfoundation_type + { + + [System.Xml.Serialization.XmlElementAttribute("bar_part")] + public Bar_part_type Bar_part { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("referable_parts")] + public Lnfoundation_ref_type Referable_parts { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("insulation")] + public Foundation_insulation_type Insulation { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = "F"; + + [System.ComponentModel.DefaultValueAttribute("F")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _bedding_modulus = 10000D; + + [System.ComponentModel.DefaultValueAttribute(10000D)] + [System.Xml.Serialization.XmlAttributeAttribute("bedding_modulus")] + public double Bedding_modulus + { + get + { + return _bedding_modulus; + } + set + { + _bedding_modulus = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Foundationsystems_type _analythical_system = StruSoft.Interop.Foundationsystems_type.Simple; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Foundationsystems_type.Simple)] + [System.Xml.Serialization.XmlAttributeAttribute("analythical_system")] + public Foundationsystems_type Analythical_system + { + get + { + return _analythical_system; + } + set + { + _analythical_system = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private uint _fillmode = 1u; + + [System.ComponentModel.DefaultValueAttribute(1u)] + [System.Xml.Serialization.XmlAttributeAttribute("fillmode")] + public uint Fillmode + { + get + { + return _fillmode; + } + set + { + _fillmode = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private uint _fillcolor = 0u; + + [System.ComponentModel.DefaultValueAttribute(0u)] + [System.Xml.Serialization.XmlAttributeAttribute("fillcolor")] + public uint Fillcolor + { + get + { + return _fillcolor; + } + set + { + _fillcolor = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Lnfoundation_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("sffoundation_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Sffoundation_type + { + + [System.Xml.Serialization.XmlElementAttribute("slab_part")] + public Slab_part_type Slab_part { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("referable_parts")] + public Sffoundation_ref_type Referable_parts { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("insulation")] + public Foundation_insulation_type Insulation { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = "F"; + + [System.ComponentModel.DefaultValueAttribute("F")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _bedding_modulus = 10000D; + + [System.ComponentModel.DefaultValueAttribute(10000D)] + [System.Xml.Serialization.XmlAttributeAttribute("bedding_modulus")] + public double Bedding_modulus + { + get + { + return _bedding_modulus; + } + set + { + _bedding_modulus = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Slabfoundationsystems_type _analythical_system = StruSoft.Interop.Slabfoundationsystems_type.Surface_support_group; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Slabfoundationsystems_type.Surface_support_group)] + [System.Xml.Serialization.XmlAttributeAttribute("analythical_system")] + public Slabfoundationsystems_type Analythical_system + { + get + { + return _analythical_system; + } + set + { + _analythical_system = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private uint _fillmode = 1u; + + [System.ComponentModel.DefaultValueAttribute(1u)] + [System.Xml.Serialization.XmlAttributeAttribute("fillmode")] + public uint Fillmode + { + get + { + return _fillmode; + } + set + { + _fillmode = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private uint _fillcolor = 0u; + + [System.ComponentModel.DefaultValueAttribute(0u)] + [System.Xml.Serialization.XmlAttributeAttribute("fillcolor")] + public uint Fillcolor + { + get + { + return _fillcolor; + } + set + { + _fillcolor = value; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("bedding_modulus_x")] + public double Bedding_modulus_xValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Bedding_modulus_xValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Bedding_modulus_x + { + get + { + if (this.Bedding_modulus_xValueSpecified) + { + return this.Bedding_modulus_xValue; + } + else + { + return null; + } + } + set + { + this.Bedding_modulus_xValue = value.GetValueOrDefault(); + this.Bedding_modulus_xValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("bedding_modulus_y")] + public double Bedding_modulus_yValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Bedding_modulus_yValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Bedding_modulus_y + { + get + { + if (this.Bedding_modulus_yValueSpecified) + { + return this.Bedding_modulus_yValue; + } + else + { + return null; + } + } + set + { + this.Bedding_modulus_yValue = value.GetValueOrDefault(); + this.Bedding_modulus_yValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Sffoundation_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("foundation_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Foundation_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _isolated_foundation; + + [System.Xml.Serialization.XmlElementAttribute("isolated_foundation")] + public System.Collections.Generic.List Isolated_foundation + { + get + { + return _isolated_foundation; + } + set + { + _isolated_foundation = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Isolated_foundationSpecified + { + get + { + return ((this.Isolated_foundation != null) + && (this.Isolated_foundation.Count != 0)); + } + } + + public Foundation_type() + { + this._isolated_foundation = new System.Collections.Generic.List(); + this._wall_foundation = new System.Collections.Generic.List(); + this._foundation_slab = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _wall_foundation; + + [System.Xml.Serialization.XmlElementAttribute("wall_foundation")] + public System.Collections.Generic.List Wall_foundation + { + get + { + return _wall_foundation; + } + set + { + _wall_foundation = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Wall_foundationSpecified + { + get + { + return ((this.Wall_foundation != null) + && (this.Wall_foundation.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _foundation_slab; + + [System.Xml.Serialization.XmlElementAttribute("foundation_slab")] + public System.Collections.Generic.List Foundation_slab + { + get + { + return _foundation_slab; + } + set + { + _foundation_slab = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Foundation_slabSpecified + { + get + { + return ((this.Foundation_slab != null) + && (this.Foundation_slab.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("piletype_type", Namespace="urn:strusoft")] + public enum Piletype_type + { + + [System.Xml.Serialization.XmlEnumAttribute("driven_displacement")] + Driven_displacement, + + [System.Xml.Serialization.XmlEnumAttribute("driven_jetted")] + Driven_jetted, + + [System.Xml.Serialization.XmlEnumAttribute("bored")] + Bored, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("level_point_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Level_point_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("x")] + public double X { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("y")] + public double Y { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("z_top")] + public double Z_top { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("z_bottom")] + public double Z_bottom { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Level_point_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("horizontal_polygon_2d", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Horizontal_polygon_2d + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _point; + + [System.Xml.Serialization.XmlElementAttribute("point")] + public System.Collections.Generic.List Point + { + get + { + return _point; + } + set + { + _point = value; + } + } + + public Horizontal_polygon_2d() + { + this._point = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _height = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("height")] + public double Height + { + get + { + return _height; + } + set + { + _height = value; + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("stratum_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Stratum_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("material")] + public string Material { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("colour")] + public string Colour { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Stratum_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("water_level_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Water_level_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("colour")] + public string Colour { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Water_level_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("strata_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Strata_type + { + + [System.Xml.Serialization.XmlElementAttribute("contour")] + public Horizontal_polygon_2d Contour { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _stratum; + + [System.Xml.Serialization.XmlElementAttribute("stratum")] + public System.Collections.Generic.List Stratum + { + get + { + return _stratum; + } + set + { + _stratum = value; + } + } + + public Strata_type() + { + this._stratum = new System.Collections.Generic.List(); + this._water_level = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _water_level; + + [System.Xml.Serialization.XmlElementAttribute("water_level")] + public System.Collections.Generic.List Water_level + { + get + { + return _water_level; + } + set + { + _water_level = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("default_filling")] + public string Default_filling { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _default_fillings_colour = "B97A57"; + + [System.ComponentModel.DefaultValueAttribute("B97A57")] + [System.Xml.Serialization.XmlAttributeAttribute("default_fillings_colour")] + public string Default_fillings_colour + { + get + { + return _default_fillings_colour; + } + set + { + _default_fillings_colour = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("depth_level_limit")] + public double Depth_level_limit { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("filling_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Filling_type + { + + [System.Xml.Serialization.XmlElementAttribute("contour")] + public Horizontal_polygon_2d Contour { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _level_point; + + [System.Xml.Serialization.XmlElementAttribute("level_point")] + public System.Collections.Generic.List Level_point + { + get + { + return _level_point; + } + set + { + _level_point = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Level_pointSpecified + { + get + { + return ((this.Level_point != null) + && (this.Level_point.Count != 0)); + } + } + + public Filling_type() + { + this._level_point = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("default_top_level")] + public double Default_top_level { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("default_bottom_level")] + public double Default_bottom_level { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("material")] + public string Material { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("colour")] + public string Colour { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("piles_beam_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Piles_beam_type + { + + [System.Xml.Serialization.XmlElementAttribute("curve")] + public Edge_type Curve { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local-y")] + public Point_type_3d Localy { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("connectivity")] + public Connectivity_type Connectivity { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _buckling_data; + + [System.Xml.Serialization.XmlArrayAttribute("buckling_data")] + [System.Xml.Serialization.XmlArrayItemAttribute("buckling_length", Namespace="urn:strusoft")] + public System.Collections.Generic.List Buckling_data + { + get + { + return _buckling_data; + } + set + { + _buckling_data = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Buckling_dataSpecified + { + get + { + return ((this.Buckling_data != null) + && (this.Buckling_data.Count != 0)); + } + } + + public Piles_beam_type() + { + this._buckling_data = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("complex_material")] + public string Complex_material { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("complex_section")] + public string Complex_section { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("complex_composite")] + public string Complex_composite { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Steelmadetype _made = StruSoft.Interop.Steelmadetype.Rolled; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Steelmadetype.Rolled)] + [System.Xml.Serialization.XmlAttributeAttribute("made")] + public Steelmadetype Made + { + get + { + return _made; + } + set + { + _made = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("pile_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Pile_type + { + + [System.Xml.Serialization.XmlElementAttribute("beam")] + public Piles_beam_type Beam { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("point_support")] + public Pile_typePoint_support Point_support { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _line_support; + + [System.Xml.Serialization.XmlElementAttribute("line_support")] + public System.Collections.Generic.List Line_support + { + get + { + return _line_support; + } + set + { + _line_support = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Line_supportSpecified + { + get + { + return ((this.Line_support != null) + && (this.Line_support.Count != 0)); + } + } + + public Pile_type() + { + this._line_support = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = "PI"; + + [System.ComponentModel.DefaultValueAttribute("PI")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("type")] + public Piletype_type Type { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("division_length")] + public double Division_length { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("surface_surcharge")] + public double Surface_surcharge { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("neutral_level")] + public double Neutral_level { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _auto_calculate = true; + + [System.ComponentModel.DefaultValueAttribute(true)] + [System.Xml.Serialization.XmlAttributeAttribute("auto_calculate")] + public bool Auto_calculate + { + get + { + return _auto_calculate; + } + set + { + _auto_calculate = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _perimeter_by_contour = true; + + [System.ComponentModel.DefaultValueAttribute(true)] + [System.Xml.Serialization.XmlAttributeAttribute("perimeter_by_contour")] + public bool Perimeter_by_contour + { + get + { + return _perimeter_by_contour; + } + set + { + _perimeter_by_contour = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Pile_typePoint_support", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Pile_typePoint_support + { + + [System.Xml.Serialization.XmlElementAttribute("rigidity")] + public Pile_rigidity_group_type1 Rigidity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rigidity_group")] + public Pile_rigidity_group_type2 Rigidity_group { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Pile_typePoint_support() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Pile_typeLine_support", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Pile_typeLine_support + { + + [System.Xml.Serialization.XmlElementAttribute("rigidity")] + public Rigidity_data_type0 Rigidity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rigidity_group")] + public Pile_rigidity_group_type Rigidity_group { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alpha_neg")] + public double Alpha_neg { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("beta_neg")] + public double Beta_neg { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Pile_typeLine_support() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("excavation_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Excavation_type + { + + [System.Xml.Serialization.XmlElementAttribute("contour")] + public Horizontal_polygon_2d Contour { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("depth")] + public double Depth { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Excavation_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("retaining_wall_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Retaining_wall_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _internal_entity; + + [System.Xml.Serialization.XmlElementAttribute("internal_entity")] + public System.Collections.Generic.List Internal_entity + { + get + { + return _internal_entity; + } + set + { + _internal_entity = value; + } + } + + public Retaining_wall_type() + { + this._internal_entity = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("slab_part")] + public Slab_part_type Slab_part { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("all_levels_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class All_levels_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _strata_top_levels; + + [System.Xml.Serialization.XmlElementAttribute("strata_top_levels")] + public System.Collections.Generic.List Strata_top_levels + { + get + { + return _strata_top_levels; + } + set + { + _strata_top_levels = value; + } + } + + public All_levels_type() + { + this._strata_top_levels = new System.Collections.Generic.List(); + this._water_levels = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _water_levels; + + [System.Xml.Serialization.XmlElementAttribute("water_levels")] + public System.Collections.Generic.List Water_levels + { + get + { + return _water_levels; + } + set + { + _water_levels = value; + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("borehole_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Borehole_type + { + + [System.Xml.Serialization.XmlElementAttribute("whole_level_data")] + public All_levels_type Whole_level_data { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("x")] + public double X { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("y")] + public double Y { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("final_ground_level")] + public double Final_ground_level { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Borehole_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("section_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Section_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _region_group; + + [System.Xml.Serialization.XmlArrayAttribute("region_group")] + [System.Xml.Serialization.XmlArrayItemAttribute("region", Namespace="urn:strusoft")] + public System.Collections.Generic.List Region_group + { + get + { + return _region_group; + } + set + { + _region_group = value; + } + } + + public Section_type() + { + this._region_group = new System.Collections.Generic.List(); + this._any = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("end")] + public Empty_type End { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _any; + + [System.Xml.Serialization.XmlAnyElementAttribute()] + public System.Collections.Generic.List Any + { + get + { + return _any; + } + set + { + _any = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnySpecified + { + get + { + return ((this.Any != null) + && (this.Any.Count != 0)); + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("type")] + public Sectiontype Type { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Fd_mat_type _fdmat = StruSoft.Interop.Fd_mat_type.Item_1; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Fd_mat_type.Item_1)] + [System.Xml.Serialization.XmlAttributeAttribute("fd-mat")] + public Fd_mat_type Fdmat + { + get + { + return _fdmat; + } + set + { + _fdmat = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("fd_name_code")] + public string Fd_name_code { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("fd_name_type")] + public string Fd_name_type { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("fd_name_size")] + public string Fd_name_size { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _flags = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("flags")] + public int Flags + { + get + { + return _flags; + } + set + { + _flags = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("complex_section_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Complex_section_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _section; + + [System.Xml.Serialization.XmlElementAttribute("section")] + public System.Collections.Generic.List Section + { + get + { + return _section; + } + set + { + _section = value; + } + } + + public Complex_section_type() + { + this._section = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Complex_section_typeSection", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Complex_section_typeSection + { + + [System.Xml.Serialization.XmlElementAttribute("ecc")] + public Point_type_3d Ecc { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("ecc_phys")] + public Point_type_3d Ecc_phys { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("end")] + public Empty_type End { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _any; + + [System.Xml.Serialization.XmlAnyElementAttribute()] + public System.Collections.Generic.List Any + { + get + { + return _any; + } + set + { + _any = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnySpecified + { + get + { + return ((this.Any != null) + && (this.Any.Count != 0)); + } + } + + public Complex_section_typeSection() + { + this._any = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("pos")] + public double Pos { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("optional_material_attribs", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Optional_material_attribs + { + + [System.Xml.Serialization.XmlAttributeAttribute("mass")] + public double Mass { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("E_0")] + public double E_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("E_1")] + public double E_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("E_2")] + public double E_2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nu_0")] + public double Nu_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nu_1")] + public double Nu_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nu_2")] + public double Nu_2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alfa_0")] + public double Alfa_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alfa_1")] + public double Alfa_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alfa_2")] + public double Alfa_2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("G_0")] + public double G_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("G_1")] + public double G_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("G_2")] + public double G_2 { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Optional_material_attribs() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("strength_type", Namespace="urn:strusoft")] + public enum Strength_type + { + + [System.Xml.Serialization.XmlEnumAttribute("brick_only")] + Brick_only, + + [System.Xml.Serialization.XmlEnumAttribute("masonry")] + Masonry, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("tda_creep_prony", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Tda_creep_prony + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _record; + + [System.Xml.Serialization.XmlElementAttribute("record")] + public System.Collections.Generic.List Record + { + get + { + return _record; + } + set + { + _record = value; + } + } + + public Tda_creep_prony() + { + this._record = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Tda_creep_pronyRecord", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Tda_creep_pronyRecord + { + + [System.Xml.Serialization.XmlAttributeAttribute("j")] + public double J { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("tau")] + public double Tau { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("tda_creep_EN1992", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Tda_creep_EN1992 + { + + [System.Xml.Serialization.XmlAttributeAttribute("t0")] + public double T0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("RH")] + public double RH { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("calculate_Ac_u")] + public bool Calculate_Ac_u { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Ac")] + public double Ac { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("u")] + public double U { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("sigma_relevant")] + public bool Sigma_relevant { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("cement_type")] + public Cement_type Cement_type { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("increase_final_value")] + public bool Increase_final_value { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("cement_type", Namespace="urn:strusoft")] + public enum Cement_type + { + + [System.Xml.Serialization.XmlEnumAttribute("")] + Empty, + + [System.Xml.Serialization.XmlEnumAttribute("Class N")] + Class_N, + + [System.Xml.Serialization.XmlEnumAttribute("Class R")] + Class_R, + + [System.Xml.Serialization.XmlEnumAttribute("Class S")] + Class_S, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("tda_creep_compliance_general", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Tda_creep_compliance_general + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _record; + + [System.Xml.Serialization.XmlElementAttribute("record")] + public System.Collections.Generic.List Record + { + get + { + return _record; + } + set + { + _record = value; + } + } + + public Tda_creep_compliance_general() + { + this._record = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Tda_creep_compliance_generalRecord", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Tda_creep_compliance_generalRecord + { + + [System.Xml.Serialization.XmlAttributeAttribute("t")] + public double T { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("j")] + public double J { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("tda_creep1", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Tda_creep1 + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _creep_compliance_prony_series; + + [System.Xml.Serialization.XmlArrayAttribute("creep_compliance_prony_series")] + [System.Xml.Serialization.XmlArrayItemAttribute("record", Namespace="urn:strusoft")] + public System.Collections.Generic.List Creep_compliance_prony_series + { + get + { + return _creep_compliance_prony_series; + } + set + { + _creep_compliance_prony_series = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Creep_compliance_prony_seriesSpecified + { + get + { + return ((this.Creep_compliance_prony_series != null) + && (this.Creep_compliance_prony_series.Count != 0)); + } + } + + public Tda_creep1() + { + this._creep_compliance_prony_series = new System.Collections.Generic.List(); + this._creep_compliance_by_data_set = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _creep_compliance_by_data_set; + + [System.Xml.Serialization.XmlArrayAttribute("creep_compliance_by_data_set")] + [System.Xml.Serialization.XmlArrayItemAttribute("record", Namespace="urn:strusoft")] + public System.Collections.Generic.List Creep_compliance_by_data_set + { + get + { + return _creep_compliance_by_data_set; + } + set + { + _creep_compliance_by_data_set = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Creep_compliance_by_data_setSpecified + { + get + { + return ((this.Creep_compliance_by_data_set != null) + && (this.Creep_compliance_by_data_set.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("tda_creep2", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Tda_creep2 + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _creep_compliance_prony_series; + + [System.Xml.Serialization.XmlArrayAttribute("creep_compliance_prony_series")] + [System.Xml.Serialization.XmlArrayItemAttribute("record", Namespace="urn:strusoft")] + public System.Collections.Generic.List Creep_compliance_prony_series + { + get + { + return _creep_compliance_prony_series; + } + set + { + _creep_compliance_prony_series = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Creep_compliance_prony_seriesSpecified + { + get + { + return ((this.Creep_compliance_prony_series != null) + && (this.Creep_compliance_prony_series.Count != 0)); + } + } + + public Tda_creep2() + { + this._creep_compliance_prony_series = new System.Collections.Generic.List(); + this._creep_compliance_by_data_set = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("EN_1992-1-1_2004")] + public Tda_creep_EN1992 EN_199211_2004 { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _creep_compliance_by_data_set; + + [System.Xml.Serialization.XmlArrayAttribute("creep_compliance_by_data_set")] + [System.Xml.Serialization.XmlArrayItemAttribute("record", Namespace="urn:strusoft")] + public System.Collections.Generic.List Creep_compliance_by_data_set + { + get + { + return _creep_compliance_by_data_set; + } + set + { + _creep_compliance_by_data_set = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Creep_compliance_by_data_setSpecified + { + get + { + return ((this.Creep_compliance_by_data_set != null) + && (this.Creep_compliance_by_data_set.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("tda_shrinkage", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Tda_shrinkage + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _general; + + [System.Xml.Serialization.XmlArrayAttribute("General")] + [System.Xml.Serialization.XmlArrayItemAttribute("record", Namespace="urn:strusoft")] + public System.Collections.Generic.List General + { + get + { + return _general; + } + set + { + _general = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool GeneralSpecified + { + get + { + return ((this.General != null) + && (this.General.Count != 0)); + } + } + + public Tda_shrinkage() + { + this._general = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("EN_1992-1-1_2004")] + public Tda_shrinkageEN_199211_2004 EN_199211_2004 { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Tda_shrinkageGeneral", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Tda_shrinkageGeneral + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _record; + + [System.Xml.Serialization.XmlElementAttribute("record")] + public System.Collections.Generic.List Record + { + get + { + return _record; + } + set + { + _record = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RecordSpecified + { + get + { + return ((this.Record != null) + && (this.Record.Count != 0)); + } + } + + public Tda_shrinkageGeneral() + { + this._record = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Tda_shrinkageGeneralRecord", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Tda_shrinkageGeneralRecord + { + + [System.Xml.Serialization.XmlAttributeAttribute("t")] + public double T { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("strain")] + public double Strain { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Tda_shrinkageEN_199211_2004", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Tda_shrinkageEN_199211_2004 + { + + [System.Xml.Serialization.XmlAttributeAttribute("ts")] + public double Ts { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("RH")] + public double RH { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("calculate_Ac_u")] + public bool Calculate_Ac_u { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Ac")] + public double Ac { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("u")] + public double U { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("cement_type")] + public Cement_type Cement_type { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("tda_elasticity", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Tda_elasticity + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _general; + + [System.Xml.Serialization.XmlArrayAttribute("General")] + [System.Xml.Serialization.XmlArrayItemAttribute("record", Namespace="urn:strusoft")] + public System.Collections.Generic.List General + { + get + { + return _general; + } + set + { + _general = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool GeneralSpecified + { + get + { + return ((this.General != null) + && (this.General.Count != 0)); + } + } + + public Tda_elasticity() + { + this._general = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("EN_1992-1-1_2004")] + public Tda_elasticityEN_199211_2004 EN_199211_2004 { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Tda_elasticityGeneral", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Tda_elasticityGeneral + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _record; + + [System.Xml.Serialization.XmlElementAttribute("record")] + public System.Collections.Generic.List Record + { + get + { + return _record; + } + set + { + _record = value; + } + } + + public Tda_elasticityGeneral() + { + this._record = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Tda_elasticityGeneralRecord", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Tda_elasticityGeneralRecord + { + + [System.Xml.Serialization.XmlAttributeAttribute("t")] + public double T { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("E")] + public double E { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Tda_elasticityEN_199211_2004", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Tda_elasticityEN_199211_2004 + { + + [System.Xml.Serialization.XmlAttributeAttribute("cement_type")] + public Cement_type Cement_type { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("t0")] + public double T0 { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("cc_type", Namespace="urn:strusoft")] + public enum Cc_type + { + + Crisfield, + + Cervera, + + Hinton, + + Prager, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ts_type", Namespace="urn:strusoft")] + public enum Ts_type + { + + Hinton, + + Vecchio, + + Linear, + + Cervera, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("rcsm_type", Namespace="urn:strusoft")] + public enum Rcsm_type + { + + [System.Xml.Serialization.XmlEnumAttribute("Vecchio 1")] + Vecchio_1, + + [System.Xml.Serialization.XmlEnumAttribute("Vecchio 2")] + Vecchio_2, + + Cervera, + + [System.Xml.Serialization.XmlEnumAttribute("Model Code 2010")] + Model_Code_2010, + + [System.Xml.Serialization.XmlEnumAttribute("EN 1992-1-1:2023")] + EN_1992_1_1Colon2023, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("concrete_pl_attribs", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Concrete_pl_attribs + { + + [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_behaviour")] + public bool Elasto_plastic_behaviour { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("plastic_hardening")] + public bool Plastic_hardening { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("concrete_crushing")] + public bool Concrete_crushing { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("concrete_crushing_option")] + public Cc_type Concrete_crushing_option { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("tension_strength")] + public bool Tension_strength { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("tension_stiffening")] + public bool Tension_stiffening { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("tension_stiffening_option")] + public Ts_type Tension_stiffening_option { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("tension_stiffening_param")] + public double Tension_stiffening_param { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("reduced_compression_strength")] + public bool Reduced_compression_strength { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("reduced_compression_strength_option")] + public Rcsm_type Reduced_compression_strength_option { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("reduced_compression_strength_param")] + public double Reduced_compression_strength_param { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("reduced_transverse_shear_stiffnes")] + public bool Reduced_transverse_shear_stiffnes { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("ultimate_strain")] + public bool Ultimate_strain { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _reduced_yield_stress = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("reduced_yield_stress")] + public bool Reduced_yield_stress + { + get + { + return _reduced_yield_stress; + } + set + { + _reduced_yield_stress = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _reduced_yield_stress_param = 0.05D; + + [System.ComponentModel.DefaultValueAttribute(0.05D)] + [System.Xml.Serialization.XmlAttributeAttribute("reduced_yield_stress_param")] + public double Reduced_yield_stress_param + { + get + { + return _reduced_yield_stress_param; + } + set + { + _reduced_yield_stress_param = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _hardening_in_rebars = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("hardening_in_rebars")] + public bool Hardening_in_rebars + { + get + { + return _hardening_in_rebars; + } + set + { + _hardening_in_rebars = value; + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("concrete_pl_data", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Concrete_pl_data + { + + [System.Xml.Serialization.XmlElementAttribute("U")] + public Concrete_pl_attribs U { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("Sq")] + public Concrete_pl_attribs Sq { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("Sf")] + public Concrete_pl_attribs Sf { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("Sc")] + public Concrete_pl_attribs Sc { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("eptso_type", Namespace="urn:strusoft")] + public enum Eptso_type + { + + [System.Xml.Serialization.XmlEnumAttribute("parabolic")] + Parabolic, + + [System.Xml.Serialization.XmlEnumAttribute("constant")] + Constant, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("steel_pl_data", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_pl_data + { + + [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_behaviour_U")] + public bool Elasto_plastic_behaviour_U { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_strain_limit_U")] + public bool Elasto_plastic_strain_limit_U { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_strain_limit_option_U")] + public double Elasto_plastic_strain_limit_option_U { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _elasto_plastic_transverse_shear_U = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_transverse_shear_U")] + public bool Elasto_plastic_transverse_shear_U + { + get + { + return _elasto_plastic_transverse_shear_U; + } + set + { + _elasto_plastic_transverse_shear_U = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Eptso_type _elasto_plastic_transverse_shear_option_U = StruSoft.Interop.Eptso_type.Parabolic; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Eptso_type.Parabolic)] + [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_transverse_shear_option_U")] + public Eptso_type Elasto_plastic_transverse_shear_option_U + { + get + { + return _elasto_plastic_transverse_shear_option_U; + } + set + { + _elasto_plastic_transverse_shear_option_U = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_behaviour_Sq")] + public bool Elasto_plastic_behaviour_Sq { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_strain_limit_Sq")] + public bool Elasto_plastic_strain_limit_Sq { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_strain_limit_option_Sq")] + public double Elasto_plastic_strain_limit_option_Sq { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _elasto_plastic_transverse_shear_Sq = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_transverse_shear_Sq")] + public bool Elasto_plastic_transverse_shear_Sq + { + get + { + return _elasto_plastic_transverse_shear_Sq; + } + set + { + _elasto_plastic_transverse_shear_Sq = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Eptso_type _elasto_plastic_transverse_shear_option_Sq = StruSoft.Interop.Eptso_type.Parabolic; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Eptso_type.Parabolic)] + [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_transverse_shear_option_Sq")] + public Eptso_type Elasto_plastic_transverse_shear_option_Sq + { + get + { + return _elasto_plastic_transverse_shear_option_Sq; + } + set + { + _elasto_plastic_transverse_shear_option_Sq = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_behaviour_Sf")] + public bool Elasto_plastic_behaviour_Sf { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_strain_limit_Sf")] + public bool Elasto_plastic_strain_limit_Sf { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_strain_limit_option_Sf")] + public double Elasto_plastic_strain_limit_option_Sf { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _elasto_plastic_transverse_shear_Sf = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_transverse_shear_Sf")] + public bool Elasto_plastic_transverse_shear_Sf + { + get + { + return _elasto_plastic_transverse_shear_Sf; + } + set + { + _elasto_plastic_transverse_shear_Sf = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Eptso_type _elasto_plastic_transverse_shear_option_Sf = StruSoft.Interop.Eptso_type.Parabolic; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Eptso_type.Parabolic)] + [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_transverse_shear_option_Sf")] + public Eptso_type Elasto_plastic_transverse_shear_option_Sf + { + get + { + return _elasto_plastic_transverse_shear_option_Sf; + } + set + { + _elasto_plastic_transverse_shear_option_Sf = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_behaviour_Sc")] + public bool Elasto_plastic_behaviour_Sc { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_strain_limit_Sc")] + public bool Elasto_plastic_strain_limit_Sc { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_strain_limit_option_Sc")] + public double Elasto_plastic_strain_limit_option_Sc { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _elasto_plastic_transverse_shear_Sc = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_transverse_shear_Sc")] + public bool Elasto_plastic_transverse_shear_Sc + { + get + { + return _elasto_plastic_transverse_shear_Sc; + } + set + { + _elasto_plastic_transverse_shear_Sc = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Eptso_type _elasto_plastic_transverse_shear_option_Sc = StruSoft.Interop.Eptso_type.Parabolic; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Eptso_type.Parabolic)] + [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_transverse_shear_option_Sc")] + public Eptso_type Elasto_plastic_transverse_shear_option_Sc + { + get + { + return _elasto_plastic_transverse_shear_option_Sc; + } + set + { + _elasto_plastic_transverse_shear_option_Sc = value; + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("material_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Material_type + { + + [System.Xml.Serialization.XmlElementAttribute("concrete")] + public Material_typeConcrete Concrete { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("steel")] + public Material_typeSteel Steel { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("timber")] + public Material_typeTimber Timber { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("brick")] + public Material_typeBrick Brick { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("masonry")] + public Material_typeMasonry Masonry { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("stratum")] + public Material_typeStratum Stratum { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("custom")] + public Material_typeCustom Custom { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("reference")] + public Reference_type Reference { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("standard")] + public Standardtype Standard { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("country")] + public Eurocodetype Country { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Material_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Material_typeConcrete", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Material_typeConcrete + { + + [System.Xml.Serialization.XmlElementAttribute("tda_creep")] + public Tda_creep2 Tda_creep { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("tda_shrinkage")] + public Tda_shrinkage Tda_shrinkage { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("tda_elasticity")] + public Tda_elasticity Tda_elasticity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plastic_analysis_data")] + public Concrete_pl_data Plastic_analysis_data { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("mass")] + public double Mass { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("E_0")] + public double E_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("E_1")] + public double E_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("E_2")] + public double E_2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nu_0")] + public double Nu_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nu_1")] + public double Nu_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nu_2")] + public double Nu_2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alfa_0")] + public double Alfa_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alfa_1")] + public double Alfa_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alfa_2")] + public double Alfa_2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("G_0")] + public double G_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("G_1")] + public double G_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("G_2")] + public double G_2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fck")] + public double Fck { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _fck_cube = 30D; + + [System.ComponentModel.DefaultValueAttribute(30D)] + [System.Xml.Serialization.XmlAttributeAttribute("Fck_cube")] + public double Fck_cube + { + get + { + return _fck_cube; + } + set + { + _fck_cube = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("Fctk")] + public double Fctk { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fctm")] + public double Fctm { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Ecm")] + public double Ecm { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("gammaC_0")] + public double GammaC_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("gammaC_1")] + public double GammaC_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("gammaCE")] + public double GammaCE { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _gammaCfi = 1D; + + [System.ComponentModel.DefaultValueAttribute(1D)] + [System.Xml.Serialization.XmlAttributeAttribute("gammaCfi")] + public double GammaCfi + { + get + { + return _gammaCfi; + } + set + { + _gammaCfi = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("gammaS_0")] + public double GammaS_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("gammaS_1")] + public double GammaS_1 { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _gammaSfi = 1D; + + [System.ComponentModel.DefaultValueAttribute(1D)] + [System.Xml.Serialization.XmlAttributeAttribute("gammaSfi")] + public double GammaSfi + { + get + { + return _gammaSfi; + } + set + { + _gammaSfi = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("alfaCc")] + public double AlfaCc { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alfaCt")] + public double AlfaCt { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fcd_0")] + public double Fcd_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fcd_1")] + public double Fcd_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fctd_0")] + public double Fctd_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fctd_1")] + public double Fctd_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Ecd_0")] + public double Ecd_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Ecd_1")] + public double Ecd_1 { get; set; } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("Epsc2")] + public double Epsc2Value { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Epsc2ValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Epsc2 + { + get + { + if (this.Epsc2ValueSpecified) + { + return this.Epsc2Value; + } + else + { + return null; + } + } + set + { + this.Epsc2Value = value.GetValueOrDefault(); + this.Epsc2ValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("Epscu2")] + public double Epscu2Value { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Epscu2ValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Epscu2 + { + get + { + if (this.Epscu2ValueSpecified) + { + return this.Epscu2Value; + } + else + { + return null; + } + } + set + { + this.Epscu2Value = value.GetValueOrDefault(); + this.Epscu2ValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("Epsc3")] + public double Epsc3 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Epscu3")] + public double Epscu3 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("environment")] + public string Environment { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("creep")] + public double Creep { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _creep_sls = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("creep_sls")] + public double Creep_sls + { + get + { + return _creep_sls; + } + set + { + _creep_sls = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _creep_slf = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("creep_slf")] + public double Creep_slf + { + get + { + return _creep_slf; + } + set + { + _creep_slf = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _creep_slc = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("creep_slc")] + public double Creep_slc + { + get + { + return _creep_slc; + } + set + { + _creep_slc = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("shrinkage")] + public double Shrinkage { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nu")] + public double Nu { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alfa")] + public double Alfa { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _reduction = 1D; + + [System.ComponentModel.DefaultValueAttribute(1D)] + [System.Xml.Serialization.XmlAttributeAttribute("reduction")] + public double Reduction + { + get + { + return _reduction; + } + set + { + _reduction = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _stability = 1D; + + [System.ComponentModel.DefaultValueAttribute(1D)] + [System.Xml.Serialization.XmlAttributeAttribute("stability")] + public double Stability + { + get + { + return _stability; + } + set + { + _stability = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Material_typeConcrete() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Material_typeSteel", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Material_typeSteel + { + + [System.Xml.Serialization.XmlElementAttribute("tda_creep")] + public Tda_creep1 Tda_creep { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plastic_analysis_data")] + public Steel_pl_data Plastic_analysis_data { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("mass")] + public double Mass { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("E_0")] + public double E_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("E_1")] + public double E_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("E_2")] + public double E_2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nu_0")] + public double Nu_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nu_1")] + public double Nu_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nu_2")] + public double Nu_2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alfa_0")] + public double Alfa_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alfa_1")] + public double Alfa_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alfa_2")] + public double Alfa_2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("G_0")] + public double G_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("G_1")] + public double G_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("G_2")] + public double G_2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fyk16")] + public double Fyk16 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fyk40")] + public double Fyk40 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fyk63")] + public double Fyk63 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fyk80")] + public double Fyk80 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fyk100")] + public double Fyk100 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fyk150")] + public double Fyk150 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fyk200")] + public double Fyk200 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fyk250")] + public double Fyk250 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fyk400")] + public double Fyk400 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fuk3")] + public double Fuk3 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fuk40")] + public double Fuk40 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fuk100")] + public double Fuk100 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fuk150")] + public double Fuk150 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fuk250")] + public double Fuk250 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fuk400")] + public double Fuk400 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("gammaM0_0")] + public double GammaM0_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("gammaM0_1")] + public double GammaM0_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("gammaM1_0")] + public double GammaM1_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("gammaM1_1")] + public double GammaM1_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("gammaM2_0")] + public double GammaM2_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("gammaM2_1")] + public double GammaM2_1 { get; set; } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("gammaM5_0")] + public double GammaM5_0Value { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool GammaM5_0ValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable GammaM5_0 + { + get + { + if (this.GammaM5_0ValueSpecified) + { + return this.GammaM5_0Value; + } + else + { + return null; + } + } + set + { + this.GammaM5_0Value = value.GetValueOrDefault(); + this.GammaM5_0ValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("gammaM5_1")] + public double GammaM5_1Value { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool GammaM5_1ValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable GammaM5_1 + { + get + { + if (this.GammaM5_1ValueSpecified) + { + return this.GammaM5_1Value; + } + else + { + return null; + } + } + set + { + this.GammaM5_1Value = value.GetValueOrDefault(); + this.GammaM5_1ValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _gammaMfi = 1D; + + [System.ComponentModel.DefaultValueAttribute(1D)] + [System.Xml.Serialization.XmlAttributeAttribute("gammaMfi")] + public double GammaMfi + { + get + { + return _gammaMfi; + } + set + { + _gammaMfi = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("Ek")] + public double Ek { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Ed_0")] + public double Ed_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Ed_1")] + public double Ed_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nu")] + public double Nu { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("G")] + public double G { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alfa")] + public double Alfa { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Material_typeSteel() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Material_typeTimber", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Material_typeTimber + { + + [System.Xml.Serialization.XmlElementAttribute("tda_creep")] + public Tda_creep1 Tda_creep { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("mass")] + public double Mass { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("E_0")] + public double E_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("E_1")] + public double E_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("E_2")] + public double E_2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nu_0")] + public double Nu_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nu_1")] + public double Nu_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nu_2")] + public double Nu_2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alfa_0")] + public double Alfa_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alfa_1")] + public double Alfa_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alfa_2")] + public double Alfa_2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("G_0")] + public double G_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("G_1")] + public double G_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("G_2")] + public double G_2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("type")] + public string Type { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("quality")] + public string Quality { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fmk0")] + public double Fmk0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fmk90")] + public double Fmk90 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Ft0k")] + public double Ft0k { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Ft90k")] + public double Ft90k { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fc0k")] + public double Fc0k { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fc90k")] + public double Fc90k { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Fvk")] + public double Fvk { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("E0mean")] + public double E0mean { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("E90mean")] + public double E90mean { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("E005")] + public double E005 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Gmean")] + public double Gmean { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("G005")] + public double G005 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Rhok")] + public double Rhok { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Rhomean")] + public double Rhomean { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("E0comp")] + public double E0comp { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("E90comp")] + public double E90comp { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("gammaM_0")] + public double GammaM_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("gammaM_1")] + public double GammaM_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("ksys")] + public double Ksys { get; set; } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("k_cr")] + public double K_crValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool K_crValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable K_cr + { + get + { + if (this.K_crValueSpecified) + { + return this.K_crValue; + } + else + { + return null; + } + } + set + { + this.K_crValue = value.GetValueOrDefault(); + this.K_crValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("service_class")] + public byte Service_class { get; set; } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("kdefU")] + public double KdefUValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool KdefUValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable KdefU + { + get + { + if (this.KdefUValueSpecified) + { + return this.KdefUValue; + } + else + { + return null; + } + } + set + { + this.KdefUValue = value.GetValueOrDefault(); + this.KdefUValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("kdefSq")] + public double KdefSqValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool KdefSqValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable KdefSq + { + get + { + if (this.KdefSqValueSpecified) + { + return this.KdefSqValue; + } + else + { + return null; + } + } + set + { + this.KdefSqValue = value.GetValueOrDefault(); + this.KdefSqValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("kdefSf")] + public double KdefSfValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool KdefSfValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable KdefSf + { + get + { + if (this.KdefSfValueSpecified) + { + return this.KdefSfValue; + } + else + { + return null; + } + } + set + { + this.KdefSfValue = value.GetValueOrDefault(); + this.KdefSfValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("kdefSc")] + public double KdefScValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool KdefScValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable KdefSc + { + get + { + if (this.KdefScValueSpecified) + { + return this.KdefScValue; + } + else + { + return null; + } + } + set + { + this.KdefScValue = value.GetValueOrDefault(); + this.KdefScValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("gammaMfi")] + public double GammaMfiValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool GammaMfiValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable GammaMfi + { + get + { + if (this.GammaMfiValueSpecified) + { + return this.GammaMfiValue; + } + else + { + return null; + } + } + set + { + this.GammaMfiValue = value.GetValueOrDefault(); + this.GammaMfiValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Material_typeTimber() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Material_typeBrick", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Material_typeBrick + { + + [System.Xml.Serialization.XmlElementAttribute("base_data")] + public Optional_material_attribs Base_data { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Strength_type _strength_for = StruSoft.Interop.Strength_type.Brick_only; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Strength_type.Brick_only)] + [System.Xml.Serialization.XmlAttributeAttribute("strength_for")] + public Strength_type Strength_for + { + get + { + return _strength_for; + } + set + { + _strength_for = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("fb")] + public double Fb { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nu")] + public double Nu { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("rho")] + public double Rho { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alpha_thermal")] + public double Alpha_thermal { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("gammaM_0")] + public double GammaM_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("gammaM_1")] + public double GammaM_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("fm")] + public double Fm { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("K")] + public double K { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alpha")] + public double Alpha { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("beta")] + public double Beta { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("elasticity_modulus")] + public double Elasticity_modulus { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _elasticity_calculated_by_KE = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("elasticity_calculated_by_KE")] + public bool Elasticity_calculated_by_KE + { + get + { + return _elasticity_calculated_by_KE; + } + set + { + _elasticity_calculated_by_KE = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("creep_U")] + public double Creep_U { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("creep_Sq")] + public double Creep_Sq { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("creep_Sf")] + public double Creep_Sf { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("creep_Sc")] + public double Creep_Sc { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("phi")] + public double Phi { get; set; } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("filled_vertical_joints")] + public bool Filled_vertical_jointsValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Filled_vertical_jointsValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Filled_vertical_joints + { + get + { + if (this.Filled_vertical_jointsValueSpecified) + { + return this.Filled_vertical_jointsValue; + } + else + { + return null; + } + } + set + { + this.Filled_vertical_jointsValue = value.GetValueOrDefault(); + this.Filled_vertical_jointsValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("km")] + public double KmValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool KmValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Km + { + get + { + if (this.KmValueSpecified) + { + return this.KmValue; + } + else + { + return null; + } + } + set + { + this.KmValue = value.GetValueOrDefault(); + this.KmValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("muk")] + public double MukValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool MukValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Muk + { + get + { + if (this.MukValueSpecified) + { + return this.MukValue; + } + else + { + return null; + } + } + set + { + this.MukValue = value.GetValueOrDefault(); + this.MukValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("ct")] + public double CtValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool CtValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Ct + { + get + { + if (this.CtValueSpecified) + { + return this.CtValue; + } + else + { + return null; + } + } + set + { + this.CtValue = value.GetValueOrDefault(); + this.CtValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("fvk0")] + public double Fvk0Value { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Fvk0ValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Fvk0 + { + get + { + if (this.Fvk0ValueSpecified) + { + return this.Fvk0Value; + } + else + { + return null; + } + } + set + { + this.Fvk0Value = value.GetValueOrDefault(); + this.Fvk0ValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("fvlt")] + public double FvltValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool FvltValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Fvlt + { + get + { + if (this.FvltValueSpecified) + { + return this.FvltValue; + } + else + { + return null; + } + } + set + { + this.FvltValue = value.GetValueOrDefault(); + this.FvltValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Material_typeBrick() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Material_typeMasonry", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Material_typeMasonry + { + + [System.Xml.Serialization.XmlElementAttribute("base_data")] + public Optional_material_attribs Base_data { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("fk")] + public double Fk { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nu")] + public double Nu { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("rho")] + public double Rho { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alpha_thermal")] + public double Alpha_thermal { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("gammaM_0")] + public double GammaM_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("gammaM_1")] + public double GammaM_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("fm")] + public double Fm { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("K")] + public double K { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alpha")] + public double Alpha { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("beta")] + public double Beta { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("elasticity_modulus")] + public double Elasticity_modulus { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _elasticity_calculated_by_KE = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("elasticity_calculated_by_KE")] + public bool Elasticity_calculated_by_KE + { + get + { + return _elasticity_calculated_by_KE; + } + set + { + _elasticity_calculated_by_KE = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("creep_U")] + public double Creep_U { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("creep_Sq")] + public double Creep_Sq { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("creep_Sf")] + public double Creep_Sf { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("creep_Sc")] + public double Creep_Sc { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("phi")] + public double Phi { get; set; } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("filled_vertical_joints")] + public bool Filled_vertical_jointsValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Filled_vertical_jointsValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Filled_vertical_joints + { + get + { + if (this.Filled_vertical_jointsValueSpecified) + { + return this.Filled_vertical_jointsValue; + } + else + { + return null; + } + } + set + { + this.Filled_vertical_jointsValue = value.GetValueOrDefault(); + this.Filled_vertical_jointsValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("km")] + public double KmValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool KmValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Km + { + get + { + if (this.KmValueSpecified) + { + return this.KmValue; + } + else + { + return null; + } + } + set + { + this.KmValue = value.GetValueOrDefault(); + this.KmValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("muk")] + public double MukValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool MukValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Muk + { + get + { + if (this.MukValueSpecified) + { + return this.MukValue; + } + else + { + return null; + } + } + set + { + this.MukValue = value.GetValueOrDefault(); + this.MukValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("ct")] + public double CtValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool CtValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Ct + { + get + { + if (this.CtValueSpecified) + { + return this.CtValue; + } + else + { + return null; + } + } + set + { + this.CtValue = value.GetValueOrDefault(); + this.CtValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("fvk0")] + public double Fvk0Value { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Fvk0ValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Fvk0 + { + get + { + if (this.Fvk0ValueSpecified) + { + return this.Fvk0Value; + } + else + { + return null; + } + } + set + { + this.Fvk0Value = value.GetValueOrDefault(); + this.Fvk0ValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("fvlt")] + public double FvltValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool FvltValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Fvlt + { + get + { + if (this.FvltValueSpecified) + { + return this.FvltValue; + } + else + { + return null; + } + } + set + { + this.FvltValue = value.GetValueOrDefault(); + this.FvltValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Material_typeMasonry() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Material_typeStratum", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Material_typeStratum + { + + [System.Xml.Serialization.XmlElementAttribute("base_data")] + public Optional_material_attribs Base_data { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("behaviour")] + public Material_typeStratumBehaviour Behaviour { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("model")] + public Material_typeStratumModel Model { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("reference_level")] + public double Reference_level { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Gamma_dry")] + public double Gamma_dry { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Gamma_sat")] + public double Gamma_sat { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nu")] + public double Nu { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Material_typeStratum() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Material_typeStratumBehaviour", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Material_typeStratumBehaviour + { + + [System.Xml.Serialization.XmlElementAttribute("drained")] + public Material_typeStratumBehaviourDrained Drained { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("undrained")] + public Material_typeStratumBehaviourUndrained Undrained { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("combined")] + public Material_typeStratumBehaviourCombined Combined { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Material_typeStratumBehaviourDrained", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Material_typeStratumBehaviourDrained + { + + [System.Xml.Serialization.XmlAttributeAttribute("c_k")] + public double C_k { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("c_k_depth")] + public double C_k_depth { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("phi_k")] + public double Phi_k { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("phi_cvk")] + public double Phi_cvk { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Material_typeStratumBehaviourUndrained", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Material_typeStratumBehaviourUndrained + { + + [System.Xml.Serialization.XmlAttributeAttribute("c_uk")] + public double C_uk { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("c_uk_depth")] + public double C_uk_depth { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Material_typeStratumBehaviourCombined", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Material_typeStratumBehaviourCombined + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _drained = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("drained")] + public bool Drained + { + get + { + return _drained; + } + set + { + _drained = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("c_uk")] + public double C_uk { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("c_uk_depth")] + public double C_uk_depth { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("c_k")] + public double C_k { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("c_k_depth")] + public double C_k_depth { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("phi_k")] + public double Phi_k { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("phi_cvk")] + public double Phi_cvk { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Material_typeStratumModel", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Material_typeStratumModel + { + + [System.Xml.Serialization.XmlElementAttribute("generic")] + public Material_typeStratumModelGeneric Generic { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("linear")] + public Material_typeStratumModelLinear Linear { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("overconsolidated")] + public Material_typeStratumModelOverconsolidated Overconsolidated { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Material_typeStratumModelGeneric", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Material_typeStratumModelGeneric + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _record; + + [System.Xml.Serialization.XmlElementAttribute("record")] + public System.Collections.Generic.List Record + { + get + { + return _record; + } + set + { + _record = value; + } + } + + public Material_typeStratumModelGeneric() + { + this._record = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("Mu")] + public double Mu { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Mu_depth")] + public double Mu_depth { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Material_typeStratumModelGenericRecord", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Material_typeStratumModelGenericRecord + { + + [System.Xml.Serialization.XmlAttributeAttribute("Sigma")] + public double Sigma { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("p")] + public double P { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("pd")] + public double Pd { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("M")] + public double M { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Md")] + public double Md { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Material_typeStratumModelLinear", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Material_typeStratumModelLinear + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _use_E = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("use_E")] + public bool Use_E + { + get + { + return _use_E; + } + set + { + _use_E = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("value")] + public double Value { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("M0_depth")] + public double M0_depth { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Material_typeStratumModelOverconsolidated", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Material_typeStratumModelOverconsolidated + { + + [System.Xml.Serialization.XmlAttributeAttribute("Mu")] + public double Mu { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Mu_depth")] + public double Mu_depth { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("M0")] + public double M0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("M0_depth")] + public double M0_depth { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("ML")] + public double ML { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("ML_depth")] + public double ML_depth { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("M")] + public double M { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("M_depth")] + public double M_depth { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Sigma_c")] + public double Sigma_c { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("p_c")] + public double P_c { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("pc_depth")] + public double Pc_depth { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Sigma_L")] + public double Sigma_L { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("p_L")] + public double P_L { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("p_L_depth")] + public double P_L_depth { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Material_typeCustom", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Material_typeCustom + { + + [System.Xml.Serialization.XmlAttributeAttribute("mass")] + public double Mass { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("E_0")] + public double E_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("E_1")] + public double E_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("E_2")] + public double E_2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nu_0")] + public double Nu_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nu_1")] + public double Nu_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nu_2")] + public double Nu_2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alfa_0")] + public double Alfa_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alfa_1")] + public double Alfa_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alfa_2")] + public double Alfa_2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("G_0")] + public double G_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("G_1")] + public double G_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("G_2")] + public double G_2 { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Material_typeCustom() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("complex_material_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Complex_material_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _material; + + [System.Xml.Serialization.XmlElementAttribute("material")] + public System.Collections.Generic.List Material + { + get + { + return _material; + } + set + { + _material = value; + } + } + + public Complex_material_type() + { + this._material = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("studrail_patterns", Namespace="urn:strusoft")] + public enum Studrail_patterns + { + + [System.Xml.Serialization.XmlEnumAttribute("radial")] + Radial, + + [System.Xml.Serialization.XmlEnumAttribute("orthogonal")] + Orthogonal, + + [System.Xml.Serialization.XmlEnumAttribute("semi-orthogonal")] + Semiorthogonal, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("rfmaterial_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Rfmaterial_type + { + + [System.Xml.Serialization.XmlElementAttribute("reinforcing_steel")] + public Rfmaterial_typeReinforcing_steel Reinforcing_steel { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("standard")] + public Standardtype Standard { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("country")] + public Eurocodetype Country { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Rfmaterial_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Rfmaterial_typeReinforcing_steel", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Rfmaterial_typeReinforcing_steel + { + + [System.Xml.Serialization.XmlAttributeAttribute("fyk")] + public double Fyk { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Es")] + public double Es { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Epsilon_uk")] + public double Epsilon_uk { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Epsilon_ud")] + public double Epsilon_ud { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("k")] + public double K { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Rfmaterial_typeReinforcing_steel() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("wire_profile_type", Namespace="urn:strusoft")] + public enum Wire_profile_type + { + + [System.Xml.Serialization.XmlEnumAttribute("smooth")] + Smooth, + + [System.Xml.Serialization.XmlEnumAttribute("ribbed")] + Ribbed, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("rf_wire_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Rf_wire_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("diameter")] + public double Diameter { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("reinforcing_material")] + public string Reinforcing_material { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Wire_profile_type _profile = StruSoft.Interop.Wire_profile_type.Ribbed; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Wire_profile_type.Ribbed)] + [System.Xml.Serialization.XmlAttributeAttribute("profile")] + public Wire_profile_type Profile + { + get + { + return _profile; + } + set + { + _profile = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Rf_wire_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("shell_rf_params_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Shell_rf_params_type + { + + [System.Xml.Serialization.XmlElementAttribute("base_shell")] + public Guid_list_type Base_shell { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("center")] + public Shell_rf_params_typeCenter Center { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("x_direction")] + public Point_type_3d X_direction { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("y_direction")] + public Point_type_3d Y_direction { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _single_layer_reinforcement = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("single_layer_reinforcement")] + public bool Single_layer_reinforcement + { + get + { + return _single_layer_reinforcement; + } + set + { + _single_layer_reinforcement = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Shell_rf_params_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Shell_rf_params_typeCenter", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Shell_rf_params_typeCenter + { + + [System.Xml.Serialization.XmlAttributeAttribute("x")] + public double X { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("y")] + public double Y { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("z")] + public double Z { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("polar_system")] + public bool Polar_system { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Shell_rf_params_typeCenter() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("bar_rf_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Bar_rf_type + { + + [System.Xml.Serialization.XmlElementAttribute("base_bar")] + public Guid_list_type Base_bar { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("wire")] + public Rf_wire_type Wire { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("stirrups")] + public Bar_rf_typeStirrups Stirrups { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("longitudinal_bar")] + public Bar_rf_typeLongitudinal_bar Longitudinal_bar { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Bar_rf_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Bar_rf_typeStirrups", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Bar_rf_typeStirrups + { + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + public Bar_rf_typeStirrups() + { + this.Region = new Region_type(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("start")] + public double Start { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("end")] + public double End { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("distance")] + public double Distance { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Bar_rf_typeLongitudinal_bar", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Bar_rf_typeLongitudinal_bar + { + + [System.Xml.Serialization.XmlElementAttribute("cross-sectional_position")] + public Point_type_2d Crosssectional_position { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("anchorage")] + public Start_end_type Anchorage { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("prescribed_lengthening")] + public Start_end_type Prescribed_lengthening { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("start")] + public double Start { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("end")] + public double End { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("auxiliary")] + public bool Auxiliary { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Bar_rf_typeLongitudinal_bar() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("mrm_type", Namespace="urn:strusoft")] + public enum Mrm_type + { + + [System.Xml.Serialization.XmlEnumAttribute("EN1992-1-1 5.3.2.2(3)")] + EN1992_1_1_5Period3Period2Period2LeftParenthesis3RightParenthesis, + + [System.Xml.Serialization.XmlEnumAttribute("EN1992-1-1 5.3.2.2(4)")] + EN1992_1_1_5Period3Period2Period2LeftParenthesis4RightParenthesis, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("beam_ed_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Beam_ed_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("t_left")] + public double T_left { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("t_right")] + public double T_right { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Beam_ed_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("beam_reduction_zone_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Beam_reduction_zone_type + { + + [System.Xml.Serialization.XmlElementAttribute("position")] + public Point_type_3d Position { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("extent_definition")] + public Beam_ed_type Extent_definition { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("base_beam")] + public string Base_beam { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("moment_reduction_method")] + public Mrm_type Moment_reduction_method { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _automatic_extent_definition = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("automatic_extent_definition")] + public bool Automatic_extent_definition + { + get + { + return _automatic_extent_definition; + } + set + { + _automatic_extent_definition = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _moment_reduction = true; + + [System.ComponentModel.DefaultValueAttribute(true)] + [System.Xml.Serialization.XmlAttributeAttribute("moment_reduction")] + public bool Moment_reduction + { + get + { + return _moment_reduction; + } + set + { + _moment_reduction = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _shear_reduction = true; + + [System.ComponentModel.DefaultValueAttribute(true)] + [System.Xml.Serialization.XmlAttributeAttribute("shear_reduction")] + public bool Shear_reduction + { + get + { + return _shear_reduction; + } + set + { + _shear_reduction = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("connected_to")] + public string Connected_to { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Beam_reduction_zone_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("punching_area_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Punching_area_type + { + + [System.Xml.Serialization.XmlElementAttribute("base_shell")] + public Guid_list_type Base_shell { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _connected_bar; + + [System.Xml.Serialization.XmlElementAttribute("connected_bar")] + public System.Collections.Generic.List Connected_bar + { + get + { + return _connected_bar; + } + set + { + _connected_bar = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Connected_barSpecified + { + get + { + return ((this.Connected_bar != null) + && (this.Connected_bar.Count != 0)); + } + } + + public Punching_area_type() + { + this._connected_bar = new System.Collections.Generic.List(); + this.Region = new Region_type(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("local_pos")] + public Point_type_3d Local_pos { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_x")] + public Point_type_3d Local_x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_y")] + public Point_type_3d Local_y { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("reference_points_offset")] + public Point_type_3d Reference_points_offset { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _downward = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("downward")] + public bool Downward + { + get + { + return _downward; + } + set + { + _downward = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _manual_design = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("manual_design")] + public bool Manual_design + { + get + { + return _manual_design; + } + set + { + _manual_design = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = "PU"; + + [System.ComponentModel.DefaultValueAttribute("PU")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("wbr_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Wbr_type + { + + [System.Xml.Serialization.XmlElementAttribute("connected_wall")] + public Guid_list_type Connected_wall { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("pt")] + public Point_type_3d Pt { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("dir")] + public Point_type_3d Dir { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("stirrup_pt")] + public Point_type_3d Stirrup_pt { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("stirrup_dir")] + public Point_type_3d Stirrup_dir { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("punching_area_wall_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Punching_area_wall_type + { + + [System.Xml.Serialization.XmlElementAttribute("base_shell")] + public Guid_list_type Base_shell { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_pos")] + public Point_type_3d Local_pos { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_x")] + public Point_type_3d Local_x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_y")] + public Point_type_3d Local_y { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("reference_points_offset")] + public Point_type_3d Reference_points_offset { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _wall_base_ray; + + [System.Xml.Serialization.XmlElementAttribute("wall_base_ray")] + public System.Collections.Generic.List Wall_base_ray + { + get + { + return _wall_base_ray; + } + set + { + _wall_base_ray = value; + } + } + + public Punching_area_wall_type() + { + this._wall_base_ray = new System.Collections.Generic.List(); + this.Region = new Region_type(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _downward = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("downward")] + public bool Downward + { + get + { + return _downward; + } + set + { + _downward = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _manual_design = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("manual_design")] + public bool Manual_design + { + get + { + return _manual_design; + } + set + { + _manual_design = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = "PU"; + + [System.ComponentModel.DefaultValueAttribute("PU")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("psh_diameter_value", Namespace="urn:strusoft")] + public enum Psh_diameter_value + { + + [System.Xml.Serialization.XmlEnumAttribute("0.025")] + Item0Period025, + + [System.Xml.Serialization.XmlEnumAttribute("0.032")] + Item0Period032, + + [System.Xml.Serialization.XmlEnumAttribute("0.040")] + Item0Period040, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("psh_data", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Psh_data + { + + [System.Xml.Serialization.XmlAttributeAttribute("diameter")] + public Psh_diameter_value Diameter { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("cd")] + public double Cd { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("n_x_dir")] + public int N_x_dir { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("n_y_dir")] + public int N_y_dir { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Psh_data() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("punching_reinforcement_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Punching_reinforcement_type + { + + [System.Xml.Serialization.XmlElementAttribute("base_shell")] + public Guid_list_type Base_shell { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("punching_area")] + public Guid_list_type Punching_area { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("bended_bar")] + public Punching_reinforcement_typeBended_bar Bended_bar { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("open_stirrups")] + public Punching_reinforcement_typeOpen_stirrups Open_stirrups { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("reinforcing_ring")] + public Punching_reinforcement_typeReinforcing_ring Reinforcing_ring { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("stud_rails")] + public Punching_reinforcement_typeStud_rails Stud_rails { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Punching_reinforcement_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Punching_reinforcement_typeBended_bar", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Punching_reinforcement_typeBended_bar + { + + [System.Xml.Serialization.XmlElementAttribute("local_center")] + public Point_type_3d Local_center { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("wire")] + public Rf_wire_type Wire { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("tip_sections_length")] + public double Tip_sections_length { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("middle_sections_length")] + public double Middle_sections_length { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("height")] + public double Height { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("angle")] + public double Angle { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("direction")] + public Direction_type Direction { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Punching_reinforcement_typeBended_bar() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Punching_reinforcement_typeOpen_stirrups", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Punching_reinforcement_typeOpen_stirrups + { + + [System.Xml.Serialization.XmlElementAttribute("wire")] + public Rf_wire_type Wire { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + public Punching_reinforcement_typeOpen_stirrups() + { + this.Region = new Region_type(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("width")] + public double Width { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("length")] + public double Length { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("height")] + public double Height { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("distance_x")] + public double Distance_x { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("distance_y")] + public double Distance_y { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Punching_reinforcement_typeReinforcing_ring", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Punching_reinforcement_typeReinforcing_ring + { + + [System.Xml.Serialization.XmlElementAttribute("auxiliary_reinforcement")] + public Punching_reinforcement_typeReinforcing_ringAuxiliary_reinforcement Auxiliary_reinforcement { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("stirrups")] + public Punching_reinforcement_typeReinforcing_ringStirrups Stirrups { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Punching_reinforcement_typeReinforcing_ringAuxiliary_reinforcement", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Punching_reinforcement_typeReinforcing_ringAuxiliary_reinforcement + { + + [System.Xml.Serialization.XmlElementAttribute("wire")] + public Rf_wire_type Wire { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("inner_radius")] + public double Inner_radius { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("overlap")] + public double Overlap { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Punching_reinforcement_typeReinforcing_ringAuxiliary_reinforcement() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Punching_reinforcement_typeReinforcing_ringStirrups", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Punching_reinforcement_typeReinforcing_ringStirrups + { + + [System.Xml.Serialization.XmlElementAttribute("wire")] + public Rf_wire_type Wire { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("width")] + public double Width { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("height")] + public double Height { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("max_distance")] + public double Max_distance { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Punching_reinforcement_typeReinforcing_ringStirrups() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Punching_reinforcement_typeStud_rails", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Punching_reinforcement_typeStud_rails + { + + [System.Xml.Serialization.XmlElementAttribute("general_product")] + public Punching_reinforcement_typeStud_railsGeneral_product General_product { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("peikko_psb_product")] + public Punching_reinforcement_typeStud_railsPeikko_psb_product Peikko_psb_product { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Studrail_patterns _pattern = StruSoft.Interop.Studrail_patterns.Semiorthogonal; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Studrail_patterns.Semiorthogonal)] + [System.Xml.Serialization.XmlAttributeAttribute("pattern")] + public Studrail_patterns Pattern + { + get + { + return _pattern; + } + set + { + _pattern = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _auto_set_s0s2 = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("auto_set_s0-s2")] + public bool Auto_set_s0s2 + { + get + { + return _auto_set_s0s2; + } + set + { + _auto_set_s0s2 = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _s0 = 0.075D; + + [System.ComponentModel.DefaultValueAttribute(0.075D)] + [System.Xml.Serialization.XmlAttributeAttribute("s0")] + public double S0 + { + get + { + return _s0; + } + set + { + _s0 = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _s1 = 0.15D; + + [System.ComponentModel.DefaultValueAttribute(0.15D)] + [System.Xml.Serialization.XmlAttributeAttribute("s1")] + public double S1 + { + get + { + return _s1; + } + set + { + _s1 = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _s2 = 0.15D; + + [System.ComponentModel.DefaultValueAttribute(0.15D)] + [System.Xml.Serialization.XmlAttributeAttribute("s2")] + public double S2 + { + get + { + return _s2; + } + set + { + _s2 = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private byte _rails_on_circle = 12; + + [System.ComponentModel.DefaultValueAttribute(12)] + [System.Xml.Serialization.XmlAttributeAttribute("rails_on_circle")] + public byte Rails_on_circle + { + get + { + return _rails_on_circle; + } + set + { + _rails_on_circle = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private byte _studs_on_rail = 3; + + [System.ComponentModel.DefaultValueAttribute(3)] + [System.Xml.Serialization.XmlAttributeAttribute("studs_on_rail")] + public byte Studs_on_rail + { + get + { + return _studs_on_rail; + } + set + { + _studs_on_rail = value; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("height")] + public double HeightValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool HeightValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Height + { + get + { + if (this.HeightValueSpecified) + { + return this.HeightValue; + } + else + { + return null; + } + } + set + { + this.HeightValue = value.GetValueOrDefault(); + this.HeightValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _use_minimal_elements = true; + + [System.ComponentModel.DefaultValueAttribute(true)] + [System.Xml.Serialization.XmlAttributeAttribute("use_minimal_elements")] + public bool Use_minimal_elements + { + get + { + return _use_minimal_elements; + } + set + { + _use_minimal_elements = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Punching_reinforcement_typeStud_rails() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Punching_reinforcement_typeStud_railsGeneral_product", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Punching_reinforcement_typeStud_railsGeneral_product + { + + [System.Xml.Serialization.XmlElementAttribute("wire")] + public Rf_wire_type Wire { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Punching_reinforcement_typeStud_railsGeneral_product() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Punching_reinforcement_typeStud_railsPeikko_psb_product", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Punching_reinforcement_typeStud_railsPeikko_psb_product + { + + [System.Xml.Serialization.XmlElementAttribute("psh")] + public Psh_data Psh { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("wire_diameter")] + public double Wire_diameter { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Punching_reinforcement_typeStud_railsPeikko_psb_product() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("srf_treatment_type", Namespace="urn:strusoft")] + public enum Srf_treatment_type + { + + [System.Xml.Serialization.XmlEnumAttribute("manual")] + Manual, + + [System.Xml.Serialization.XmlEnumAttribute("auto_base_net")] + Auto_base_net, + + [System.Xml.Serialization.XmlEnumAttribute("auto_additional")] + Auto_additional, + + [System.Xml.Serialization.XmlEnumAttribute("auto_crack_width")] + Auto_crack_width, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("surface_rf_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Surface_rf_type + { + + [System.Xml.Serialization.XmlElementAttribute("base_shell")] + public Guid_list_type Base_shell { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("surface_reinforcement_parameters")] + public Guid_list_type Surface_reinforcement_parameters { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("straight")] + public Surface_rf_typeStraight Straight { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("centric")] + public Surface_rf_typeCentric Centric { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("wire")] + public Rf_wire_type Wire { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + public Surface_rf_type() + { + this.Region = new Region_type(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _colour = "0000a0"; + + [System.ComponentModel.DefaultValueAttribute("0000a0")] + [System.Xml.Serialization.XmlAttributeAttribute("colour")] + public string Colour + { + get + { + return _colour; + } + set + { + _colour = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Srf_treatment_type _created_by = StruSoft.Interop.Srf_treatment_type.Manual; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Srf_treatment_type.Manual)] + [System.Xml.Serialization.XmlAttributeAttribute("created_by")] + public Srf_treatment_type Created_by + { + get + { + return _created_by; + } + set + { + _created_by = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Surface_rf_typeStraight", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Surface_rf_typeStraight + { + + [System.Xml.Serialization.XmlAttributeAttribute("direction")] + public Direction_type Direction { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("space")] + public double Space { get; set; } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("face")] + public Sf_rc_face FaceValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool FaceValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Face + { + get + { + if (this.FaceValueSpecified) + { + return this.FaceValue; + } + else + { + return null; + } + } + set + { + this.FaceValue = value.GetValueOrDefault(); + this.FaceValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _cover = 0.02D; + + [System.ComponentModel.DefaultValueAttribute(0.02D)] + [System.Xml.Serialization.XmlAttributeAttribute("cover")] + public double Cover + { + get + { + return _cover; + } + set + { + _cover = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Surface_rf_typeStraight() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Surface_rf_typeCentric", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Surface_rf_typeCentric + { + + [System.Xml.Serialization.XmlElementAttribute("radial")] + public Surface_rf_typeCentricRadial Radial { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("tangential")] + public Surface_rf_typeCentricTangential Tangential { get; set; } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("face")] + public Sf_rc_face FaceValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool FaceValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Face + { + get + { + if (this.FaceValueSpecified) + { + return this.FaceValue; + } + else + { + return null; + } + } + set + { + this.FaceValue = value.GetValueOrDefault(); + this.FaceValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _cover = 0.02D; + + [System.ComponentModel.DefaultValueAttribute(0.02D)] + [System.Xml.Serialization.XmlAttributeAttribute("cover")] + public double Cover + { + get + { + return _cover; + } + set + { + _cover = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Surface_rf_typeCentric() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Surface_rf_typeCentricRadial", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Surface_rf_typeCentricRadial + { + + [System.Xml.Serialization.XmlAttributeAttribute("angle")] + public double Angle { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Surface_rf_typeCentricRadial() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Surface_rf_typeCentricTangential", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Surface_rf_typeCentricTangential + { + + [System.Xml.Serialization.XmlAttributeAttribute("space")] + public double Space { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Surface_rf_typeCentricTangential() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("surface_rf_line_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Surface_rf_line_type + { + + [System.Xml.Serialization.XmlElementAttribute("start_point")] + public Point_type_3d Start_point { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("end_point")] + public Point_type_3d End_point { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("wire")] + public Rf_wire_type Wire { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("base_shell")] + public string Base_shell { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("side")] + public Sf_rc_face Side { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _right_side_wires = true; + + [System.ComponentModel.DefaultValueAttribute(true)] + [System.Xml.Serialization.XmlAttributeAttribute("right_side_wires")] + public bool Right_side_wires + { + get + { + return _right_side_wires; + } + set + { + _right_side_wires = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("pieces")] + public int Pieces { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("space")] + public double Space { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("cover")] + public double Cover { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _colour = "0000a0"; + + [System.ComponentModel.DefaultValueAttribute("0000a0")] + [System.Xml.Serialization.XmlAttributeAttribute("colour")] + public string Colour + { + get + { + return _colour; + } + set + { + _colour = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Surface_rf_line_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("surface_rf_rect_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Surface_rf_rect_type + { + + [System.Xml.Serialization.XmlElementAttribute("wire")] + public Rf_wire_type Wire { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rectangle")] + public Rectangle_type Rectangle { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("base_shell")] + public string Base_shell { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("side")] + public Sf_rc_face Side { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("pieces")] + public int Pieces { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("cover")] + public double Cover { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _colour = "0000a0"; + + [System.ComponentModel.DefaultValueAttribute("0000a0")] + [System.Xml.Serialization.XmlAttributeAttribute("colour")] + public string Colour + { + get + { + return _colour; + } + set + { + _colour = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Surface_rf_rect_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("noshear_auto_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Noshear_auto_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("connected_structure")] + public string Connected_structure { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("factor")] + public double Factor { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _inactive = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("inactive")] + public bool Inactive + { + get + { + return _inactive; + } + set + { + _inactive = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Noshear_auto_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("noshear_region_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Noshear_region_type + { + + [System.Xml.Serialization.XmlElementAttribute("automatic")] + public Noshear_auto_type Automatic { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _contour; + + [System.Xml.Serialization.XmlArrayAttribute("contour")] + [System.Xml.Serialization.XmlArrayItemAttribute("edge", Namespace="urn:strusoft")] + public System.Collections.Generic.List Contour + { + get + { + return _contour; + } + set + { + _contour = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ContourSpecified + { + get + { + return ((this.Contour != null) + && (this.Contour.Count != 0)); + } + } + + public Noshear_region_type() + { + this._contour = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("base_plate")] + public string Base_plate { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("shear_control_auto_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Shear_control_auto_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("connected_structure")] + public string Connected_structure { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Shear_control_auto_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("shear_control_region_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Shear_control_region_type + { + + [System.Xml.Serialization.XmlElementAttribute("automatic")] + public Shear_control_auto_type Automatic { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _contour; + + [System.Xml.Serialization.XmlElementAttribute("contour")] + public System.Collections.Generic.List Contour + { + get + { + return _contour; + } + set + { + _contour = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ContourSpecified + { + get + { + return ((this.Contour != null) + && (this.Contour.Count != 0)); + } + } + + public Shear_control_region_type() + { + this._contour = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("base_plate")] + public string Base_plate { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("ignore_shear_check")] + public bool Ignore_shear_check { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("x")] + public double X { get; set; } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("physical_extension")] + public double Physical_extensionValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Physical_extensionValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Physical_extension + { + get + { + if (this.Physical_extensionValueSpecified) + { + return this.Physical_extensionValue; + } + else + { + return null; + } + } + set + { + this.Physical_extensionValue = value.GetValueOrDefault(); + this.Physical_extensionValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("reduce_shear_forces")] + public bool Reduce_shear_forces { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ssrf_treatment", Namespace="urn:strusoft")] + public enum Ssrf_treatment + { + + [System.Xml.Serialization.XmlEnumAttribute("manual")] + Manual, + + [System.Xml.Serialization.XmlEnumAttribute("auto")] + Auto, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("surface_shear_rf_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Surface_shear_rf_type + { + + [System.Xml.Serialization.XmlElementAttribute("wire")] + public Rf_wire_type Wire { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + public Surface_shear_rf_type() + { + this.Region = new Region_type(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("base_shell")] + public string Base_shell { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("space_x")] + public double Space_x { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("space_y")] + public double Space_y { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _colour = "7b7bcc"; + + [System.ComponentModel.DefaultValueAttribute("7b7bcc")] + [System.Xml.Serialization.XmlAttributeAttribute("colour")] + public string Colour + { + get + { + return _colour; + } + set + { + _colour = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Ssrf_treatment _created_by = StruSoft.Interop.Ssrf_treatment.Manual; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Ssrf_treatment.Manual)] + [System.Xml.Serialization.XmlAttributeAttribute("created_by")] + public Ssrf_treatment Created_by + { + get + { + return _created_by; + } + set + { + _created_by = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("simple_rigidity_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Simple_rigidity_type + { + + [System.Xml.Serialization.XmlElementAttribute("mov")] + public Stiff_base_type Mov { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rot")] + public Stiff_base_type Rot { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plastic_limit_forces")] + public Plasticity_type Plastic_limit_forces { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plastic_limit_moments")] + public Plasticity_type Plastic_limit_moments { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("simple_spring_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Simple_spring_type + { + + [System.Xml.Serialization.XmlElementAttribute("mov_x")] + public Stiff_base_type Mov_x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rot_x")] + public Stiff_base_type Rot_x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("mov_y")] + public Stiff_base_type Mov_y { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rot_y")] + public Stiff_base_type Rot_y { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("mov_z")] + public Stiff_base_type Mov_z { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rot_z")] + public Stiff_base_type Rot_z { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Detach_type _detach = StruSoft.Interop.Detach_type.Empty; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Detach_type.Empty)] + [System.Xml.Serialization.XmlAttributeAttribute("detach")] + public Detach_type Detach + { + get + { + return _detach; + } + set + { + _detach = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Simple_spring_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("simple_rigidity_group", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Simple_rigidity_group + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _springs; + + [System.Xml.Serialization.XmlElementAttribute("springs")] + public System.Collections.Generic.List Springs + { + get + { + return _springs; + } + set + { + _springs = value; + } + } + + public Simple_rigidity_group() + { + this._springs = new System.Collections.Generic.List(); + this._plastic_limits = new System.Collections.Generic.List(); + this._plastic_limits2 = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _plastic_limits; + + [System.Xml.Serialization.XmlElementAttribute("plastic_limits")] + public System.Collections.Generic.List Plastic_limits + { + get + { + return _plastic_limits; + } + set + { + _plastic_limits = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _plastic_limits2; + + [System.Xml.Serialization.XmlElementAttribute("plastic_limits2")] + public System.Collections.Generic.List Plastic_limits2 + { + get + { + return _plastic_limits2; + } + set + { + _plastic_limits2 = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("type")] + public Motion_type Type { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("motion_type", Namespace="urn:strusoft")] + public enum Motion_type + { + + [System.Xml.Serialization.XmlEnumAttribute("motion")] + Motion, + + [System.Xml.Serialization.XmlEnumAttribute("rotation")] + Rotation, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("support_rigidity_data_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Line_support_type))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Point_support_type))] + public partial class Support_rigidity_data_type + { + + [System.Xml.Serialization.XmlElementAttribute("directed")] + public Support_rigidity_data_typeDirected Directed { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("group")] + public Support_rigidity_data_typeGroup Group { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Support_rigidity_data_typeDirected", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Support_rigidity_data_typeDirected + { + + [System.Xml.Serialization.XmlElementAttribute("direction")] + public Point_type_3d Direction { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("mov")] + public Stiff_base_type Mov { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rot")] + public Stiff_base_type Rot { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plastic_limit_forces")] + public Plasticity_type Plastic_limit_forces { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plastic_limit_moments")] + public Plasticity_type Plastic_limit_moments { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rigidity_group")] + public Simple_rigidity_group Rigidity_group { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Support_rigidity_data_typeGroup", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Support_rigidity_data_typeGroup + { + + [System.Xml.Serialization.XmlElementAttribute("local_x")] + public Point_type_3d Local_x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_y")] + public Point_type_3d Local_y { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("mov_x")] + public Stiff_base_type Mov_x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rot_x")] + public Stiff_base_type Rot_x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("mov_y")] + public Stiff_base_type Mov_y { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rot_y")] + public Stiff_base_type Rot_y { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("mov_z")] + public Stiff_base_type Mov_z { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rot_z")] + public Stiff_base_type Rot_z { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plastic_limit_forces")] + public Plasticity_type_3d Plastic_limit_forces { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plastic_limit_moments")] + public Plasticity_type_3d Plastic_limit_moments { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rigidity")] + public Rigidity_data_type2 Rigidity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("predefined_rigidity")] + public Reference_type Predefined_rigidity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rigidity_group")] + public Rigidity_group_type2 Rigidity_group { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Detach_type _detach = StruSoft.Interop.Detach_type.Empty; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Detach_type.Empty)] + [System.Xml.Serialization.XmlAttributeAttribute("detach")] + public Detach_type Detach + { + get + { + return _detach; + } + set + { + _detach = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Support_rigidity_data_typeGroup() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("point_support_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Point_support_type : Support_rigidity_data_type + { + + [System.Xml.Serialization.XmlElementAttribute("position")] + public Point_type_3d Position { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = "S"; + + [System.ComponentModel.DefaultValueAttribute("S")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("line_support_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Line_support_type : Support_rigidity_data_type + { + + [System.Xml.Serialization.XmlElementAttribute("edge")] + public Edge_type Edge { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("normal")] + public Point_type_3d Normal { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = "S"; + + [System.ComponentModel.DefaultValueAttribute("S")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _moving_local = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("moving_local")] + public bool Moving_local + { + get + { + return _moving_local; + } + set + { + _moving_local = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("surface_support_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Surface_support_type + { + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + public Surface_support_type() + { + this.Region = new Region_type(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("mov_x")] + public Stiff_base_type Mov_x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("mov_y")] + public Stiff_base_type Mov_y { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("mov_z")] + public Stiff_base_type Mov_z { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plastic_limit_forces")] + public Plasticity_type_3d Plastic_limit_forces { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rigidity")] + public Rigidity_data_type1 Rigidity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("predefined_rigidity")] + public Reference_type Predefined_rigidity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rigidity_group")] + public Rigidity_group_type1 Rigidity_group { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_system")] + public Opt_localsys_type Local_system { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = "S"; + + [System.ComponentModel.DefaultValueAttribute("S")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Detach_type _detach = StruSoft.Interop.Detach_type.Empty; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Detach_type.Empty)] + [System.Xml.Serialization.XmlAttributeAttribute("detach")] + public Detach_type Detach + { + get + { + return _detach; + } + set + { + _detach = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("stiffness_point_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Stiffness_point_type + { + + [System.Xml.Serialization.XmlElementAttribute("rigidity")] + public Rigidity_data_type0 Rigidity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rigidity_group")] + public Rigidity_group_type0 Rigidity_group { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("surface_support")] + public string Surface_support { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("x")] + public double X { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("y")] + public double Y { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("z")] + public double Z { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Stiffness_point_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ptc_jacking_side", Namespace="urn:strusoft")] + public enum Ptc_jacking_side + { + + [System.Xml.Serialization.XmlEnumAttribute("start")] + Start, + + [System.Xml.Serialization.XmlEnumAttribute("end")] + End, + + [System.Xml.Serialization.XmlEnumAttribute("start_then_end")] + Start_then_end, + + [System.Xml.Serialization.XmlEnumAttribute("end_then_start")] + End_then_start, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ptc_strand_lib_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ptc_strand_lib_type + { + + [System.Xml.Serialization.XmlElementAttribute("ptc_strand_data")] + public Ptc_strand_lib_typePtc_strand_data Ptc_strand_data { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Ptc_strand_lib_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Ptc_strand_lib_typePtc_strand_data", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ptc_strand_lib_typePtc_strand_data + { + + [System.Xml.Serialization.XmlAttributeAttribute("f_pk")] + public double F_pk { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("A_p")] + public double A_p { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("E_p")] + public double E_p { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("density")] + public double Density { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("relaxation_class")] + public int Relaxation_class { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Rho_1000")] + public double Rho_1000 { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Ptc_strand_lib_typePtc_strand_data() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ptc_losses", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ptc_losses + { + + [System.Xml.Serialization.XmlAttributeAttribute("curvature_coefficient")] + public double Curvature_coefficient { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("wobble_coefficient")] + public double Wobble_coefficient { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("anchorage_set_slip")] + public double Anchorage_set_slip { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("elastic_shortening")] + public double Elastic_shortening { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("creep_stress")] + public double Creep_stress { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("shrinkage_stress")] + public double Shrinkage_stress { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("relaxation_stress")] + public double Relaxation_stress { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Ptc_losses() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ptc_shape_start", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ptc_shape_start + { + + [System.Xml.Serialization.XmlAttributeAttribute("z")] + public double Z { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("tangent")] + public double Tangent { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Ptc_shape_start() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ptc_shape_inner", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ptc_shape_inner + { + + [System.Xml.Serialization.XmlAttributeAttribute("pos")] + public double Pos { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("z")] + public double Z { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("tangent")] + public double Tangent { get; set; } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("prior_inflection_pos")] + public double Prior_inflection_posValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Prior_inflection_posValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Prior_inflection_pos + { + get + { + if (this.Prior_inflection_posValueSpecified) + { + return this.Prior_inflection_posValue; + } + else + { + return null; + } + } + set + { + this.Prior_inflection_posValue = value.GetValueOrDefault(); + this.Prior_inflection_posValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Ptc_shape_inner() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ptc_shape_end", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ptc_shape_end + { + + [System.Xml.Serialization.XmlAttributeAttribute("z")] + public double Z { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("tangent")] + public double Tangent { get; set; } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("prior_inflection_pos")] + public double Prior_inflection_posValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Prior_inflection_posValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Prior_inflection_pos + { + get + { + if (this.Prior_inflection_posValueSpecified) + { + return this.Prior_inflection_posValue; + } + else + { + return null; + } + } + set + { + this.Prior_inflection_posValue = value.GetValueOrDefault(); + this.Prior_inflection_posValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Ptc_shape_end() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ptc_shape_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ptc_shape_type + { + + [System.Xml.Serialization.XmlElementAttribute("start_point")] + public Ptc_shape_start Start_point { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _intermediate_point; + + [System.Xml.Serialization.XmlElementAttribute("intermediate_point")] + public System.Collections.Generic.List Intermediate_point + { + get + { + return _intermediate_point; + } + set + { + _intermediate_point = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Intermediate_pointSpecified + { + get + { + return ((this.Intermediate_point != null) + && (this.Intermediate_point.Count != 0)); + } + } + + public Ptc_shape_type() + { + this._intermediate_point = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("end_point")] + public Ptc_shape_end End_point { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("top")] + public double Top { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("bottom")] + public double Bottom { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ptc_manufacturing_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ptc_manufacturing_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _positions; + + [System.Xml.Serialization.XmlElementAttribute("positions")] + public System.Collections.Generic.List Positions + { + get + { + return _positions; + } + set + { + _positions = value; + } + } + + public Ptc_manufacturing_type() + { + this._positions = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("shift_x")] + public double Shift_x { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("shift_z")] + public double Shift_z { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ptc_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ptc_type + { + + [System.Xml.Serialization.XmlElementAttribute("start_point")] + public Point_type_3d Start_point { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("end_point")] + public Point_type_3d End_point { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_z")] + public Point_type_3d Local_z { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("losses")] + public Ptc_losses Losses { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("shape_base_points")] + public Ptc_shape_type Shape_base_points { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("manufacturing")] + public Ptc_manufacturing_type Manufacturing { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("base_object")] + public string Base_object { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = "PTC"; + + [System.ComponentModel.DefaultValueAttribute("PTC")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("strand_type")] + public string Strand_type { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("number_of_strands")] + public int Number_of_strands { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("jacking_side")] + public Ptc_jacking_side Jacking_side { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("jacking_stress")] + public double Jacking_stress { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Ptc_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("load_dir_type", Namespace="urn:strusoft")] + public enum Load_dir_type + { + + [System.Xml.Serialization.XmlEnumAttribute("constant")] + Constant, + + [System.Xml.Serialization.XmlEnumAttribute("changing")] + Changing, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("auto_force_sign_type", Namespace="urn:strusoft")] + public enum Auto_force_sign_type + { + + [System.Xml.Serialization.XmlEnumAttribute("plus")] + Plus, + + [System.Xml.Serialization.XmlEnumAttribute("minus")] + Minus, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("auto_force_type_type", Namespace="urn:strusoft")] + public enum Auto_force_type_type + { + + [System.Xml.Serialization.XmlEnumAttribute("snow")] + Snow, + + [System.Xml.Serialization.XmlEnumAttribute("wind")] + Wind, + + [System.Xml.Serialization.XmlEnumAttribute("deviation")] + Deviation, + + [System.Xml.Serialization.XmlEnumAttribute("notional")] + Notional, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("force_load_type", Namespace="urn:strusoft")] + public enum Force_load_type + { + + [System.Xml.Serialization.XmlEnumAttribute("force")] + Force, + + [System.Xml.Serialization.XmlEnumAttribute("moment")] + Moment, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("loadcombtype", Namespace="urn:strusoft")] + public enum Loadcombtype + { + + [System.Xml.Serialization.XmlEnumAttribute("ultimate_ordinary")] + Ultimate_ordinary, + + [System.Xml.Serialization.XmlEnumAttribute("ultimate_accidental")] + Ultimate_accidental, + + [System.Xml.Serialization.XmlEnumAttribute("ultimate_seismic")] + Ultimate_seismic, + + [System.Xml.Serialization.XmlEnumAttribute("serviceability_characteristic")] + Serviceability_characteristic, + + [System.Xml.Serialization.XmlEnumAttribute("serviceability_quasi_permanent")] + Serviceability_quasi_permanent, + + [System.Xml.Serialization.XmlEnumAttribute("serviceability_frequent")] + Serviceability_frequent, + + [System.Xml.Serialization.XmlEnumAttribute("serviceability")] + Serviceability, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("lc_ptc_type", Namespace="urn:strusoft")] + public enum Lc_ptc_type + { + + [System.Xml.Serialization.XmlEnumAttribute("ptc_t0")] + Ptc_t0, + + [System.Xml.Serialization.XmlEnumAttribute("ptc_t8")] + Ptc_t8, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("lc_pile_type", Namespace="urn:strusoft")] + public enum Lc_pile_type + { + + [System.Xml.Serialization.XmlEnumAttribute("ldcase_pile")] + Ldcase_pile, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("lc_final_cs", Namespace="urn:strusoft")] + public enum Lc_final_cs + { + + [System.Xml.Serialization.XmlEnumAttribute("final_cs")] + Final_cs, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("caseless_point_load_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Point_load_type))] + public partial class Caseless_point_load_type + { + + [System.Xml.Serialization.XmlElementAttribute("direction")] + public Point_type_3d Direction { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("load")] + public Location_value Load { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("load_type")] + public Force_load_type Load_type { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _apply_on_ecc = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("apply_on_ecc")] + public bool Apply_on_ecc + { + get + { + return _apply_on_ecc; + } + set + { + _apply_on_ecc = value; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("auto_force_dir")] + public Direction_type Auto_force_dirValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Auto_force_dirValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Auto_force_dir + { + get + { + if (this.Auto_force_dirValueSpecified) + { + return this.Auto_force_dirValue; + } + else + { + return null; + } + } + set + { + this.Auto_force_dirValue = value.GetValueOrDefault(); + this.Auto_force_dirValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("auto_force_sign")] + public Auto_force_sign_type Auto_force_signValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Auto_force_signValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Auto_force_sign + { + get + { + if (this.Auto_force_signValueSpecified) + { + return this.Auto_force_signValue; + } + else + { + return null; + } + } + set + { + this.Auto_force_signValue = value.GetValueOrDefault(); + this.Auto_force_signValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("auto_force_type")] + public Auto_force_type_type Auto_force_typeValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Auto_force_typeValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Auto_force_type + { + get + { + if (this.Auto_force_typeValueSpecified) + { + return this.Auto_force_typeValue; + } + else + { + return null; + } + } + set + { + this.Auto_force_typeValue = value.GetValueOrDefault(); + this.Auto_force_typeValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("assigned_structure")] + public string Assigned_structure { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _comment = ""; + + [System.ComponentModel.DefaultValueAttribute("")] + [System.Xml.Serialization.XmlAttributeAttribute("comment")] + public string Comment + { + get + { + return _comment; + } + set + { + _comment = value; + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("point_load_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Point_load_type : Caseless_point_load_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("load_case")] + public string Load_case { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("point_support_load_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Point_support_load_type + { + + [System.Xml.Serialization.XmlElementAttribute("direction")] + public Point_type_3d Direction { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("displacement")] + public Location_value Displacement { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("load_case")] + public string Load_case { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _comment = ""; + + [System.ComponentModel.DefaultValueAttribute("")] + [System.Xml.Serialization.XmlAttributeAttribute("comment")] + public string Comment + { + get + { + return _comment; + } + set + { + _comment = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("load_type")] + public Motion_type Load_type { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Point_support_load_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("caseless_line_load_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Caseless_line_load_type + { + + [System.Xml.Serialization.XmlElementAttribute("edge")] + public Edge_type Edge { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("direction")] + public Point_type_3d Direction { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("normal")] + public Point_type_3d Normal { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _load; + + [System.Xml.Serialization.XmlElementAttribute("load")] + public System.Collections.Generic.List Load + { + get + { + return _load; + } + set + { + _load = value; + } + } + + public Caseless_line_load_type() + { + this._load = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("load_type")] + public Force_load_type Load_type { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _apply_on_ecc = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("apply_on_ecc")] + public bool Apply_on_ecc + { + get + { + return _apply_on_ecc; + } + set + { + _apply_on_ecc = value; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("auto_force_dir")] + public Direction_type Auto_force_dirValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Auto_force_dirValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Auto_force_dir + { + get + { + if (this.Auto_force_dirValueSpecified) + { + return this.Auto_force_dirValue; + } + else + { + return null; + } + } + set + { + this.Auto_force_dirValue = value.GetValueOrDefault(); + this.Auto_force_dirValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("auto_force_sign")] + public Auto_force_sign_type Auto_force_signValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Auto_force_signValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Auto_force_sign + { + get + { + if (this.Auto_force_signValueSpecified) + { + return this.Auto_force_signValue; + } + else + { + return null; + } + } + set + { + this.Auto_force_signValue = value.GetValueOrDefault(); + this.Auto_force_signValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("auto_force_type")] + public Auto_force_type_type Auto_force_typeValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Auto_force_typeValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Auto_force_type + { + get + { + if (this.Auto_force_typeValueSpecified) + { + return this.Auto_force_typeValue; + } + else + { + return null; + } + } + set + { + this.Auto_force_typeValue = value.GetValueOrDefault(); + this.Auto_force_typeValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("assigned_structure")] + public string Assigned_structure { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _comment = ""; + + [System.ComponentModel.DefaultValueAttribute("")] + [System.Xml.Serialization.XmlAttributeAttribute("comment")] + public string Comment + { + get + { + return _comment; + } + set + { + _comment = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("load_dir")] + public Load_dir_type Load_dir { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("load_projection")] + public bool Load_projection { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("resultant_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Resultant_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("val")] + public double Val { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Resultant_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("caseless_line_load_resultant_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Line_load_type))] + public partial class Caseless_line_load_resultant_type + { + + [System.Xml.Serialization.XmlElementAttribute("edge")] + public Edge_type Edge { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("direction")] + public Point_type_3d Direction { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("normal")] + public Point_type_3d Normal { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _load; + + [System.Xml.Serialization.XmlElementAttribute("load")] + public System.Collections.Generic.List Load + { + get + { + return _load; + } + set + { + _load = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool LoadSpecified + { + get + { + return ((this.Load != null) + && (this.Load.Count != 0)); + } + } + + public Caseless_line_load_resultant_type() + { + this._load = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("resultant")] + public Resultant_type Resultant { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("load_type")] + public Force_load_type Load_type { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _apply_on_ecc = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("apply_on_ecc")] + public bool Apply_on_ecc + { + get + { + return _apply_on_ecc; + } + set + { + _apply_on_ecc = value; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("auto_force_dir")] + public Direction_type Auto_force_dirValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Auto_force_dirValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Auto_force_dir + { + get + { + if (this.Auto_force_dirValueSpecified) + { + return this.Auto_force_dirValue; + } + else + { + return null; + } + } + set + { + this.Auto_force_dirValue = value.GetValueOrDefault(); + this.Auto_force_dirValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("auto_force_sign")] + public Auto_force_sign_type Auto_force_signValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Auto_force_signValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Auto_force_sign + { + get + { + if (this.Auto_force_signValueSpecified) + { + return this.Auto_force_signValue; + } + else + { + return null; + } + } + set + { + this.Auto_force_signValue = value.GetValueOrDefault(); + this.Auto_force_signValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("auto_force_type")] + public Auto_force_type_type Auto_force_typeValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Auto_force_typeValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Auto_force_type + { + get + { + if (this.Auto_force_typeValueSpecified) + { + return this.Auto_force_typeValue; + } + else + { + return null; + } + } + set + { + this.Auto_force_typeValue = value.GetValueOrDefault(); + this.Auto_force_typeValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("assigned_structure")] + public string Assigned_structure { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _comment = ""; + + [System.ComponentModel.DefaultValueAttribute("")] + [System.Xml.Serialization.XmlAttributeAttribute("comment")] + public string Comment + { + get + { + return _comment; + } + set + { + _comment = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("load_dir")] + public Load_dir_type Load_dir { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("load_projection")] + public bool Load_projection { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("line_load_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Line_load_type : Caseless_line_load_resultant_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("load_case")] + public string Load_case { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("line_support_load_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Line_support_load_type + { + + [System.Xml.Serialization.XmlElementAttribute("edge")] + public Edge_type Edge { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("direction")] + public Point_type_3d Direction { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("normal")] + public Point_type_3d Normal { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _displacement; + + [System.Xml.Serialization.XmlElementAttribute("displacement")] + public System.Collections.Generic.List Displacement + { + get + { + return _displacement; + } + set + { + _displacement = value; + } + } + + public Line_support_load_type() + { + this._displacement = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("load_case")] + public string Load_case { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _comment = ""; + + [System.ComponentModel.DefaultValueAttribute("")] + [System.Xml.Serialization.XmlAttributeAttribute("comment")] + public string Comment + { + get + { + return _comment; + } + set + { + _comment = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("load_type")] + public Motion_type Load_type { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("load_dir")] + public Load_dir_type Load_dir { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("pressure_load_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Pressure_load_type + { + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + public Pressure_load_type() + { + this.Region = new Region_type(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("direction")] + public Point_type_3d Direction { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("load_case")] + public string Load_case { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _comment = ""; + + [System.ComponentModel.DefaultValueAttribute("")] + [System.Xml.Serialization.XmlAttributeAttribute("comment")] + public string Comment + { + get + { + return _comment; + } + set + { + _comment = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("load_type")] + public Force_load_type Load_type { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _apply_on_ecc = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("apply_on_ecc")] + public bool Apply_on_ecc + { + get + { + return _apply_on_ecc; + } + set + { + _apply_on_ecc = value; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("auto_force_dir")] + public Direction_type Auto_force_dirValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Auto_force_dirValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Auto_force_dir + { + get + { + if (this.Auto_force_dirValueSpecified) + { + return this.Auto_force_dirValue; + } + else + { + return null; + } + } + set + { + this.Auto_force_dirValue = value.GetValueOrDefault(); + this.Auto_force_dirValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("auto_force_sign")] + public Auto_force_sign_type Auto_force_signValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Auto_force_signValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Auto_force_sign + { + get + { + if (this.Auto_force_signValueSpecified) + { + return this.Auto_force_signValue; + } + else + { + return null; + } + } + set + { + this.Auto_force_signValue = value.GetValueOrDefault(); + this.Auto_force_signValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("auto_force_type")] + public Auto_force_type_type Auto_force_typeValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Auto_force_typeValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Auto_force_type + { + get + { + if (this.Auto_force_typeValueSpecified) + { + return this.Auto_force_typeValue; + } + else + { + return null; + } + } + set + { + this.Auto_force_typeValue = value.GetValueOrDefault(); + this.Auto_force_typeValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("assigned_structure")] + public string Assigned_structure { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("load_projection")] + public bool Load_projection { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("z0")] + public double Z0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("q0")] + public double Q0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("qh")] + public double Qh { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("caseless_surface_load_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Caseless_surface_load_type + { + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + public Caseless_surface_load_type() + { + this.Region = new Region_type(); + this._load = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("direction")] + public Point_type_3d Direction { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _load; + + [System.Xml.Serialization.XmlElementAttribute("load")] + public System.Collections.Generic.List Load + { + get + { + return _load; + } + set + { + _load = value; + } + } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("load_type")] + public Force_load_type Load_type { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _apply_on_ecc = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("apply_on_ecc")] + public bool Apply_on_ecc + { + get + { + return _apply_on_ecc; + } + set + { + _apply_on_ecc = value; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("auto_force_dir")] + public Direction_type Auto_force_dirValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Auto_force_dirValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Auto_force_dir + { + get + { + if (this.Auto_force_dirValueSpecified) + { + return this.Auto_force_dirValue; + } + else + { + return null; + } + } + set + { + this.Auto_force_dirValue = value.GetValueOrDefault(); + this.Auto_force_dirValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("auto_force_sign")] + public Auto_force_sign_type Auto_force_signValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Auto_force_signValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Auto_force_sign + { + get + { + if (this.Auto_force_signValueSpecified) + { + return this.Auto_force_signValue; + } + else + { + return null; + } + } + set + { + this.Auto_force_signValue = value.GetValueOrDefault(); + this.Auto_force_signValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("auto_force_type")] + public Auto_force_type_type Auto_force_typeValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Auto_force_typeValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Auto_force_type + { + get + { + if (this.Auto_force_typeValueSpecified) + { + return this.Auto_force_typeValue; + } + else + { + return null; + } + } + set + { + this.Auto_force_typeValue = value.GetValueOrDefault(); + this.Auto_force_typeValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("assigned_structure")] + public string Assigned_structure { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _comment = ""; + + [System.ComponentModel.DefaultValueAttribute("")] + [System.Xml.Serialization.XmlAttributeAttribute("comment")] + public string Comment + { + get + { + return _comment; + } + set + { + _comment = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("load_projection")] + public bool Load_projection { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("caseless_surface_load_resultant_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(Surface_load_type))] + public partial class Caseless_surface_load_resultant_type + { + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + public Caseless_surface_load_resultant_type() + { + this.Region = new Region_type(); + this._load = new System.Collections.Generic.List(); + this._resultant = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("direction")] + public Point_type_3d Direction { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _load; + + [System.Xml.Serialization.XmlElementAttribute("load")] + public System.Collections.Generic.List Load + { + get + { + return _load; + } + set + { + _load = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool LoadSpecified + { + get + { + return ((this.Load != null) + && (this.Load.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _resultant; + + [System.Xml.Serialization.XmlElementAttribute("resultant")] + public System.Collections.Generic.List Resultant + { + get + { + return _resultant; + } + set + { + _resultant = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ResultantSpecified + { + get + { + return ((this.Resultant != null) + && (this.Resultant.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("load_type")] + public Force_load_type Load_type { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _apply_on_ecc = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("apply_on_ecc")] + public bool Apply_on_ecc + { + get + { + return _apply_on_ecc; + } + set + { + _apply_on_ecc = value; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("auto_force_dir")] + public Direction_type Auto_force_dirValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Auto_force_dirValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Auto_force_dir + { + get + { + if (this.Auto_force_dirValueSpecified) + { + return this.Auto_force_dirValue; + } + else + { + return null; + } + } + set + { + this.Auto_force_dirValue = value.GetValueOrDefault(); + this.Auto_force_dirValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("auto_force_sign")] + public Auto_force_sign_type Auto_force_signValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Auto_force_signValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Auto_force_sign + { + get + { + if (this.Auto_force_signValueSpecified) + { + return this.Auto_force_signValue; + } + else + { + return null; + } + } + set + { + this.Auto_force_signValue = value.GetValueOrDefault(); + this.Auto_force_signValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("auto_force_type")] + public Auto_force_type_type Auto_force_typeValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Auto_force_typeValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Auto_force_type + { + get + { + if (this.Auto_force_typeValueSpecified) + { + return this.Auto_force_typeValue; + } + else + { + return null; + } + } + set + { + this.Auto_force_typeValue = value.GetValueOrDefault(); + this.Auto_force_typeValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("assigned_structure")] + public string Assigned_structure { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _comment = ""; + + [System.ComponentModel.DefaultValueAttribute("")] + [System.Xml.Serialization.XmlAttributeAttribute("comment")] + public string Comment + { + get + { + return _comment; + } + set + { + _comment = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("load_projection")] + public bool Load_projection { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("surface_load_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Surface_load_type : Caseless_surface_load_resultant_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("load_case")] + public string Load_case { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("surface_support_load_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Surface_support_load_type + { + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + public Surface_support_load_type() + { + this.Region = new Region_type(); + this._displacement = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("direction")] + public Point_type_3d Direction { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _displacement; + + [System.Xml.Serialization.XmlElementAttribute("displacement")] + public System.Collections.Generic.List Displacement + { + get + { + return _displacement; + } + set + { + _displacement = value; + } + } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("load_type")] + public Motion_type Load_type { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("load_case")] + public string Load_case { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _comment = ""; + + [System.ComponentModel.DefaultValueAttribute("")] + [System.Xml.Serialization.XmlAttributeAttribute("comment")] + public string Comment + { + get + { + return _comment; + } + set + { + _comment = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("surface_temperature_load_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Surface_temperature_load_type + { + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + public Surface_temperature_load_type() + { + this.Region = new Region_type(); + this._temperature = new System.Collections.Generic.List(); + this._temperature_values = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _temperature; + + [System.Xml.Serialization.XmlElementAttribute("temperature")] + public System.Collections.Generic.List Temperature + { + get + { + return _temperature; + } + set + { + _temperature = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TemperatureSpecified + { + get + { + return ((this.Temperature != null) + && (this.Temperature.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _temperature_values; + + [System.Xml.Serialization.XmlElementAttribute("temperature_values")] + public System.Collections.Generic.List Temperature_values + { + get + { + return _temperature_values; + } + set + { + _temperature_values = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Temperature_valuesSpecified + { + get + { + return ((this.Temperature_values != null) + && (this.Temperature_values.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("load_case")] + public string Load_case { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _comment = ""; + + [System.ComponentModel.DefaultValueAttribute("")] + [System.Xml.Serialization.XmlAttributeAttribute("comment")] + public string Comment + { + get + { + return _comment; + } + set + { + _comment = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("surface_stress_load_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Surface_stress_load_type + { + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + public Surface_stress_load_type() + { + this.Region = new Region_type(); + this._stress = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _stress; + + [System.Xml.Serialization.XmlElementAttribute("stress")] + public System.Collections.Generic.List Stress + { + get + { + return _stress; + } + set + { + _stress = value; + } + } + + [System.Xml.Serialization.XmlElementAttribute("direction")] + public Point_type_3d Direction { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("load_case")] + public string Load_case { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _comment = ""; + + [System.ComponentModel.DefaultValueAttribute("")] + [System.Xml.Serialization.XmlAttributeAttribute("comment")] + public string Comment + { + get + { + return _comment; + } + set + { + _comment = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("line_temperature_load_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Line_temperature_load_type + { + + [System.Xml.Serialization.XmlElementAttribute("edge")] + public Edge_type Edge { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("direction")] + public Point_type_3d Direction { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("normal")] + public Point_type_3d Normal { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _temperature; + + [System.Xml.Serialization.XmlElementAttribute("temperature")] + public System.Collections.Generic.List Temperature + { + get + { + return _temperature; + } + set + { + _temperature = value; + } + } + + public Line_temperature_load_type() + { + this._temperature = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("load_case")] + public string Load_case { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _comment = ""; + + [System.ComponentModel.DefaultValueAttribute("")] + [System.Xml.Serialization.XmlAttributeAttribute("comment")] + public string Comment + { + get + { + return _comment; + } + set + { + _comment = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("line_stress_load_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Line_stress_load_type + { + + [System.Xml.Serialization.XmlElementAttribute("edge")] + public Edge_type Edge { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("direction")] + public Point_type_3d Direction { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("normal")] + public Point_type_3d Normal { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _stress; + + [System.Xml.Serialization.XmlElementAttribute("stress")] + public System.Collections.Generic.List Stress + { + get + { + return _stress; + } + set + { + _stress = value; + } + } + + public Line_stress_load_type() + { + this._stress = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("load_case")] + public string Load_case { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _comment = ""; + + [System.ComponentModel.DefaultValueAttribute("")] + [System.Xml.Serialization.XmlAttributeAttribute("comment")] + public string Comment + { + get + { + return _comment; + } + set + { + _comment = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("mass_point_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Mass_point_type + { + + [System.Xml.Serialization.XmlElementAttribute("position")] + public Point_type_3d Position { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("value")] + public double ValueValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool ValueValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Value + { + get + { + if (this.ValueValueSpecified) + { + return this.ValueValue; + } + else + { + return null; + } + } + set + { + this.ValueValue = value.GetValueOrDefault(); + this.ValueValueSpecified = value.HasValue; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("apply_on_ecc")] + public bool Apply_on_eccValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool Apply_on_eccValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable Apply_on_ecc + { + get + { + if (this.Apply_on_eccValueSpecified) + { + return this.Apply_on_eccValue; + } + else + { + return null; + } + } + set + { + this.Apply_on_eccValue = value.GetValueOrDefault(); + this.Apply_on_eccValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _comment = ""; + + [System.ComponentModel.DefaultValueAttribute("")] + [System.Xml.Serialization.XmlAttributeAttribute("comment")] + public string Comment + { + get + { + return _comment; + } + set + { + _comment = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Mass_point_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("mass_conversion_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Mass_conversion_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _conversion; + + [System.Xml.Serialization.XmlElementAttribute("conversion")] + public System.Collections.Generic.List Conversion + { + get + { + return _conversion; + } + set + { + _conversion = value; + } + } + + public Mass_conversion_type() + { + this._conversion = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Mass_conversion_typeConversion", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Mass_conversion_typeConversion + { + + [System.Xml.Serialization.XmlAttributeAttribute("factor")] + public double Factor { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("load_case")] + public string Load_case { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Mass_conversion_typeConversion() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("footfall_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Footfall_type + { + + [System.Xml.Serialization.XmlElementAttribute("position")] + public Point_type_3d Position { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _contour; + + [System.Xml.Serialization.XmlArrayAttribute("contour")] + [System.Xml.Serialization.XmlArrayItemAttribute("edge", Namespace="urn:strusoft")] + public System.Collections.Generic.List Contour + { + get + { + return _contour; + } + set + { + _contour = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ContourSpecified + { + get + { + return ((this.Contour != null) + && (this.Contour.Count != 0)); + } + } + + public Footfall_type() + { + this._contour = new System.Collections.Generic.List(); + this.Region = new Region_type(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RegionSpecified + { + get + { + return ((this.Region != null) + && (this.Region.Contour.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _comment = ""; + + [System.ComponentModel.DefaultValueAttribute("")] + [System.Xml.Serialization.XmlAttributeAttribute("comment")] + public string Comment + { + get + { + return _comment; + } + set + { + _comment = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("seismic_ground_type", Namespace="urn:strusoft")] + public enum Seismic_ground_type + { + + A, + + B, + + C, + + D, + + E, + + [System.Xml.Serialization.XmlEnumAttribute("S1/S2_6-20m")] + S1S2_620m, + + [System.Xml.Serialization.XmlEnumAttribute("S1/S2_20-35mA")] + S1S2_2035mA, + + [System.Xml.Serialization.XmlEnumAttribute("S1/S2_35-60mA")] + S1S2_3560mA, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ec40_tc_type", Namespace="urn:strusoft")] + public enum Ec40_tc_type + { + + [System.Xml.Serialization.XmlEnumAttribute("0.7")] + Item0Period7, + + [System.Xml.Serialization.XmlEnumAttribute("1.0")] + Item1Period0, + + [System.Xml.Serialization.XmlEnumAttribute("1.6")] + Item1Period6, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("standard_spectra_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Standard_spectra_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("ag")] + public double Ag { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("TD")] + public double TD { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("q")] + public double Q { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("type")] + public int Type { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("S")] + public double S { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("TB")] + public double TB { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("TC")] + public double TC { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("beta")] + public double Beta { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Standard_spectra_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ec040_standard_spectra_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ec040_standard_spectra_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("ag")] + public double Ag { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("TD")] + public double TD { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("q")] + public double Q { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("TC")] + public Ec40_tc_type TC { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Ec040_standard_spectra_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("spectra_record_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Spectra_record_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("T")] + public double T { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Sd")] + public double Sd { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Spectra_record_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("unique_spectra_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Unique_spectra_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _record; + + [System.Xml.Serialization.XmlElementAttribute("record")] + public System.Collections.Generic.List Record + { + get + { + return _record; + } + set + { + _record = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RecordSpecified + { + get + { + return ((this.Record != null) + && (this.Record.Count != 0)); + } + } + + public Unique_spectra_type() + { + this._record = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("start_Sd")] + public double Start_Sd { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("seismic_load_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Seismic_load_type + { + + [System.Xml.Serialization.XmlElementAttribute("common_standard_spectra")] + public Seismic_load_typeCommon_standard_spectra Common_standard_spectra { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("ec040_standard_spectra")] + public Seismic_load_typeEc040_standard_spectra Ec040_standard_spectra { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("unique_spectra")] + public Seismic_load_typeUnique_spectra Unique_spectra { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("xi")] + public double Xi { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("qd")] + public double Qd { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _building_structure = true; + + [System.ComponentModel.DefaultValueAttribute(true)] + [System.Xml.Serialization.XmlAttributeAttribute("building_structure")] + public bool Building_structure + { + get + { + return _building_structure; + } + set + { + _building_structure = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _gamma_Ie = 1D; + + [System.ComponentModel.DefaultValueAttribute(1D)] + [System.Xml.Serialization.XmlAttributeAttribute("Gamma_Ie")] + public double Gamma_Ie + { + get + { + return _gamma_Ie; + } + set + { + _gamma_Ie = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Seismic_load_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Seismic_load_typeCommon_standard_spectra", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Seismic_load_typeCommon_standard_spectra + { + + [System.Xml.Serialization.XmlElementAttribute("horizontal")] + public Standard_spectra_type Horizontal { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("vertical")] + public Standard_spectra_type Vertical { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Seismic_ground_type _ground = StruSoft.Interop.Seismic_ground_type.A; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Seismic_ground_type.A)] + [System.Xml.Serialization.XmlAttributeAttribute("ground")] + public Seismic_ground_type Ground + { + get + { + return _ground; + } + set + { + _ground = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Seismic_load_typeCommon_standard_spectra() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Seismic_load_typeEc040_standard_spectra", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Seismic_load_typeEc040_standard_spectra + { + + [System.Xml.Serialization.XmlElementAttribute("horizontal")] + public Ec040_standard_spectra_type Horizontal { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Seismic_load_typeUnique_spectra", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Seismic_load_typeUnique_spectra + { + + [System.Xml.Serialization.XmlElementAttribute("horizontal")] + public Unique_spectra_type Horizontal { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("vertical")] + public Unique_spectra_type Vertical { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("th_diagram_record", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Th_diagram_record + { + + [System.Xml.Serialization.XmlAttributeAttribute("T")] + public double T { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("value")] + public double Value { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Th_diagram_record() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ga_direction_record", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ga_direction_record + { + + [System.Xml.Serialization.XmlAttributeAttribute("factor")] + public double Factor { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("diagram")] + public string Diagram { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Ga_direction_record() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ga_combination_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ga_combination_type + { + + [System.Xml.Serialization.XmlElementAttribute("direction_x")] + public Ga_direction_record Direction_x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("direction_y")] + public Ga_direction_record Direction_y { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("direction_z")] + public Ga_direction_record Direction_z { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("dt")] + public double Dt { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Ga_combination_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ga_diagram_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ga_diagram_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _record; + + [System.Xml.Serialization.XmlElementAttribute("record")] + public System.Collections.Generic.List Record + { + get + { + return _record; + } + set + { + _record = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RecordSpecified + { + get + { + return ((this.Record != null) + && (this.Record.Count != 0)); + } + } + + public Ga_diagram_type() + { + this._record = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("direction")] + public Direction_2d_type Direction { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ground_acceleration_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ground_acceleration_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _diagram; + + [System.Xml.Serialization.XmlElementAttribute("diagram")] + public System.Collections.Generic.List Diagram + { + get + { + return _diagram; + } + set + { + _diagram = value; + } + } + + public Ground_acceleration_type() + { + this._diagram = new System.Collections.Generic.List(); + this._combination = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _combination; + + [System.Xml.Serialization.XmlElementAttribute("combination")] + public System.Collections.Generic.List Combination + { + get + { + return _combination; + } + set + { + _combination = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CombinationSpecified + { + get + { + return ((this.Combination != null) + && (this.Combination.Count != 0)); + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ef_lcase_record", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ef_lcase_record + { + + [System.Xml.Serialization.XmlAttributeAttribute("factor")] + public double Factor { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("diagram")] + public string Diagram { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("load_case")] + public string Load_case { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Ef_lcase_record() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ef_combination_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ef_combination_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _record; + + [System.Xml.Serialization.XmlElementAttribute("record")] + public System.Collections.Generic.List Record + { + get + { + return _record; + } + set + { + _record = value; + } + } + + public Ef_combination_type() + { + this._record = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("dt")] + public double Dt { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ef_diagram_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ef_diagram_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _record; + + [System.Xml.Serialization.XmlElementAttribute("record")] + public System.Collections.Generic.List Record + { + get + { + return _record; + } + set + { + _record = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RecordSpecified + { + get + { + return ((this.Record != null) + && (this.Record.Count != 0)); + } + } + + public Ef_diagram_type() + { + this._record = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("direction")] + public Direction_2d_type Direction { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("start_value")] + public double Start_value { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("excitation_force_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Excitation_force_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _diagram; + + [System.Xml.Serialization.XmlElementAttribute("diagram")] + public System.Collections.Generic.List Diagram + { + get + { + return _diagram; + } + set + { + _diagram = value; + } + } + + public Excitation_force_type() + { + this._diagram = new System.Collections.Generic.List(); + this._combination = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _combination; + + [System.Xml.Serialization.XmlElementAttribute("combination")] + public System.Collections.Generic.List Combination + { + get + { + return _combination; + } + set + { + _combination = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CombinationSpecified + { + get + { + return ((this.Combination != null) + && (this.Combination.Count != 0)); + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("pe_phase_type", Namespace="urn:strusoft")] + public enum Pe_phase_type + { + + [System.Xml.Serialization.XmlEnumAttribute("sin")] + Sin, + + [System.Xml.Serialization.XmlEnumAttribute("cos")] + Cos, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("pe_case_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Pe_case_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("factor")] + public double Factor { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("phase")] + public Pe_phase_type Phase { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("load_case")] + public string Load_case { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Pe_case_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("pe_record_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Pe_record_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _case; + + [System.Xml.Serialization.XmlElementAttribute("case")] + public System.Collections.Generic.List Case + { + get + { + return _case; + } + set + { + _case = value; + } + } + + public Pe_record_type() + { + this._case = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("frequency")] + public double Frequency { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("periodic_excitation_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Periodic_excitation_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _record; + + [System.Xml.Serialization.XmlElementAttribute("record")] + public System.Collections.Generic.List Record + { + get + { + return _record; + } + set + { + _record = value; + } + } + + public Periodic_excitation_type() + { + this._record = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("loadcasetype_type", Namespace="urn:strusoft")] + public enum Loadcasetype_type + { + + [System.Xml.Serialization.XmlEnumAttribute("static")] + Static, + + [System.Xml.Serialization.XmlEnumAttribute("dead_load")] + Dead_load, + + [System.Xml.Serialization.XmlEnumAttribute("shrinkage")] + Shrinkage, + + [System.Xml.Serialization.XmlEnumAttribute("seis_max")] + Seis_max, + + [System.Xml.Serialization.XmlEnumAttribute("seis_sxp")] + Seis_sxp, + + [System.Xml.Serialization.XmlEnumAttribute("seis_sxm")] + Seis_sxm, + + [System.Xml.Serialization.XmlEnumAttribute("seis_syp")] + Seis_syp, + + [System.Xml.Serialization.XmlEnumAttribute("seis_sym")] + Seis_sym, + + [System.Xml.Serialization.XmlEnumAttribute("soil_dead_load")] + Soil_dead_load, + + [System.Xml.Serialization.XmlEnumAttribute("prestressing")] + Prestressing, + + [System.Xml.Serialization.XmlEnumAttribute("fire")] + Fire, + + [System.Xml.Serialization.XmlEnumAttribute("deviation")] + Deviation, + + [System.Xml.Serialization.XmlEnumAttribute("notional")] + Notional, + + [System.Xml.Serialization.XmlEnumAttribute("pile")] + Pile, + + [System.Xml.Serialization.XmlEnumAttribute("diaphragm")] + Diaphragm, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("loadcasedurationtype", Namespace="urn:strusoft")] + public enum Loadcasedurationtype + { + + [System.Xml.Serialization.XmlEnumAttribute("permanent")] + Permanent, + + [System.Xml.Serialization.XmlEnumAttribute("long-term")] + Longterm, + + [System.Xml.Serialization.XmlEnumAttribute("medium-term")] + Mediumterm, + + [System.Xml.Serialization.XmlEnumAttribute("short-term")] + Shortterm, + + [System.Xml.Serialization.XmlEnumAttribute("instantaneous")] + Instantaneous, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("load_case_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Load_case_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("type")] + public Loadcasetype_type Type { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Loadcasedurationtype _duration_class = StruSoft.Interop.Loadcasedurationtype.Permanent; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Loadcasedurationtype.Permanent)] + [System.Xml.Serialization.XmlAttributeAttribute("duration_class")] + public Loadcasedurationtype Duration_class + { + get + { + return _duration_class; + } + set + { + _duration_class = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("position")] + public string Position { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Load_case_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("spec_load_case_item", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Spec_load_case_item + { + + [System.Xml.Serialization.XmlAttributeAttribute("gamma")] + public double Gamma { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Spec_load_case_item() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("spec_cs_load_case_item", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Spec_cs_load_case_item + { + + [System.Xml.Serialization.XmlAttributeAttribute("type")] + public string Type { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("gamma")] + public double Gamma { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Spec_cs_load_case_item() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("vehicle_lib_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Vehicle_lib_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _point_load; + + [System.Xml.Serialization.XmlElementAttribute("point_load")] + public System.Collections.Generic.List Point_load + { + get + { + return _point_load; + } + set + { + _point_load = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Point_loadSpecified + { + get + { + return ((this.Point_load != null) + && (this.Point_load.Count != 0)); + } + } + + public Vehicle_lib_type() + { + this._point_load = new System.Collections.Generic.List(); + this._line_load = new System.Collections.Generic.List(); + this._surface_load = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _line_load; + + [System.Xml.Serialization.XmlElementAttribute("line_load")] + public System.Collections.Generic.List Line_load + { + get + { + return _line_load; + } + set + { + _line_load = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Line_loadSpecified + { + get + { + return ((this.Line_load != null) + && (this.Line_load.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _surface_load; + + [System.Xml.Serialization.XmlElementAttribute("surface_load")] + public System.Collections.Generic.List Surface_load + { + get + { + return _surface_load; + } + set + { + _surface_load = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Surface_loadSpecified + { + get + { + return ((this.Surface_load != null) + && (this.Surface_load.Count != 0)); + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("path_division_number_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Path_division_number_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("value")] + public int Value { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("path_division_lengt_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Path_division_lengt_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("value")] + public double Value { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("moving_load_grid_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Moving_load_grid_type + { + + [System.Xml.Serialization.XmlElementAttribute("local_pos")] + public Point_type_3d Local_pos { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_x")] + public Point_type_3d Local_x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_y")] + public Point_type_3d Local_y { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _contour; + + [System.Xml.Serialization.XmlElementAttribute("contour")] + public System.Collections.Generic.List Contour + { + get + { + return _contour; + } + set + { + _contour = value; + } + } + + public Moving_load_grid_type() + { + this._contour = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("grid_x")] + public double Grid_x { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("grid_y")] + public double Grid_y { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("edge_x")] + public double Edge_x { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("edge_y")] + public double Edge_y { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("moving_load_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Moving_load_type + { + + [System.Xml.Serialization.XmlElementAttribute("division_points")] + public Path_division_number_type Division_points { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("division_distance")] + public Path_division_lengt_type Division_distance { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _path_position; + + [System.Xml.Serialization.XmlElementAttribute("path_position")] + public System.Collections.Generic.List Path_position + { + get + { + return _path_position; + } + set + { + _path_position = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Path_positionSpecified + { + get + { + return ((this.Path_position != null) + && (this.Path_position.Count != 0)); + } + } + + public Moving_load_type() + { + this._path_position = new System.Collections.Generic.List(); + this._local_y = new System.Collections.Generic.List(); + this._added_vehicle_position = new System.Collections.Generic.List(); + this._deleted_vehicle_position = new System.Collections.Generic.List(); + this._vehicle_positions = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _local_y; + + [System.Xml.Serialization.XmlElementAttribute("local_y")] + public System.Collections.Generic.List Local_y + { + get + { + return _local_y; + } + set + { + _local_y = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Local_ySpecified + { + get + { + return ((this.Local_y != null) + && (this.Local_y.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("grid")] + public Moving_load_grid_type Grid { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _added_vehicle_position; + + [System.Xml.Serialization.XmlElementAttribute("added_vehicle_position")] + public System.Collections.Generic.List Added_vehicle_position + { + get + { + return _added_vehicle_position; + } + set + { + _added_vehicle_position = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Added_vehicle_positionSpecified + { + get + { + return ((this.Added_vehicle_position != null) + && (this.Added_vehicle_position.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _deleted_vehicle_position; + + [System.Xml.Serialization.XmlElementAttribute("deleted_vehicle_position")] + public System.Collections.Generic.List Deleted_vehicle_position + { + get + { + return _deleted_vehicle_position; + } + set + { + _deleted_vehicle_position = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Deleted_vehicle_positionSpecified + { + get + { + return ((this.Deleted_vehicle_position != null) + && (this.Deleted_vehicle_position.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _vehicle_positions; + + [System.Xml.Serialization.XmlArrayAttribute("vehicle_positions")] + [System.Xml.Serialization.XmlArrayItemAttribute("position", Namespace="urn:strusoft")] + public System.Collections.Generic.List Vehicle_positions + { + get + { + return _vehicle_positions; + } + set + { + _vehicle_positions = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Vehicle_positionsSpecified + { + get + { + return ((this.Vehicle_positions != null) + && (this.Vehicle_positions.Count != 0)); + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("vehicle")] + public string Vehicle { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _vehicle_shift_x = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("vehicle_shift_x")] + public double Vehicle_shift_x + { + get + { + return _vehicle_shift_x; + } + set + { + _vehicle_shift_x = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _vehicle_shift_y = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("vehicle_shift_y")] + public double Vehicle_shift_y + { + get + { + return _vehicle_shift_y; + } + set + { + _vehicle_shift_y = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _return = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("return")] + public bool Return + { + get + { + return _return; + } + set + { + _return = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _lock_direction = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("lock_direction")] + public bool Lock_direction + { + get + { + return _lock_direction; + } + set + { + _lock_direction = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _cut_to_path = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("cut_to_path")] + public bool Cut_to_path + { + get + { + return _cut_to_path; + } + set + { + _cut_to_path = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Moving_load_typeVehicle_positions", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Moving_load_typeVehicle_positions + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _position; + + [System.Xml.Serialization.XmlElementAttribute("position")] + public System.Collections.Generic.List Position + { + get + { + return _position; + } + set + { + _position = value; + } + } + + public Moving_load_typeVehicle_positions() + { + this._position = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("load_combination_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Load_combination_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _load_case; + + [System.Xml.Serialization.XmlElementAttribute("load_case")] + public System.Collections.Generic.List Load_case + { + get + { + return _load_case; + } + set + { + _load_case = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Load_caseSpecified + { + get + { + return ((this.Load_case != null) + && (this.Load_case.Count != 0)); + } + } + + public Load_combination_type() + { + this._load_case = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("seismic_max")] + public Spec_load_case_item Seismic_max { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("seismic_res_fx_plus_mx")] + public Spec_load_case_item Seismic_res_fx_plus_mx { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("seismic_res_fx_minus_mx")] + public Spec_load_case_item Seismic_res_fx_minus_mx { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("seismic_res_fy_plus_my")] + public Spec_load_case_item Seismic_res_fy_plus_my { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("seismic_res_fy_minus_my")] + public Spec_load_case_item Seismic_res_fy_minus_my { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("seismic_res_fz")] + public Spec_load_case_item Seismic_res_fz { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("ptc_t0")] + public Spec_load_case_item Ptc_t0 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("ptc_t8")] + public Spec_load_case_item Ptc_t8 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("ldcase_pile")] + public Spec_load_case_item Ldcase_pile { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("cs_case")] + public Spec_cs_load_case_item Cs_case { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("type")] + public Loadcombtype Type { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Load_combination_typeLoad_case", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Load_combination_typeLoad_case + { + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("gamma")] + public double Gamma { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Load_combination_typeLoad_case() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ldgroup_relation", Namespace="urn:strusoft")] + public enum Ldgroup_relation + { + + [System.Xml.Serialization.XmlEnumAttribute("")] + Empty, + + [System.Xml.Serialization.XmlEnumAttribute("alternative")] + Alternative, + + [System.Xml.Serialization.XmlEnumAttribute("simultaneous")] + Simultaneous, + + [System.Xml.Serialization.XmlEnumAttribute("entire")] + Entire, + + [System.Xml.Serialization.XmlEnumAttribute("custom")] + Custom, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ldgroup_direction_type", Namespace="urn:strusoft")] + public enum Ldgroup_direction_type + { + + [System.Xml.Serialization.XmlEnumAttribute("non_directional")] + Non_directional, + + [System.Xml.Serialization.XmlEnumAttribute("x+")] + X, + + [System.Xml.Serialization.XmlEnumAttribute("x-")] + X1, + + [System.Xml.Serialization.XmlEnumAttribute("y+")] + Y, + + [System.Xml.Serialization.XmlEnumAttribute("y-")] + Y1, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ldgroup_relation_record_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ldgroup_relation_record_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Ldgroup_direction_type _direction = StruSoft.Interop.Ldgroup_direction_type.Non_directional; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Ldgroup_direction_type.Non_directional)] + [System.Xml.Serialization.XmlAttributeAttribute("direction")] + public Ldgroup_direction_type Direction + { + get + { + return _direction; + } + set + { + _direction = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _psi_override; + + [System.Xml.Serialization.XmlAttributeAttribute("psi_override")] + public System.Collections.Generic.List Psi_override + { + get + { + return _psi_override; + } + set + { + _psi_override = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Psi_overrideSpecified + { + get + { + return ((this.Psi_override != null) + && (this.Psi_override.Count != 0)); + } + } + + public Ldgroup_relation_record_type() + { + this._psi_override = new System.Collections.Generic.List(); + this._factors = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _factors; + + [System.Xml.Serialization.XmlAttributeAttribute("factors")] + public System.Collections.Generic.List Factors + { + get + { + return _factors; + } + set + { + _factors = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ldgroup_relation_table", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ldgroup_relation_table + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _record; + + [System.Xml.Serialization.XmlElementAttribute("record")] + public System.Collections.Generic.List Record + { + get + { + return _record; + } + set + { + _record = value; + } + } + + public Ldgroup_relation_table() + { + this._record = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("load_subgroup", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Load_subgroup + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _load_case; + + [System.Xml.Serialization.XmlElementAttribute("load_case")] + public System.Collections.Generic.List Load_case + { + get + { + return _load_case; + } + set + { + _load_case = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Load_caseSpecified + { + get + { + return ((this.Load_case != null) + && (this.Load_case.Count != 0)); + } + } + + public Load_subgroup() + { + this._load_case = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("ptc_t0")] + public Empty_type Ptc_t0 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("ptc_t8")] + public Empty_type Ptc_t8 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("ldcase_pile")] + public Empty_type Ldcase_pile { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("final_cs")] + public Empty_type Final_cs { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("master")] + public string Master { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("method_ss", Namespace="urn:strusoft")] + public enum Method_ss + { + + [System.Xml.Serialization.XmlEnumAttribute("mandatory")] + Mandatory, + + [System.Xml.Serialization.XmlEnumAttribute("optional")] + Optional, + + [System.Xml.Serialization.XmlEnumAttribute("deactivated")] + Deactivated, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("method_acc", Namespace="urn:strusoft")] + public enum Method_acc + { + + [System.Xml.Serialization.XmlEnumAttribute("factorless")] + Factorless, + + Gamma_A, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("accidental_load_group", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Accidental_load_group + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _custom_table; + + [System.Xml.Serialization.XmlArrayAttribute("custom_table")] + [System.Xml.Serialization.XmlArrayItemAttribute("record", Namespace="urn:strusoft")] + public System.Collections.Generic.List Custom_table + { + get + { + return _custom_table; + } + set + { + _custom_table = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Custom_tableSpecified + { + get + { + return ((this.Custom_table != null) + && (this.Custom_table.Count != 0)); + } + } + + public Accidental_load_group() + { + this._custom_table = new System.Collections.Generic.List(); + this._load_case = new System.Collections.Generic.List(); + this._subgroup = new System.Collections.Generic.List(); + this._relations = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _load_case; + + [System.Xml.Serialization.XmlElementAttribute("load_case")] + public System.Collections.Generic.List Load_case + { + get + { + return _load_case; + } + set + { + _load_case = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Load_caseSpecified + { + get + { + return ((this.Load_case != null) + && (this.Load_case.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("ptc_t0")] + public Empty_type Ptc_t0 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("ptc_t8")] + public Empty_type Ptc_t8 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("ldcase_pile")] + public Empty_type Ldcase_pile { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("final_cs")] + public Empty_type Final_cs { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _subgroup; + + [System.Xml.Serialization.XmlElementAttribute("subgroup")] + public System.Collections.Generic.List Subgroup + { + get + { + return _subgroup; + } + set + { + _subgroup = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SubgroupSpecified + { + get + { + return ((this.Subgroup != null) + && (this.Subgroup.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _relations; + + [System.Xml.Serialization.XmlArrayAttribute("relations")] + [System.Xml.Serialization.XmlArrayItemAttribute("record", Namespace="urn:strusoft")] + public System.Collections.Generic.List Relations + { + get + { + return _relations; + } + set + { + _relations = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RelationsSpecified + { + get + { + return ((this.Relations != null) + && (this.Relations.Count != 0)); + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("safety_factor")] + public double Safety_factor { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _using_Psi_1 = true; + + [System.ComponentModel.DefaultValueAttribute(true)] + [System.Xml.Serialization.XmlAttributeAttribute("using_Psi_1")] + public bool Using_Psi_1 + { + get + { + return _using_Psi_1; + } + set + { + _using_Psi_1 = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _snow_effect = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("snow_effect")] + public bool Snow_effect + { + get + { + return _snow_effect; + } + set + { + _snow_effect = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Ldgroup_relation _relationship = StruSoft.Interop.Ldgroup_relation.Alternative; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Ldgroup_relation.Alternative)] + [System.Xml.Serialization.XmlAttributeAttribute("relationship")] + public Ldgroup_relation Relationship + { + get + { + return _relationship; + } + set + { + _relationship = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Accidental_load_groupCustom_table", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Accidental_load_groupCustom_table + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _record; + + [System.Xml.Serialization.XmlElementAttribute("record")] + public System.Collections.Generic.List Record + { + get + { + return _record; + } + set + { + _record = value; + } + } + + public Accidental_load_groupCustom_table() + { + this._record = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Accidental_load_groupCustom_tableRecord", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Accidental_load_groupCustom_tableRecord + { + + [System.Xml.Serialization.XmlAttributeAttribute("s")] + public Method_ss S { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("data")] + public string Data { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Accidental_load_groupCustom_tableRecord() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("method_per", Namespace="urn:strusoft")] + public enum Method_per + { + + [System.Xml.Serialization.XmlEnumAttribute("factorless")] + Factorless, + + Gamma_G_Sup, + + Gamma_G_Inf, + + [System.Xml.Serialization.XmlEnumAttribute("Ksi_*_Gamma_G_Sup")] + Ksi__Gamma_G_Sup, + + Gamma_G_Sup_Accidental, + + Gamma_G_Inf_Accidental, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("permanent_load_group", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Permanent_load_group + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _custom_table; + + [System.Xml.Serialization.XmlArrayAttribute("custom_table")] + [System.Xml.Serialization.XmlArrayItemAttribute("record", Namespace="urn:strusoft")] + public System.Collections.Generic.List Custom_table + { + get + { + return _custom_table; + } + set + { + _custom_table = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Custom_tableSpecified + { + get + { + return ((this.Custom_table != null) + && (this.Custom_table.Count != 0)); + } + } + + public Permanent_load_group() + { + this._custom_table = new System.Collections.Generic.List(); + this._load_case = new System.Collections.Generic.List(); + this._subgroup = new System.Collections.Generic.List(); + this._relations = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _load_case; + + [System.Xml.Serialization.XmlElementAttribute("load_case")] + public System.Collections.Generic.List Load_case + { + get + { + return _load_case; + } + set + { + _load_case = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Load_caseSpecified + { + get + { + return ((this.Load_case != null) + && (this.Load_case.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("ptc_t0")] + public Empty_type Ptc_t0 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("ptc_t8")] + public Empty_type Ptc_t8 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("ldcase_pile")] + public Empty_type Ldcase_pile { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("final_cs")] + public Empty_type Final_cs { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _subgroup; + + [System.Xml.Serialization.XmlElementAttribute("subgroup")] + public System.Collections.Generic.List Subgroup + { + get + { + return _subgroup; + } + set + { + _subgroup = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SubgroupSpecified + { + get + { + return ((this.Subgroup != null) + && (this.Subgroup.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _relations; + + [System.Xml.Serialization.XmlArrayAttribute("relations")] + [System.Xml.Serialization.XmlArrayItemAttribute("record", Namespace="urn:strusoft")] + public System.Collections.Generic.List Relations + { + get + { + return _relations; + } + set + { + _relations = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RelationsSpecified + { + get + { + return ((this.Relations != null) + && (this.Relations.Count != 0)); + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("standard_favourable")] + public double Standard_favourable { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("standard_unfavourable")] + public double Standard_unfavourable { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("accidental_favourable")] + public double Accidental_favourable { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("accidental_unfavourable")] + public double Accidental_unfavourable { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("xi")] + public double Xi { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Ldgroup_relation _relationship = StruSoft.Interop.Ldgroup_relation.Alternative; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Ldgroup_relation.Alternative)] + [System.Xml.Serialization.XmlAttributeAttribute("relationship")] + public Ldgroup_relation Relationship + { + get + { + return _relationship; + } + set + { + _relationship = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Permanent_load_groupCustom_table", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Permanent_load_groupCustom_table + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _record; + + [System.Xml.Serialization.XmlElementAttribute("record")] + public System.Collections.Generic.List Record + { + get + { + return _record; + } + set + { + _record = value; + } + } + + public Permanent_load_groupCustom_table() + { + this._record = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Permanent_load_groupCustom_tableRecord", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Permanent_load_groupCustom_tableRecord + { + + [System.Xml.Serialization.XmlAttributeAttribute("s")] + public Method_ss S { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("data")] + public string Data { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Permanent_load_groupCustom_tableRecord() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("method_str", Namespace="urn:strusoft")] + public enum Method_str + { + + [System.Xml.Serialization.XmlEnumAttribute("factorless")] + Factorless, + + Gamma_P, + + Gamma_P_Accidental, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("stress_load_group", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Stress_load_group + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _custom_table; + + [System.Xml.Serialization.XmlArrayAttribute("custom_table")] + [System.Xml.Serialization.XmlArrayItemAttribute("record", Namespace="urn:strusoft")] + public System.Collections.Generic.List Custom_table + { + get + { + return _custom_table; + } + set + { + _custom_table = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Custom_tableSpecified + { + get + { + return ((this.Custom_table != null) + && (this.Custom_table.Count != 0)); + } + } + + public Stress_load_group() + { + this._custom_table = new System.Collections.Generic.List(); + this._load_case = new System.Collections.Generic.List(); + this._subgroup = new System.Collections.Generic.List(); + this._relations = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _load_case; + + [System.Xml.Serialization.XmlElementAttribute("load_case")] + public System.Collections.Generic.List Load_case + { + get + { + return _load_case; + } + set + { + _load_case = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Load_caseSpecified + { + get + { + return ((this.Load_case != null) + && (this.Load_case.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("ptc_t0")] + public Empty_type Ptc_t0 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("ptc_t8")] + public Empty_type Ptc_t8 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("ldcase_pile")] + public Empty_type Ldcase_pile { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("final_cs")] + public Empty_type Final_cs { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _subgroup; + + [System.Xml.Serialization.XmlElementAttribute("subgroup")] + public System.Collections.Generic.List Subgroup + { + get + { + return _subgroup; + } + set + { + _subgroup = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SubgroupSpecified + { + get + { + return ((this.Subgroup != null) + && (this.Subgroup.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _relations; + + [System.Xml.Serialization.XmlArrayAttribute("relations")] + [System.Xml.Serialization.XmlArrayItemAttribute("record", Namespace="urn:strusoft")] + public System.Collections.Generic.List Relations + { + get + { + return _relations; + } + set + { + _relations = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RelationsSpecified + { + get + { + return ((this.Relations != null) + && (this.Relations.Count != 0)); + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("standard")] + public double Standard { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("accidental")] + public double Accidental { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Ldgroup_relation _relationship = StruSoft.Interop.Ldgroup_relation.Alternative; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Ldgroup_relation.Alternative)] + [System.Xml.Serialization.XmlAttributeAttribute("relationship")] + public Ldgroup_relation Relationship + { + get + { + return _relationship; + } + set + { + _relationship = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Stress_load_groupCustom_table", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Stress_load_groupCustom_table + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _record; + + [System.Xml.Serialization.XmlElementAttribute("record")] + public System.Collections.Generic.List Record + { + get + { + return _record; + } + set + { + _record = value; + } + } + + public Stress_load_groupCustom_table() + { + this._record = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Stress_load_groupCustom_tableRecord", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Stress_load_groupCustom_tableRecord + { + + [System.Xml.Serialization.XmlAttributeAttribute("s")] + public Method_ss S { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("data")] + public string Data { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Stress_load_groupCustom_tableRecord() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("method_seis", Namespace="urn:strusoft")] + public enum Method_seis + { + + [System.Xml.Serialization.XmlEnumAttribute("factorless")] + Factorless, + + Gamma_S, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("seismic_load_group", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Seismic_load_group + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _custom_table; + + [System.Xml.Serialization.XmlArrayAttribute("custom_table")] + [System.Xml.Serialization.XmlArrayItemAttribute("record", Namespace="urn:strusoft")] + public System.Collections.Generic.List Custom_table + { + get + { + return _custom_table; + } + set + { + _custom_table = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Custom_tableSpecified + { + get + { + return ((this.Custom_table != null) + && (this.Custom_table.Count != 0)); + } + } + + public Seismic_load_group() + { + this._custom_table = new System.Collections.Generic.List(); + this._load_case = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _load_case; + + [System.Xml.Serialization.XmlElementAttribute("load_case")] + public System.Collections.Generic.List Load_case + { + get + { + return _load_case; + } + set + { + _load_case = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Load_caseSpecified + { + get + { + return ((this.Load_case != null) + && (this.Load_case.Count != 0)); + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("safety_factor")] + public double Safety_factor { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _user_defined_cases = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("user_defined_cases")] + public bool User_defined_cases + { + get + { + return _user_defined_cases; + } + set + { + _user_defined_cases = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Seismic_load_groupCustom_table", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Seismic_load_groupCustom_table + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _record; + + [System.Xml.Serialization.XmlElementAttribute("record")] + public System.Collections.Generic.List Record + { + get + { + return _record; + } + set + { + _record = value; + } + } + + public Seismic_load_groupCustom_table() + { + this._record = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Seismic_load_groupCustom_tableRecord", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Seismic_load_groupCustom_tableRecord + { + + [System.Xml.Serialization.XmlAttributeAttribute("s")] + public Method_ss S { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("data")] + public string Data { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Seismic_load_groupCustom_tableRecord() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("method_is", Namespace="urn:strusoft")] + public enum Method_is + { + + [System.Xml.Serialization.XmlEnumAttribute("general")] + General, + + [System.Xml.Serialization.XmlEnumAttribute("highlighted")] + Highlighted, + + [System.Xml.Serialization.XmlEnumAttribute("simultaneous")] + Simultaneous, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("method_tmp", Namespace="urn:strusoft")] + public enum Method_tmp + { + + [System.Xml.Serialization.XmlEnumAttribute("factorless")] + Factorless, + + Gamma_Q, + + Psi0, + + Psi1, + + Psi2, + + [System.Xml.Serialization.XmlEnumAttribute("Gamma_Q_*_Psi0")] + Gamma_Q__Psi0, + + [System.Xml.Serialization.XmlEnumAttribute("Gamma_Q_*_Psi1")] + Gamma_Q__Psi1, + + [System.Xml.Serialization.XmlEnumAttribute("Gamma_Q_*_Psi2")] + Gamma_Q__Psi2, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ldgroup_tmpeffect", Namespace="urn:strusoft")] + public enum Ldgroup_tmpeffect + { + + [System.Xml.Serialization.XmlEnumAttribute("general")] + General, + + [System.Xml.Serialization.XmlEnumAttribute("snow")] + Snow, + + [System.Xml.Serialization.XmlEnumAttribute("wind")] + Wind, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("temporary_load_group", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Temporary_load_group + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _custom_table; + + [System.Xml.Serialization.XmlArrayAttribute("custom_table")] + [System.Xml.Serialization.XmlArrayItemAttribute("record", Namespace="urn:strusoft")] + public System.Collections.Generic.List Custom_table + { + get + { + return _custom_table; + } + set + { + _custom_table = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Custom_tableSpecified + { + get + { + return ((this.Custom_table != null) + && (this.Custom_table.Count != 0)); + } + } + + public Temporary_load_group() + { + this._custom_table = new System.Collections.Generic.List(); + this._load_case = new System.Collections.Generic.List(); + this._load_cases_of_moving_load = new System.Collections.Generic.List(); + this._subgroup = new System.Collections.Generic.List(); + this._relations = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _load_case; + + [System.Xml.Serialization.XmlElementAttribute("load_case")] + public System.Collections.Generic.List Load_case + { + get + { + return _load_case; + } + set + { + _load_case = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Load_caseSpecified + { + get + { + return ((this.Load_case != null) + && (this.Load_case.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("ptc_t0")] + public Empty_type Ptc_t0 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("ptc_t8")] + public Empty_type Ptc_t8 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("ldcase_pile")] + public Empty_type Ldcase_pile { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("final_cs")] + public Empty_type Final_cs { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _load_cases_of_moving_load; + + [System.Xml.Serialization.XmlElementAttribute("load_cases_of_moving_load")] + public System.Collections.Generic.List Load_cases_of_moving_load + { + get + { + return _load_cases_of_moving_load; + } + set + { + _load_cases_of_moving_load = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Load_cases_of_moving_loadSpecified + { + get + { + return ((this.Load_cases_of_moving_load != null) + && (this.Load_cases_of_moving_load.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _subgroup; + + [System.Xml.Serialization.XmlElementAttribute("subgroup")] + public System.Collections.Generic.List Subgroup + { + get + { + return _subgroup; + } + set + { + _subgroup = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SubgroupSpecified + { + get + { + return ((this.Subgroup != null) + && (this.Subgroup.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _relations; + + [System.Xml.Serialization.XmlArrayAttribute("relations")] + [System.Xml.Serialization.XmlArrayItemAttribute("record", Namespace="urn:strusoft")] + public System.Collections.Generic.List Relations + { + get + { + return _relations; + } + set + { + _relations = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RelationsSpecified + { + get + { + return ((this.Relations != null) + && (this.Relations.Count != 0)); + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("safety_factor")] + public double Safety_factor { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("psi_0")] + public double Psi_0 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("psi_1")] + public double Psi_1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("psi_2")] + public double Psi_2 { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _leading_cases = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("leading_cases")] + public bool Leading_cases + { + get + { + return _leading_cases; + } + set + { + _leading_cases = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _ignore_sls = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("ignore_sls")] + public bool Ignore_sls + { + get + { + return _ignore_sls; + } + set + { + _ignore_sls = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _simultaneous = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("simultaneous")] + public bool Simultaneous + { + get + { + return _simultaneous; + } + set + { + _simultaneous = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Ldgroup_relation _relationship = StruSoft.Interop.Ldgroup_relation.Alternative; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Ldgroup_relation.Alternative)] + [System.Xml.Serialization.XmlAttributeAttribute("relationship")] + public Ldgroup_relation Relationship + { + get + { + return _relationship; + } + set + { + _relationship = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Ldgroup_tmpeffect _temporary_effect = StruSoft.Interop.Ldgroup_tmpeffect.General; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Ldgroup_tmpeffect.General)] + [System.Xml.Serialization.XmlAttributeAttribute("temporary_effect")] + public Ldgroup_tmpeffect Temporary_effect + { + get + { + return _temporary_effect; + } + set + { + _temporary_effect = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Temporary_load_groupCustom_table", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Temporary_load_groupCustom_table + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _record; + + [System.Xml.Serialization.XmlElementAttribute("record")] + public System.Collections.Generic.List Record + { + get + { + return _record; + } + set + { + _record = value; + } + } + + public Temporary_load_groupCustom_table() + { + this._record = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Temporary_load_groupCustom_tableRecord", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Temporary_load_groupCustom_tableRecord + { + + [System.Xml.Serialization.XmlAttributeAttribute("s")] + public Method_ss S { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("data")] + public string Data { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("i")] + public Method_is I { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Temporary_load_groupCustom_tableRecord() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Temporary_load_groupLoad_cases_of_moving_load", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Temporary_load_groupLoad_cases_of_moving_load + { + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("master")] + public string Master { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Temporary_load_groupLoad_cases_of_moving_load() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("general_load_group_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class General_load_group_type + { + + [System.Xml.Serialization.XmlElementAttribute("accidental")] + public Accidental_load_group Accidental { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("permanent")] + public Permanent_load_group Permanent { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("seismic")] + public Seismic_load_group Seismic { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("stress")] + public Stress_load_group Stress { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("temporary")] + public Temporary_load_group Temporary { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _consider_in_gmax = true; + + [System.ComponentModel.DefaultValueAttribute(true)] + [System.Xml.Serialization.XmlAttributeAttribute("consider_in_gmax")] + public bool Consider_in_gmax + { + get + { + return _consider_in_gmax; + } + set + { + _consider_in_gmax = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public General_load_group_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ldcombmethod", Namespace="urn:strusoft")] + public enum Ldcombmethod + { + + [System.Xml.Serialization.XmlEnumAttribute("")] + Empty, + + [System.Xml.Serialization.XmlEnumAttribute("false")] + False, + + [System.Xml.Serialization.XmlEnumAttribute("true")] + True, + + [System.Xml.Serialization.XmlEnumAttribute("EN 1990 6.4.3(6.10.a, b)")] + EN_1990_643610a_b, + + [System.Xml.Serialization.XmlEnumAttribute("EN 1990 6.4.3(6.10)")] + EN_1990_6Period4Period3LeftParenthesis6Period10RightParenthesis, + + [System.Xml.Serialization.XmlEnumAttribute("custom")] + Custom, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ldcomblimitstate", Namespace="urn:strusoft")] + public enum Ldcomblimitstate + { + + [System.Xml.Serialization.XmlEnumAttribute("ultimate")] + Ultimate, + + [System.Xml.Serialization.XmlEnumAttribute("characteristic")] + Characteristic, + + [System.Xml.Serialization.XmlEnumAttribute("accidental")] + Accidental, + + [System.Xml.Serialization.XmlEnumAttribute("seismic")] + Seismic, + + [System.Xml.Serialization.XmlEnumAttribute("quasi-permanent")] + Quasipermanent, + + [System.Xml.Serialization.XmlEnumAttribute("frequent")] + Frequent, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ldgrp_rec_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ldgrp_rec_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("limit_state")] + public Ldcomblimitstate Limit_state { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Ldgrp_rec_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("ldgrp_ct_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Ldgrp_ct_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _record; + + [System.Xml.Serialization.XmlElementAttribute("record")] + public System.Collections.Generic.List Record + { + get + { + return _record; + } + set + { + _record = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RecordSpecified + { + get + { + return ((this.Record != null) + && (this.Record.Count != 0)); + } + } + + public Ldgrp_ct_type() + { + this._record = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("load_group_table", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Load_group_table + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _custom_table; + + [System.Xml.Serialization.XmlArrayAttribute("custom_table")] + [System.Xml.Serialization.XmlArrayItemAttribute("record", Namespace="urn:strusoft")] + public System.Collections.Generic.List Custom_table + { + get + { + return _custom_table; + } + set + { + _custom_table = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Custom_tableSpecified + { + get + { + return ((this.Custom_table != null) + && (this.Custom_table.Count != 0)); + } + } + + public Load_group_table() + { + this._custom_table = new System.Collections.Generic.List(); + this._group = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _group; + + [System.Xml.Serialization.XmlElementAttribute("group")] + public System.Collections.Generic.List Group + { + get + { + return _group; + } + set + { + _group = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Ldcombmethod _simple_combination_method = StruSoft.Interop.Ldcombmethod.EN_1990_6Period4Period3LeftParenthesis6Period10RightParenthesis; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Ldcombmethod.EN_1990_6Period4Period3LeftParenthesis6Period10RightParenthesis)] + [System.Xml.Serialization.XmlAttributeAttribute("simple_combination_method")] + public Ldcombmethod Simple_combination_method + { + get + { + return _simple_combination_method; + } + set + { + _simple_combination_method = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("wl_nt_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Wl_nt_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("mult_factor")] + public double Mult_factor { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Wl_nt_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("wl_t_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Wl_t_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("mult_factor")] + public double Mult_factor { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("turbulence")] + public bool Turbulence { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Wl_t_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("wl_st_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Wl_st_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("suction_factor")] + public double Suction_factor { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("turbulence")] + public bool Turbulence { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Wl_st_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("bs_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Bs_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Bs_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("wl_external_wall_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Wl_external_wall_type + { + + [System.Xml.Serialization.XmlElementAttribute("at_0_degree")] + public Wl_nt_type At_0_degree { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("at_90_degree")] + public Wl_t_type At_90_degree { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("at_180_degree")] + public Wl_nt_type At_180_degree { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("at_270_degree")] + public Wl_t_type At_270_degree { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _base_shell; + + [System.Xml.Serialization.XmlElementAttribute("base_shell")] + public System.Collections.Generic.List Base_shell + { + get + { + return _base_shell; + } + set + { + _base_shell = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Base_shellSpecified + { + get + { + return ((this.Base_shell != null) + && (this.Base_shell.Count != 0)); + } + } + + public Wl_external_wall_type() + { + this._base_shell = new System.Collections.Generic.List(); + this.Region = new Region_type(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RegionSpecified + { + get + { + return ((this.Region != null) + && (this.Region.Contour.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("direction_point")] + public Point_type_3d Direction_point { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("load_stripes")] + public int Load_stripes { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("wl_flat_roof_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Wl_flat_roof_type + { + + [System.Xml.Serialization.XmlElementAttribute("at_0_degree")] + public Wl_t_type At_0_degree { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("at_90_degree")] + public Wl_t_type At_90_degree { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("at_180_degree")] + public Wl_t_type At_180_degree { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("at_270_degree")] + public Wl_t_type At_270_degree { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _base_shell; + + [System.Xml.Serialization.XmlElementAttribute("base_shell")] + public System.Collections.Generic.List Base_shell + { + get + { + return _base_shell; + } + set + { + _base_shell = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Base_shellSpecified + { + get + { + return ((this.Base_shell != null) + && (this.Base_shell.Count != 0)); + } + } + + public Wl_flat_roof_type() + { + this._base_shell = new System.Collections.Generic.List(); + this.Region = new Region_type(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RegionSpecified + { + get + { + return ((this.Region != null) + && (this.Region.Contour.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("angle")] + public double Angle { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("attic_walls_height")] + public double Attic_walls_height { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("wl_leanto_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Wl_leanto_type + { + + [System.Xml.Serialization.XmlElementAttribute("at_0_degree")] + public Wl_st_type At_0_degree { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("at_90_degree")] + public Wl_t_type At_90_degree { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("at_180_degree")] + public Wl_t_type At_180_degree { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("at_270_degree")] + public Wl_t_type At_270_degree { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _base_shell; + + [System.Xml.Serialization.XmlElementAttribute("base_shell")] + public System.Collections.Generic.List Base_shell + { + get + { + return _base_shell; + } + set + { + _base_shell = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Base_shellSpecified + { + get + { + return ((this.Base_shell != null) + && (this.Base_shell.Count != 0)); + } + } + + public Wl_leanto_type() + { + this._base_shell = new System.Collections.Generic.List(); + this.Region = new Region_type(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RegionSpecified + { + get + { + return ((this.Region != null) + && (this.Region.Contour.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("pressure_factor")] + public double Pressure_factor { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("wl_ridge_roof_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Wl_ridge_roof_type + { + + [System.Xml.Serialization.XmlElementAttribute("at_0_degree")] + public Wl_t_type At_0_degree { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("at_90_degree")] + public Wl_t_type At_90_degree { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("at_180_degree")] + public Wl_t_type At_180_degree { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("at_270_degree")] + public Wl_t_type At_270_degree { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _base_shell; + + [System.Xml.Serialization.XmlElementAttribute("base_shell")] + public System.Collections.Generic.List Base_shell + { + get + { + return _base_shell; + } + set + { + _base_shell = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Base_shellSpecified + { + get + { + return ((this.Base_shell != null) + && (this.Base_shell.Count != 0)); + } + } + + public Wl_ridge_roof_type() + { + this._base_shell = new System.Collections.Generic.List(); + this.Region = new Region_type(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RegionSpecified + { + get + { + return ((this.Region != null) + && (this.Region.Contour.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("fdarc3_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Fdarc3_type + { + + [System.Xml.Serialization.XmlElementAttribute("centre")] + public Point_type_3d Centre { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_x")] + public Point_type_3d Local_x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_y")] + public Point_type_3d Local_y { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("radius")] + public double Radius { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("start_angle")] + public double Start_angle { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("end_angle")] + public double End_angle { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Fdarc3_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("point_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Point_type + { + + [System.Xml.Serialization.XmlElementAttribute("location")] + public Point_type_3d Location { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("style")] + public Style_type Style { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("solid_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Solid_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _facets; + + [System.Xml.Serialization.XmlArrayAttribute("facets")] + [System.Xml.Serialization.XmlArrayItemAttribute("region", Namespace="urn:strusoft")] + public System.Collections.Generic.List Facets + { + get + { + return _facets; + } + set + { + _facets = value; + } + } + + public Solid_type() + { + this._facets = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("style")] + public Style_type Style { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("curve_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Curve_type : Edge_type + { + + [System.Xml.Serialization.XmlElementAttribute("style")] + public Style_type Style { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("lengthunit_type", Namespace="urn:strusoft")] + public enum Lengthunit_type + { + + [System.Xml.Serialization.XmlEnumAttribute("mm")] + Mm, + + [System.Xml.Serialization.XmlEnumAttribute("cm")] + Cm, + + [System.Xml.Serialization.XmlEnumAttribute("dm")] + Dm, + + [System.Xml.Serialization.XmlEnumAttribute("m")] + M, + + [System.Xml.Serialization.XmlEnumAttribute("inch")] + Inch, + + [System.Xml.Serialization.XmlEnumAttribute("feet")] + Feet, + + [System.Xml.Serialization.XmlEnumAttribute("yd")] + Yd, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("angleunit_type", Namespace="urn:strusoft")] + public enum Angleunit_type + { + + [System.Xml.Serialization.XmlEnumAttribute("degree")] + Degree, + + [System.Xml.Serialization.XmlEnumAttribute("rad")] + Rad, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("halign_type", Namespace="urn:strusoft")] + public enum Halign_type + { + + [System.Xml.Serialization.XmlEnumAttribute("centered")] + Centered, + + [System.Xml.Serialization.XmlEnumAttribute("1st_ext_line")] + Item1st_ext_line, + + [System.Xml.Serialization.XmlEnumAttribute("2nd_ext_line")] + Item2nd_ext_line, + + [System.Xml.Serialization.XmlEnumAttribute("under_1st_ext_line")] + Under_1st_ext_line, + + [System.Xml.Serialization.XmlEnumAttribute("over_2nd_ext_line")] + Over_2nd_ext_line, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("valign_type", Namespace="urn:strusoft")] + public enum Valign_type + { + + [System.Xml.Serialization.XmlEnumAttribute("above")] + Above, + + [System.Xml.Serialization.XmlEnumAttribute("outside")] + Outside, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("dimtext_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Dimtext_type + { + + [System.Xml.Serialization.XmlElementAttribute("position")] + public Point_type_3d Position { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plane_x")] + public Point_type_3d Plane_x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plane_y")] + public Point_type_3d Plane_y { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("value")] + public double Value { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("text")] + public string Text { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _decimals = 2; + + [System.ComponentModel.DefaultValueAttribute(2)] + [System.Xml.Serialization.XmlAttributeAttribute("decimals")] + public int Decimals + { + get + { + return _decimals; + } + set + { + _decimals = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Lengthunit_type _length_unit = StruSoft.Interop.Lengthunit_type.M; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Lengthunit_type.M)] + [System.Xml.Serialization.XmlAttributeAttribute("length_unit")] + public Lengthunit_type Length_unit + { + get + { + return _length_unit; + } + set + { + _length_unit = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Angleunit_type _angle_unit = StruSoft.Interop.Angleunit_type.Rad; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Angleunit_type.Rad)] + [System.Xml.Serialization.XmlAttributeAttribute("angle_unit")] + public Angleunit_type Angle_unit + { + get + { + return _angle_unit; + } + set + { + _angle_unit = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _measurement_unit = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("measurement_unit")] + public bool Measurement_unit + { + get + { + return _measurement_unit; + } + set + { + _measurement_unit = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _prefix = ""; + + [System.ComponentModel.DefaultValueAttribute("")] + [System.Xml.Serialization.XmlAttributeAttribute("prefix")] + public string Prefix + { + get + { + return _prefix; + } + set + { + _prefix = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _suffix = ""; + + [System.ComponentModel.DefaultValueAttribute("")] + [System.Xml.Serialization.XmlAttributeAttribute("suffix")] + public string Suffix + { + get + { + return _suffix; + } + set + { + _suffix = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _colour = "000000"; + + [System.ComponentModel.DefaultValueAttribute("000000")] + [System.Xml.Serialization.XmlAttributeAttribute("colour")] + public string Colour + { + get + { + return _colour; + } + set + { + _colour = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Halign_type _h_align = StruSoft.Interop.Halign_type.Centered; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Halign_type.Centered)] + [System.Xml.Serialization.XmlAttributeAttribute("h_align")] + public Halign_type H_align + { + get + { + return _h_align; + } + set + { + _h_align = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Valign_type _v_align = StruSoft.Interop.Valign_type.Above; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Valign_type.Above)] + [System.Xml.Serialization.XmlAttributeAttribute("v_align")] + public Valign_type V_align + { + get + { + return _v_align; + } + set + { + _v_align = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Dimtext_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("arrowtype_type", Namespace="urn:strusoft")] + public enum Arrowtype_type + { + + [System.Xml.Serialization.XmlEnumAttribute("open")] + Open, + + [System.Xml.Serialization.XmlEnumAttribute("close")] + Close, + + [System.Xml.Serialization.XmlEnumAttribute("break")] + Break, + + [System.Xml.Serialization.XmlEnumAttribute("fill")] + Fill, + + [System.Xml.Serialization.XmlEnumAttribute("circle")] + Circle, + + [System.Xml.Serialization.XmlEnumAttribute("dot")] + Dot, + + [System.Xml.Serialization.XmlEnumAttribute("tick")] + Tick, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("arrow_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Arrow_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Arrowtype_type _type = StruSoft.Interop.Arrowtype_type.Tick; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Arrowtype_type.Tick)] + [System.Xml.Serialization.XmlAttributeAttribute("type")] + public Arrowtype_type Type + { + get + { + return _type; + } + set + { + _type = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _size = 0.005D; + + [System.ComponentModel.DefaultValueAttribute(0.005D)] + [System.Xml.Serialization.XmlAttributeAttribute("size")] + public double Size + { + get + { + return _size; + } + set + { + _size = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _penwidth = 0.00018D; + + [System.ComponentModel.DefaultValueAttribute(0.00018D)] + [System.Xml.Serialization.XmlAttributeAttribute("penwidth")] + public double Penwidth + { + get + { + return _penwidth; + } + set + { + _penwidth = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Arrow_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("line_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Line_type + { + + [System.Xml.Serialization.XmlElementAttribute("start")] + public Point_type_3d Start { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("end")] + public Point_type_3d End { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("dimdimline_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Dimdimline_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _extension_a = 0.005D; + + [System.ComponentModel.DefaultValueAttribute(0.005D)] + [System.Xml.Serialization.XmlAttributeAttribute("extension_a")] + public double Extension_a + { + get + { + return _extension_a; + } + set + { + _extension_a = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _penwidth = 0.00018D; + + [System.ComponentModel.DefaultValueAttribute(0.00018D)] + [System.Xml.Serialization.XmlAttributeAttribute("penwidth")] + public double Penwidth + { + get + { + return _penwidth; + } + set + { + _penwidth = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Dimdimline_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("extline_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Extline_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _lines = true; + + [System.ComponentModel.DefaultValueAttribute(true)] + [System.Xml.Serialization.XmlAttributeAttribute("lines")] + public bool Lines + { + get + { + return _lines; + } + set + { + _lines = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _base_point_on_dimension_line = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("base_point_on_dimension_line")] + public bool Base_point_on_dimension_line + { + get + { + return _base_point_on_dimension_line; + } + set + { + _base_point_on_dimension_line = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _extension_a = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("extension_a")] + public double Extension_a + { + get + { + return _extension_a; + } + set + { + _extension_a = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _extension_b = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("extension_b")] + public double Extension_b + { + get + { + return _extension_b; + } + set + { + _extension_b = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _offset_c = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("offset_c")] + public double Offset_c + { + get + { + return _offset_c; + } + set + { + _offset_c = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Extline_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("dimline_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Dimline_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _point; + + [System.Xml.Serialization.XmlElementAttribute("point")] + public System.Collections.Generic.List Point + { + get + { + return _point; + } + set + { + _point = value; + } + } + + public Dimline_type() + { + this._point = new System.Collections.Generic.List(); + this._text = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("position")] + public Point_type_3d Position { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plane_x")] + public Point_type_3d Plane_x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plane_y")] + public Point_type_3d Plane_y { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("dimension_line")] + public Dimdimline_type Dimension_line { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("extension_line")] + public Extline_type Extension_line { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("arrow")] + public Arrow_type Arrow { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("font")] + public Font_type Font { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _text; + + [System.Xml.Serialization.XmlElementAttribute("text")] + public System.Collections.Generic.List Text + { + get + { + return _text; + } + set + { + _text = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TextSpecified + { + get + { + return ((this.Text != null) + && (this.Text.Count != 0)); + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _dynamic = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("dynamic")] + public bool Dynamic + { + get + { + return _dynamic; + } + set + { + _dynamic = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _layer = "DIM"; + + [System.ComponentModel.DefaultValueAttribute("DIM")] + [System.Xml.Serialization.XmlAttributeAttribute("layer")] + public string Layer + { + get + { + return _layer; + } + set + { + _layer = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _colour = "000000"; + + [System.ComponentModel.DefaultValueAttribute("000000")] + [System.Xml.Serialization.XmlAttributeAttribute("colour")] + public string Colour + { + get + { + return _colour; + } + set + { + _colour = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("dimarc_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Dimarc_type + { + + [System.Xml.Serialization.XmlElementAttribute("arc")] + public Fdarc3_type Arc { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("position")] + public Point_type_3d Position { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("dimension_line")] + public Dimdimline_type Dimension_line { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("extension_line")] + public Extline_type Extension_line { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("arrow")] + public Arrow_type Arrow { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("font")] + public Font_type Font { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("text")] + public Dimtext_type Text { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _layer = "DIM"; + + [System.ComponentModel.DefaultValueAttribute("DIM")] + [System.Xml.Serialization.XmlAttributeAttribute("layer")] + public string Layer + { + get + { + return _layer; + } + set + { + _layer = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _colour = "000000"; + + [System.ComponentModel.DefaultValueAttribute("000000")] + [System.Xml.Serialization.XmlAttributeAttribute("colour")] + public string Colour + { + get + { + return _colour; + } + set + { + _colour = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Dimarc_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("dimdiam_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Dimdiam_type + { + + [System.Xml.Serialization.XmlElementAttribute("arc")] + public Fdarc3_type Arc { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("position")] + public Point_type_3d Position { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("dimension_line")] + public Dimdimline_type Dimension_line { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("arrow")] + public Arrow_type Arrow { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("font")] + public Font_type Font { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("text")] + public Dimtext_type Text { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _layer = "DIM"; + + [System.ComponentModel.DefaultValueAttribute("DIM")] + [System.Xml.Serialization.XmlAttributeAttribute("layer")] + public string Layer + { + get + { + return _layer; + } + set + { + _layer = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _colour = "000000"; + + [System.ComponentModel.DefaultValueAttribute("000000")] + [System.Xml.Serialization.XmlAttributeAttribute("colour")] + public string Colour + { + get + { + return _colour; + } + set + { + _colour = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Dimdiam_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("dimradius_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Dimradius_type + { + + [System.Xml.Serialization.XmlElementAttribute("arc")] + public Fdarc3_type Arc { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("position")] + public Point_type_3d Position { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("dimension_line")] + public Dimdimline_type Dimension_line { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("arrow")] + public Arrow_type Arrow { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("font")] + public Font_type Font { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("text")] + public Dimtext_type Text { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _layer = "DIM"; + + [System.ComponentModel.DefaultValueAttribute("DIM")] + [System.Xml.Serialization.XmlAttributeAttribute("layer")] + public string Layer + { + get + { + return _layer; + } + set + { + _layer = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _colour = "000000"; + + [System.ComponentModel.DefaultValueAttribute("000000")] + [System.Xml.Serialization.XmlAttributeAttribute("colour")] + public string Colour + { + get + { + return _colour; + } + set + { + _colour = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Dimradius_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("dimangle_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Dimangle_type + { + + [System.Xml.Serialization.XmlElementAttribute("arc")] + public Fdarc3_type Arc { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("base")] + public Point_type_3d Base { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("line1")] + public Line_type Line1 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("line2")] + public Line_type Line2 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("dimension_line")] + public Dimdimline_type Dimension_line { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("extension_line")] + public Extline_type Extension_line { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("arrow")] + public Arrow_type Arrow { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("font")] + public Font_type Font { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("text")] + public Dimtext_type Text { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("beta")] + public double Beta { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("rs1")] + public double Rs1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("re1")] + public double Re1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("rs2")] + public double Rs2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("re2")] + public double Re2 { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _layer = "DIM"; + + [System.ComponentModel.DefaultValueAttribute("DIM")] + [System.Xml.Serialization.XmlAttributeAttribute("layer")] + public string Layer + { + get + { + return _layer; + } + set + { + _layer = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _colour = "000000"; + + [System.ComponentModel.DefaultValueAttribute("000000")] + [System.Xml.Serialization.XmlAttributeAttribute("colour")] + public string Colour + { + get + { + return _colour; + } + set + { + _colour = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Dimangle_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("dimfloor_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Dimfloor_type + { + + [System.Xml.Serialization.XmlElementAttribute("position")] + public Point_type_3d Position { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plane_x")] + public Point_type_3d Plane_x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("plane_y")] + public Point_type_3d Plane_y { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("font")] + public Font_type Font { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("text")] + public Dimtext_type Text { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("size")] + public double Size { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _layer = "DIM"; + + [System.ComponentModel.DefaultValueAttribute("DIM")] + [System.Xml.Serialization.XmlAttributeAttribute("layer")] + public string Layer + { + get + { + return _layer; + } + set + { + _layer = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _colour = "000000"; + + [System.ComponentModel.DefaultValueAttribute("000000")] + [System.Xml.Serialization.XmlAttributeAttribute("colour")] + public string Colour + { + get + { + return _colour; + } + set + { + _colour = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Dimfloor_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("layer_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Layer_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = "0"; + + [System.ComponentModel.DefaultValueAttribute("0")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _colour = "000000"; + + [System.ComponentModel.DefaultValueAttribute("000000")] + [System.Xml.Serialization.XmlAttributeAttribute("colour")] + public string Colour + { + get + { + return _colour; + } + set + { + _colour = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _hidden = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("hidden")] + public bool Hidden + { + get + { + return _hidden; + } + set + { + _hidden = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _protected = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("protected")] + public bool Protected + { + get + { + return _protected; + } + set + { + _protected = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Layer_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("linetype_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Linetype_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _distances; + + [System.Xml.Serialization.XmlAttributeAttribute("distances")] + public System.Collections.Generic.List Distances + { + get + { + return _distances; + } + set + { + _distances = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool DistancesSpecified + { + get + { + return ((this.Distances != null) + && (this.Distances.Count != 0)); + } + } + + public Linetype_type() + { + this._distances = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("text_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Text_type + { + + [System.Xml.Serialization.XmlElementAttribute("position")] + public Point_type_3d Position { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_x")] + public Point_type_3d Local_x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("local_y")] + public Point_type_3d Local_y { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("style")] + public Style_type Style { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("text")] + public string Text { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Text_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("gen_stjoint_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Gen_stjoint_type + { + + [System.Xml.Serialization.XmlElementAttribute("connection_point")] + public Point_type_3d Connection_point { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _connected_items; + + [System.Xml.Serialization.XmlElementAttribute("connected_items")] + public System.Collections.Generic.List Connected_items + { + get + { + return _connected_items; + } + set + { + _connected_items = value; + } + } + + public Gen_stjoint_type() + { + this._connected_items = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("bolt_length_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Bolt_length_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("l")] + public double L { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("ls")] + public double Ls { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("lg")] + public double Lg { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Bolt_length_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("bolt_data_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Bolt_data_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _bolt_length; + + [System.Xml.Serialization.XmlElementAttribute("bolt_length")] + public System.Collections.Generic.List Bolt_length + { + get + { + return _bolt_length; + } + set + { + _bolt_length = value; + } + } + + public Bolt_data_type() + { + this._bolt_length = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("family")] + public string Family { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("d")] + public double D { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("pitch")] + public double Pitch { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("stress_area")] + public double Stress_area { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("bolt_b")] + public double Bolt_b { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("bolt_c")] + public double Bolt_c { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("bolt_ds")] + public double Bolt_ds { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("bolt_da")] + public double Bolt_da { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("bolt_dw")] + public double Bolt_dw { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("bolt_e")] + public double Bolt_e { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("bolt_k")] + public double Bolt_k { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("bolt_s")] + public double Bolt_s { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("bolt_r")] + public double Bolt_r { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nut_m")] + public double Nut_m { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nut_e")] + public double Nut_e { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("nut_s")] + public double Nut_s { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("washer_thickness")] + public double Washer_thickness { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("bolt_lib_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Bolt_lib_type + { + + [System.Xml.Serialization.XmlElementAttribute("bolt_data")] + public Bolt_data_type Bolt_data { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Bolt_lib_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("bar_end_lib_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Bar_end_lib_type + { + + [System.Xml.Serialization.XmlElementAttribute("connectivity")] + public Simple_connectivity_type Connectivity { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Bar_end_lib_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("sj_component_values", Namespace="urn:strusoft")] + public enum Sj_component_values + { + + [System.Xml.Serialization.XmlEnumAttribute("buckling")] + Buckling, + + [System.Xml.Serialization.XmlEnumAttribute("endplate")] + Endplate, + + [System.Xml.Serialization.XmlEnumAttribute("haunch_top")] + Haunch_top, + + [System.Xml.Serialization.XmlEnumAttribute("haunch_bottom")] + Haunch_bottom, + + [System.Xml.Serialization.XmlEnumAttribute("stiffener_top")] + Stiffener_top, + + [System.Xml.Serialization.XmlEnumAttribute("stiffener_bottom")] + Stiffener_bottom, + + [System.Xml.Serialization.XmlEnumAttribute("stiffener_diagonal")] + Stiffener_diagonal, + + [System.Xml.Serialization.XmlEnumAttribute("stiffener_general")] + Stiffener_general, + + [System.Xml.Serialization.XmlEnumAttribute("stiffener_triangular")] + Stiffener_triangular, + + [System.Xml.Serialization.XmlEnumAttribute("fin_plate")] + Fin_plate, + + [System.Xml.Serialization.XmlEnumAttribute("splice_web")] + Splice_web, + + [System.Xml.Serialization.XmlEnumAttribute("splice_flange_bottom")] + Splice_flange_bottom, + + [System.Xml.Serialization.XmlEnumAttribute("splice_flange_top")] + Splice_flange_top, + + [System.Xml.Serialization.XmlEnumAttribute("cover_plate")] + Cover_plate, + + [System.Xml.Serialization.XmlEnumAttribute("heel")] + Heel, + + [System.Xml.Serialization.XmlEnumAttribute("gusset_plate")] + Gusset_plate, + + [System.Xml.Serialization.XmlEnumAttribute("champfer_plate")] + Champfer_plate, + + [System.Xml.Serialization.XmlEnumAttribute("backing_plate")] + Backing_plate, + + [System.Xml.Serialization.XmlEnumAttribute("support_plate")] + Support_plate, + + [System.Xml.Serialization.XmlEnumAttribute("concrete")] + Concrete, + + [System.Xml.Serialization.XmlEnumAttribute("notch")] + Notch, + + [System.Xml.Serialization.XmlEnumAttribute("gap")] + Gap, + + [System.Xml.Serialization.XmlEnumAttribute("eccentricity")] + Eccentricity, + + [System.Xml.Serialization.XmlEnumAttribute("cut")] + Cut, + + [System.Xml.Serialization.XmlEnumAttribute("bolts")] + Bolts, + + [System.Xml.Serialization.XmlEnumAttribute("welds")] + Welds, + + [System.Xml.Serialization.XmlEnumAttribute("geometry")] + Geometry, + + [System.Xml.Serialization.XmlEnumAttribute("endplate_bolts")] + Endplate_bolts, + + [System.Xml.Serialization.XmlEnumAttribute("endplate_welds")] + Endplate_welds, + + [System.Xml.Serialization.XmlEnumAttribute("endplate_welds_at_beam")] + Endplate_welds_at_beam, + + [System.Xml.Serialization.XmlEnumAttribute("endplate_welds_at_column")] + Endplate_welds_at_column, + + [System.Xml.Serialization.XmlEnumAttribute("splice_web_bolts")] + Splice_web_bolts, + + [System.Xml.Serialization.XmlEnumAttribute("flange_bolts")] + Flange_bolts, + + [System.Xml.Serialization.XmlEnumAttribute("splice_web_weld")] + Splice_web_weld, + + [System.Xml.Serialization.XmlEnumAttribute("flange_splice_weld")] + Flange_splice_weld, + + [System.Xml.Serialization.XmlEnumAttribute("fin_bolts")] + Fin_bolts, + + [System.Xml.Serialization.XmlEnumAttribute("fin_welds")] + Fin_welds, + + [System.Xml.Serialization.XmlEnumAttribute("heel_welds")] + Heel_welds, + + [System.Xml.Serialization.XmlEnumAttribute("cover_welds")] + Cover_welds, + + [System.Xml.Serialization.XmlEnumAttribute("support_plate_welds")] + Support_plate_welds, + + [System.Xml.Serialization.XmlEnumAttribute("stiffener_welds")] + Stiffener_welds, + + [System.Xml.Serialization.XmlEnumAttribute("calculation")] + Calculation, + + [System.Xml.Serialization.XmlEnumAttribute("anchor_geometry")] + Anchor_geometry, + + [System.Xml.Serialization.XmlEnumAttribute("anchor_calculations")] + Anchor_calculations, + + [System.Xml.Serialization.XmlEnumAttribute("calculation_parameters")] + Calculation_parameters, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("sj_connected_bar_type", Namespace="urn:strusoft")] + public enum Sj_connected_bar_type + { + + [System.Xml.Serialization.XmlEnumAttribute("columns_end")] + Columns_end, + + [System.Xml.Serialization.XmlEnumAttribute("column")] + Column, + + [System.Xml.Serialization.XmlEnumAttribute("top_column")] + Top_column, + + [System.Xml.Serialization.XmlEnumAttribute("bottom_column")] + Bottom_column, + + [System.Xml.Serialization.XmlEnumAttribute("beam")] + Beam, + + [System.Xml.Serialization.XmlEnumAttribute("beam_1")] + Beam_1, + + [System.Xml.Serialization.XmlEnumAttribute("beam_2")] + Beam_2, + + [System.Xml.Serialization.XmlEnumAttribute("brace_1")] + Brace_1, + + [System.Xml.Serialization.XmlEnumAttribute("brace_2")] + Brace_2, + + [System.Xml.Serialization.XmlEnumAttribute("chord")] + Chord, + + [System.Xml.Serialization.XmlEnumAttribute("joint")] + Joint, + + [System.Xml.Serialization.XmlEnumAttribute("foundation")] + Foundation, + + [System.Xml.Serialization.XmlEnumAttribute("anchor-concrete_interaction")] + Anchorconcrete_interaction, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("sj_datatype_names", Namespace="urn:strusoft")] + public enum Sj_datatype_names + { + + [System.Xml.Serialization.XmlEnumAttribute("buckling_lc_y")] + Buckling_lc_y, + + [System.Xml.Serialization.XmlEnumAttribute("buckling_lc_z")] + Buckling_lc_z, + + [System.Xml.Serialization.XmlEnumAttribute("buckling_x_y")] + Buckling_x_y, + + [System.Xml.Serialization.XmlEnumAttribute("buckling_x_z")] + Buckling_x_z, + + [System.Xml.Serialization.XmlEnumAttribute("brace_chord_distance")] + Brace_chord_distance, + + [System.Xml.Serialization.XmlEnumAttribute("brace_cut_type")] + Brace_cut_type, + + [System.Xml.Serialization.XmlEnumAttribute("brace_cut_distance")] + Brace_cut_distance, + + [System.Xml.Serialization.XmlEnumAttribute("brace_eccentricity")] + Brace_eccentricity, + + [System.Xml.Serialization.XmlEnumAttribute("brace_overlapped")] + Brace_overlapped, + + [System.Xml.Serialization.XmlEnumAttribute("brace_overlapped_weld")] + Brace_overlapped_weld, + + [System.Xml.Serialization.XmlEnumAttribute("calc_tension_boltrows_for_shear")] + Calc_tension_boltrows_for_shear, + + [System.Xml.Serialization.XmlEnumAttribute("foundation_beta")] + Foundation_beta, + + [System.Xml.Serialization.XmlEnumAttribute("foundation_cfd")] + Foundation_cfd, + + [System.Xml.Serialization.XmlEnumAttribute("foundation_cmin")] + Foundation_cmin, + + [System.Xml.Serialization.XmlEnumAttribute("foundation_cracked")] + Foundation_cracked, + + [System.Xml.Serialization.XmlEnumAttribute("foundation_ey")] + Foundation_ey, + + [System.Xml.Serialization.XmlEnumAttribute("foundation_ez")] + Foundation_ez, + + [System.Xml.Serialization.XmlEnumAttribute("foundation_failure_check")] + Foundation_failure_check, + + [System.Xml.Serialization.XmlEnumAttribute("foundation_gamma_mc")] + Foundation_gamma_mc, + + [System.Xml.Serialization.XmlEnumAttribute("foundation_gamma_mp")] + Foundation_gamma_mp, + + [System.Xml.Serialization.XmlEnumAttribute("foundation_gamma_msp")] + Foundation_gamma_msp, + + [System.Xml.Serialization.XmlEnumAttribute("foundation_h")] + Foundation_h, + + [System.Xml.Serialization.XmlEnumAttribute("foundation_hmin")] + Foundation_hmin, + + [System.Xml.Serialization.XmlEnumAttribute("foundation_ignore_cone_failure")] + Foundation_ignore_cone_failure, + + [System.Xml.Serialization.XmlEnumAttribute("foundation_ignore_split_failure")] + Foundation_ignore_split_failure, + + [System.Xml.Serialization.XmlEnumAttribute("foundation_kcr")] + Foundation_kcr, + + [System.Xml.Serialization.XmlEnumAttribute("foundation_kj")] + Foundation_kj, + + [System.Xml.Serialization.XmlEnumAttribute("foundation_kucr")] + Foundation_kucr, + + [System.Xml.Serialization.XmlEnumAttribute("foundation_l")] + Foundation_l, + + [System.Xml.Serialization.XmlEnumAttribute("foundation_material")] + Foundation_material, + + [System.Xml.Serialization.XmlEnumAttribute("foundation_smin")] + Foundation_smin, + + [System.Xml.Serialization.XmlEnumAttribute("foundation_u")] + Foundation_u, + + [System.Xml.Serialization.XmlEnumAttribute("foundation_w")] + Foundation_w, + + [System.Xml.Serialization.XmlEnumAttribute("notch_hb")] + Notch_hb, + + [System.Xml.Serialization.XmlEnumAttribute("notch_ht")] + Notch_ht, + + [System.Xml.Serialization.XmlEnumAttribute("notch_eb")] + Notch_eb, + + [System.Xml.Serialization.XmlEnumAttribute("notch_et")] + Notch_et, + + [System.Xml.Serialization.XmlEnumAttribute("gap_size")] + Gap_size, + + [System.Xml.Serialization.XmlEnumAttribute("plate_apply")] + Plate_apply, + + [System.Xml.Serialization.XmlEnumAttribute("plate_material")] + Plate_material, + + [System.Xml.Serialization.XmlEnumAttribute("plate_tp")] + Plate_tp, + + [System.Xml.Serialization.XmlEnumAttribute("plate_bp")] + Plate_bp, + + [System.Xml.Serialization.XmlEnumAttribute("plate_hp")] + Plate_hp, + + [System.Xml.Serialization.XmlEnumAttribute("plate_length")] + Plate_length, + + [System.Xml.Serialization.XmlEnumAttribute("plate_aux_param1")] + Plate_aux_param1, + + [System.Xml.Serialization.XmlEnumAttribute("plate_aux_param2")] + Plate_aux_param2, + + [System.Xml.Serialization.XmlEnumAttribute("plate_aux_param3")] + Plate_aux_param3, + + [System.Xml.Serialization.XmlEnumAttribute("plate_aux_param4")] + Plate_aux_param4, + + [System.Xml.Serialization.XmlEnumAttribute("plate_aux_param5")] + Plate_aux_param5, + + [System.Xml.Serialization.XmlEnumAttribute("plate_aux_param6")] + Plate_aux_param6, + + [System.Xml.Serialization.XmlEnumAttribute("plate_aux_param7")] + Plate_aux_param7, + + [System.Xml.Serialization.XmlEnumAttribute("plate_aux_param8")] + Plate_aux_param8, + + [System.Xml.Serialization.XmlEnumAttribute("bolt_type")] + Bolt_type, + + [System.Xml.Serialization.XmlEnumAttribute("bolt_quality")] + Bolt_quality, + + [System.Xml.Serialization.XmlEnumAttribute("bolt_prestressed")] + Bolt_prestressed, + + [System.Xml.Serialization.XmlEnumAttribute("bolt_flip")] + Bolt_flip, + + [System.Xml.Serialization.XmlEnumAttribute("bolt_washer_at_nut")] + Bolt_washer_at_nut, + + [System.Xml.Serialization.XmlEnumAttribute("bolt_washer_at_head")] + Bolt_washer_at_head, + + [System.Xml.Serialization.XmlEnumAttribute("anchor_diameter")] + Anchor_diameter, + + [System.Xml.Serialization.XmlEnumAttribute("anchor_quality")] + Anchor_quality, + + [System.Xml.Serialization.XmlEnumAttribute("anchor_surface")] + Anchor_surface, + + [System.Xml.Serialization.XmlEnumAttribute("anchor_m")] + Anchor_m, + + [System.Xml.Serialization.XmlEnumAttribute("anchor_tb")] + Anchor_tb, + + [System.Xml.Serialization.XmlEnumAttribute("anchor_use_max_of_ftrd")] + Anchor_use_max_of_ftrd, + + [System.Xml.Serialization.XmlEnumAttribute("anchor_ftrd")] + Anchor_ftrd, + + [System.Xml.Serialization.XmlEnumAttribute("anchor_type")] + Anchor_type, + + [System.Xml.Serialization.XmlEnumAttribute("anchor_shape")] + Anchor_shape, + + [System.Xml.Serialization.XmlEnumAttribute("anchor_h")] + Anchor_h, + + [System.Xml.Serialization.XmlEnumAttribute("anchor_lhoriz")] + Anchor_lhoriz, + + [System.Xml.Serialization.XmlEnumAttribute("anchor_rbend")] + Anchor_rbend, + + [System.Xml.Serialization.XmlEnumAttribute("anchor_checkadh")] + Anchor_checkadh, + + [System.Xml.Serialization.XmlEnumAttribute("anchor_dh")] + Anchor_dh, + + [System.Xml.Serialization.XmlEnumAttribute("anchor_cfd")] + Anchor_cfd, + + [System.Xml.Serialization.XmlEnumAttribute("bolt_group_ncol")] + Bolt_group_ncol, + + [System.Xml.Serialization.XmlEnumAttribute("bolt_group_nrow")] + Bolt_group_nrow, + + [System.Xml.Serialization.XmlEnumAttribute("bolt_group_c1")] + Bolt_group_c1, + + [System.Xml.Serialization.XmlEnumAttribute("bolt_group_c2")] + Bolt_group_c2, + + [System.Xml.Serialization.XmlEnumAttribute("bolt_group_c3")] + Bolt_group_c3, + + [System.Xml.Serialization.XmlEnumAttribute("bolt_group_c4")] + Bolt_group_c4, + + [System.Xml.Serialization.XmlEnumAttribute("bolt_group_e0")] + Bolt_group_e0, + + [System.Xml.Serialization.XmlEnumAttribute("bolt_group_e")] + Bolt_group_e, + + [System.Xml.Serialization.XmlEnumAttribute("bolt_group_e1")] + Bolt_group_e1, + + [System.Xml.Serialization.XmlEnumAttribute("bolt_group_e2")] + Bolt_group_e2, + + [System.Xml.Serialization.XmlEnumAttribute("bolt_group_rows")] + Bolt_group_rows, + + [System.Xml.Serialization.XmlEnumAttribute("weld_type")] + Weld_type, + + [System.Xml.Serialization.XmlEnumAttribute("weld_s")] + Weld_s, + + [System.Xml.Serialization.XmlEnumAttribute("weld_a")] + Weld_a, + + [System.Xml.Serialization.XmlEnumAttribute("weld_afht")] + Weld_afht, + + [System.Xml.Serialization.XmlEnumAttribute("weld_awht")] + Weld_awht, + + [System.Xml.Serialization.XmlEnumAttribute("weld_af1")] + Weld_af1, + + [System.Xml.Serialization.XmlEnumAttribute("weld_aft")] + Weld_aft, + + [System.Xml.Serialization.XmlEnumAttribute("weld_aw(l)")] + Weld_awl, + + [System.Xml.Serialization.XmlEnumAttribute("weld_awr")] + Weld_awr, + + [System.Xml.Serialization.XmlEnumAttribute("weld_af(b)")] + Weld_afb, + + [System.Xml.Serialization.XmlEnumAttribute("weld_af4")] + Weld_af4, + + [System.Xml.Serialization.XmlEnumAttribute("weld_awhb")] + Weld_awhb, + + [System.Xml.Serialization.XmlEnumAttribute("weld_afhb")] + Weld_afhb, + + [System.Xml.Serialization.XmlEnumAttribute("weld_awh_top")] + Weld_awh_top, + + [System.Xml.Serialization.XmlEnumAttribute("weld_awh_bottom")] + Weld_awh_bottom, + + [System.Xml.Serialization.XmlEnumAttribute("weld_af1_back")] + Weld_af1_back, + + [System.Xml.Serialization.XmlEnumAttribute("weld_aft_back")] + Weld_aft_back, + + [System.Xml.Serialization.XmlEnumAttribute("weld_afw_back")] + Weld_afw_back, + + [System.Xml.Serialization.XmlEnumAttribute("weld_afb_back")] + Weld_afb_back, + + [System.Xml.Serialization.XmlEnumAttribute("weld_af4_back")] + Weld_af4_back, + + [System.Xml.Serialization.XmlEnumAttribute("weld_length")] + Weld_length, + + [System.Xml.Serialization.XmlEnumAttribute("weld_edges")] + Weld_edges, + + [System.Xml.Serialization.XmlEnumAttribute("weld_buttering")] + Weld_buttering, + + [System.Xml.Serialization.XmlEnumAttribute("weld_preheating")] + Weld_preheating, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("sj_data_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Sj_data_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("type")] + public Sj_datatype_names Type { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("value")] + public string Value { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Sj_data_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("sj_boltline_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Sj_boltline_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("distance")] + public string Distance { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("from")] + public string From { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("bolts")] + public string Bolts { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Sj_boltline_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("sj_component_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Sj_component_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _record; + + [System.Xml.Serialization.XmlArrayAttribute("record")] + [System.Xml.Serialization.XmlArrayItemAttribute("property", Namespace="urn:strusoft")] + public System.Collections.Generic.List Record + { + get + { + return _record; + } + set + { + _record = value; + } + } + + public Sj_component_type() + { + this._record = new System.Collections.Generic.List(); + this._bolt_rows = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _bolt_rows; + + [System.Xml.Serialization.XmlArrayAttribute("bolt_rows")] + [System.Xml.Serialization.XmlArrayItemAttribute("row", Namespace="urn:strusoft")] + public System.Collections.Generic.List Bolt_rows + { + get + { + return _bolt_rows; + } + set + { + _bolt_rows = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Bolt_rowsSpecified + { + get + { + return ((this.Bolt_rows != null) + && (this.Bolt_rows.Count != 0)); + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("type")] + public Sj_component_values Type { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("connected_to")] + public Sj_connected_bar_type Connected_to { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Sj_component_typeRecord", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Sj_component_typeRecord + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _property; + + [System.Xml.Serialization.XmlElementAttribute("property")] + public System.Collections.Generic.List Property + { + get + { + return _property; + } + set + { + _property = value; + } + } + + public Sj_component_typeRecord() + { + this._property = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Sj_component_typeBolt_rows", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Sj_component_typeBolt_rows + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _row; + + [System.Xml.Serialization.XmlElementAttribute("row")] + public System.Collections.Generic.List Row + { + get + { + return _row; + } + set + { + _row = value; + } + } + + public Sj_component_typeBolt_rows() + { + this._row = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("sj_topology_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Sj_topology_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _component; + + [System.Xml.Serialization.XmlElementAttribute("component")] + public System.Collections.Generic.List Component + { + get + { + return _component; + } + set + { + _component = value; + } + } + + public Sj_topology_type() + { + this._component = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("sj_force_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Sj_force_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _n = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("n")] + public double N + { + get + { + return _n; + } + set + { + _n = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _t_y = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("t_y")] + public double T_y + { + get + { + return _t_y; + } + set + { + _t_y = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _t_z = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("t_z")] + public double T_z + { + get + { + return _t_z; + } + set + { + _t_z = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _m_x = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("m_x")] + public double M_x + { + get + { + return _m_x; + } + set + { + _m_x = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _m_y = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("m_y")] + public double M_y + { + get + { + return _m_y; + } + set + { + _m_y = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _m_z = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("m_z")] + public double M_z + { + get + { + return _m_z; + } + set + { + _m_z = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Sj_force_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("sj_1bar_connection_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Sj_1bar_connection_type + { + + [System.Xml.Serialization.XmlElementAttribute("bar1")] + public Guid_list_type Bar1 { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _load_combination; + + [System.Xml.Serialization.XmlElementAttribute("load_combination")] + public System.Collections.Generic.List Load_combination + { + get + { + return _load_combination; + } + set + { + _load_combination = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Load_combinationSpecified + { + get + { + return ((this.Load_combination != null) + && (this.Load_combination.Count != 0)); + } + } + + public Sj_1bar_connection_type() + { + this._load_combination = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Sj_1bar_connection_typeLoad_combination", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Sj_1bar_connection_typeLoad_combination + { + + [System.Xml.Serialization.XmlElementAttribute("bar1_forces")] + public Sj_force_type Bar1_forces { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool @__2nd_order_calculation = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("_2nd_order_calculation")] + public bool _2nd_order_calculation + { + get + { + return @__2nd_order_calculation; + } + set + { + @__2nd_order_calculation = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Sj_1bar_connection_typeLoad_combination() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("sj_2bars_connection_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Sj_2bars_connection_type + { + + [System.Xml.Serialization.XmlElementAttribute("bar1")] + public Guid_list_type Bar1 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("bar2")] + public Guid_list_type Bar2 { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _load_combination; + + [System.Xml.Serialization.XmlElementAttribute("load_combination")] + public System.Collections.Generic.List Load_combination + { + get + { + return _load_combination; + } + set + { + _load_combination = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Load_combinationSpecified + { + get + { + return ((this.Load_combination != null) + && (this.Load_combination.Count != 0)); + } + } + + public Sj_2bars_connection_type() + { + this._load_combination = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Sj_2bars_connection_typeLoad_combination", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Sj_2bars_connection_typeLoad_combination + { + + [System.Xml.Serialization.XmlElementAttribute("bar1_forces")] + public Sj_force_type Bar1_forces { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("bar2_forces")] + public Sj_force_type Bar2_forces { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool @__2nd_order_calculation = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("_2nd_order_calculation")] + public bool _2nd_order_calculation + { + get + { + return @__2nd_order_calculation; + } + set + { + @__2nd_order_calculation = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Sj_2bars_connection_typeLoad_combination() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("sj_3bars_connection_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Sj_3bars_connection_type + { + + [System.Xml.Serialization.XmlElementAttribute("bar1")] + public Guid_list_type Bar1 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("bar2")] + public Guid_list_type Bar2 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("bar3")] + public Guid_list_type Bar3 { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _load_combination; + + [System.Xml.Serialization.XmlElementAttribute("load_combination")] + public System.Collections.Generic.List Load_combination + { + get + { + return _load_combination; + } + set + { + _load_combination = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Load_combinationSpecified + { + get + { + return ((this.Load_combination != null) + && (this.Load_combination.Count != 0)); + } + } + + public Sj_3bars_connection_type() + { + this._load_combination = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Sj_3bars_connection_typeLoad_combination", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Sj_3bars_connection_typeLoad_combination + { + + [System.Xml.Serialization.XmlElementAttribute("bar1_forces")] + public Sj_force_type Bar1_forces { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("bar2_forces")] + public Sj_force_type Bar2_forces { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("bar3_forces")] + public Sj_force_type Bar3_forces { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool @__2nd_order_calculation = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("_2nd_order_calculation")] + public bool _2nd_order_calculation + { + get + { + return @__2nd_order_calculation; + } + set + { + @__2nd_order_calculation = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Sj_3bars_connection_typeLoad_combination() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("steel_joint_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_type + { + + [System.Xml.Serialization.XmlElementAttribute("column_splice_solution1")] + public Steel_joint_typeColumn_splice_solution1 Column_splice_solution1 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("column_splice_solution2")] + public Steel_joint_typeColumn_splice_solution2 Column_splice_solution2 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("column_splice_solution3")] + public Steel_joint_typeColumn_splice_solution3 Column_splice_solution3 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("column_splice_solution4")] + public Steel_joint_typeColumn_splice_solution4 Column_splice_solution4 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("column_splice_solution5")] + public Steel_joint_typeColumn_splice_solution5 Column_splice_solution5 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("column_splice_solution6")] + public Steel_joint_typeColumn_splice_solution6 Column_splice_solution6 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("beam_splice_solution1")] + public Steel_joint_typeBeam_splice_solution1 Beam_splice_solution1 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("beam_splice_solution2")] + public Steel_joint_typeBeam_splice_solution2 Beam_splice_solution2 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("beam_splice_solution3")] + public Steel_joint_typeBeam_splice_solution3 Beam_splice_solution3 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("beam_splice_solution4")] + public Steel_joint_typeBeam_splice_solution4 Beam_splice_solution4 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("beam_splice_solution5")] + public Steel_joint_typeBeam_splice_solution5 Beam_splice_solution5 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("beam_splice_solution6")] + public Steel_joint_typeBeam_splice_solution6 Beam_splice_solution6 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("beam_splice_solution7")] + public Steel_joint_typeBeam_splice_solution7 Beam_splice_solution7 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("column_base_solution1")] + public Steel_joint_typeColumn_base_solution1 Column_base_solution1 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("column_base_solution2")] + public Steel_joint_typeColumn_base_solution2 Column_base_solution2 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("beam_to_beam_solution1")] + public Steel_joint_typeBeam_to_beam_solution1 Beam_to_beam_solution1 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("beam_to_beam_solution2")] + public Steel_joint_typeBeam_to_beam_solution2 Beam_to_beam_solution2 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("beam_to_beam_solution3")] + public Steel_joint_typeBeam_to_beam_solution3 Beam_to_beam_solution3 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("beam_to_beam_solution4")] + public Steel_joint_typeBeam_to_beam_solution4 Beam_to_beam_solution4 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("beam_to_beam_solution5")] + public Steel_joint_typeBeam_to_beam_solution5 Beam_to_beam_solution5 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("beam_to_column_solution1")] + public Steel_joint_typeBeam_to_column_solution1 Beam_to_column_solution1 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("beam_to_column_solution2")] + public Steel_joint_typeBeam_to_column_solution2 Beam_to_column_solution2 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("beam_to_column_solution3")] + public Steel_joint_typeBeam_to_column_solution3 Beam_to_column_solution3 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("beam_to_column_solution4")] + public Steel_joint_typeBeam_to_column_solution4 Beam_to_column_solution4 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("beam_to_column_solution5a")] + public Steel_joint_typeBeam_to_column_solution5a Beam_to_column_solution5a { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("beam_to_column_solution5b")] + public Steel_joint_typeBeam_to_column_solution5b Beam_to_column_solution5b { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("beam_to_column_solution6")] + public Steel_joint_typeBeam_to_column_solution6 Beam_to_column_solution6 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("beam_to_column_solution7")] + public Steel_joint_typeBeam_to_column_solution7 Beam_to_column_solution7 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("beam_to_column_solution8")] + public Steel_joint_typeBeam_to_column_solution8 Beam_to_column_solution8 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("knee_solution1")] + public Steel_joint_typeKnee_solution1 Knee_solution1 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("knee_solution2")] + public Steel_joint_typeKnee_solution2 Knee_solution2 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("knee_solution3")] + public Steel_joint_typeKnee_solution3 Knee_solution3 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("knee_solution4")] + public Steel_joint_typeKnee_solution4 Knee_solution4 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("knee_solution5a")] + public Steel_joint_typeKnee_solution5a Knee_solution5a { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("knee_solution5b")] + public Steel_joint_typeKnee_solution5b Knee_solution5b { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("knee_solution6a")] + public Steel_joint_typeKnee_solution6a Knee_solution6a { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("knee_solution6b")] + public Steel_joint_typeKnee_solution6b Knee_solution6b { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("knee_solution7")] + public Steel_joint_typeKnee_solution7 Knee_solution7 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("knee_solution8")] + public Steel_joint_typeKnee_solution8 Knee_solution8 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("bracing_solution1y")] + public Steel_joint_typeBracing_solution1y Bracing_solution1y { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("bracing_solution1x")] + public Steel_joint_typeBracing_solution1x Bracing_solution1x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("bracing_solution1k")] + public Steel_joint_typeBracing_solution1k Bracing_solution1k { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("bracing_solution2y")] + public Steel_joint_typeBracing_solution2y Bracing_solution2y { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("bracing_solution2x")] + public Steel_joint_typeBracing_solution2x Bracing_solution2x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("bracing_solution2k")] + public Steel_joint_typeBracing_solution2k Bracing_solution2k { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("bracing_solution3y")] + public Steel_joint_typeBracing_solution3y Bracing_solution3y { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("bracing_solution3x")] + public Steel_joint_typeBracing_solution3x Bracing_solution3x { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("bracing_solution3k")] + public Steel_joint_typeBracing_solution3k Bracing_solution3k { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("bracing_solution4")] + public Steel_joint_typeBracing_solution4 Bracing_solution4 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("bracing_solution5")] + public Steel_joint_typeBracing_solution5 Bracing_solution5 { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("bracing_solution6")] + public Steel_joint_typeBracing_solution6 Bracing_solution6 { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _topology; + + [System.Xml.Serialization.XmlArrayAttribute("topology")] + [System.Xml.Serialization.XmlArrayItemAttribute("component", Namespace="urn:strusoft")] + public System.Collections.Generic.List Topology + { + get + { + return _topology; + } + set + { + _topology = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TopologySpecified + { + get + { + return ((this.Topology != null) + && (this.Topology.Count != 0)); + } + } + + public Steel_joint_type() + { + this._topology = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = "SJ"; + + [System.ComponentModel.DefaultValueAttribute("SJ")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _version = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("version")] + public int Version + { + get + { + return _version; + } + set + { + _version = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeColumn_splice_solution1", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeColumn_splice_solution1 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeColumn_splice_solution2", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeColumn_splice_solution2 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeColumn_splice_solution3", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeColumn_splice_solution3 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeColumn_splice_solution4", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeColumn_splice_solution4 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeColumn_splice_solution5", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeColumn_splice_solution5 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeColumn_splice_solution6", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeColumn_splice_solution6 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBeam_splice_solution1", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBeam_splice_solution1 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBeam_splice_solution2", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBeam_splice_solution2 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBeam_splice_solution3", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBeam_splice_solution3 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBeam_splice_solution4", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBeam_splice_solution4 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBeam_splice_solution5", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBeam_splice_solution5 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBeam_splice_solution6", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBeam_splice_solution6 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBeam_splice_solution7", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBeam_splice_solution7 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeColumn_base_solution1", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeColumn_base_solution1 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_1bar_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeColumn_base_solution2", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeColumn_base_solution2 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_1bar_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBeam_to_beam_solution1", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBeam_to_beam_solution1 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBeam_to_beam_solution2", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBeam_to_beam_solution2 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBeam_to_beam_solution3", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBeam_to_beam_solution3 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBeam_to_beam_solution4", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBeam_to_beam_solution4 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_3bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBeam_to_beam_solution5", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBeam_to_beam_solution5 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBeam_to_column_solution1", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBeam_to_column_solution1 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBeam_to_column_solution2", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBeam_to_column_solution2 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBeam_to_column_solution3", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBeam_to_column_solution3 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBeam_to_column_solution4", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBeam_to_column_solution4 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBeam_to_column_solution5a", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBeam_to_column_solution5a + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBeam_to_column_solution5b", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBeam_to_column_solution5b + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_3bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBeam_to_column_solution6", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBeam_to_column_solution6 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_3bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBeam_to_column_solution7", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBeam_to_column_solution7 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBeam_to_column_solution8", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBeam_to_column_solution8 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeKnee_solution1", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeKnee_solution1 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeKnee_solution2", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeKnee_solution2 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeKnee_solution3", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeKnee_solution3 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeKnee_solution4", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeKnee_solution4 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeKnee_solution5a", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeKnee_solution5a + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeKnee_solution5b", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeKnee_solution5b + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeKnee_solution6a", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeKnee_solution6a + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeKnee_solution6b", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeKnee_solution6b + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeKnee_solution7", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeKnee_solution7 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeKnee_solution8", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeKnee_solution8 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBracing_solution1y", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBracing_solution1y + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBracing_solution1x", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBracing_solution1x + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_3bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBracing_solution1k", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBracing_solution1k + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_3bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBracing_solution2y", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBracing_solution2y + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBracing_solution2x", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBracing_solution2x + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_3bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBracing_solution2k", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBracing_solution2k + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_3bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBracing_solution3y", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBracing_solution3y + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_2bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBracing_solution3x", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBracing_solution3x + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_3bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBracing_solution3k", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBracing_solution3k + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_3bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBracing_solution4", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBracing_solution4 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_3bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBracing_solution5", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBracing_solution5 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_3bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Steel_joint_typeBracing_solution6", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Steel_joint_typeBracing_solution6 + { + + [System.Xml.Serialization.XmlElementAttribute("connecting_bars")] + public Sj_3bars_connection_type Connecting_bars { get; set; } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("column_corbel_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Column_corbel_type + { + + [System.Xml.Serialization.XmlElementAttribute("connectable_parts")] + public Three_guid_list_type Connectable_parts { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("connectivity")] + public Connectivity_type Connectivity { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _any; + + [System.Xml.Serialization.XmlAnyElementAttribute()] + public System.Collections.Generic.List Any + { + get + { + return _any; + } + set + { + _any = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnySpecified + { + get + { + return ((this.Any != null) + && (this.Any.Count != 0)); + } + } + + public Column_corbel_type() + { + this._any = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = ""; + + [System.ComponentModel.DefaultValueAttribute("")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("base_column")] + public string Base_column { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("complex_material")] + public string Complex_material { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Steelmadetype _made = StruSoft.Interop.Steelmadetype.Rolled; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Steelmadetype.Rolled)] + [System.Xml.Serialization.XmlAttributeAttribute("made")] + public Steelmadetype Made + { + get + { + return _made; + } + set + { + _made = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("complex_section")] + public string Complex_section { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("pos")] + public double Pos { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("alpha")] + public Quadrant Alpha { get; set; } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Xml.Serialization.XmlAttributeAttribute("d")] + public double DValue { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public bool DValueSpecified { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public System.Nullable D + { + get + { + if (this.DValueSpecified) + { + return this.DValue; + } + else + { + return null; + } + } + set + { + this.DValue = value.GetValueOrDefault(); + this.DValueSpecified = value.HasValue; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("l")] + public double L { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("e")] + public double E { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("x")] + public double X { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("y")] + public double Y { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("wall_corbel_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Wall_corbel_type + { + + [System.Xml.Serialization.XmlElementAttribute("start_point")] + public Point_type_3d Start_point { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("end_point")] + public Point_type_3d End_point { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("connectable_parts")] + public Two_guid_list_type Connectable_parts { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rigidity")] + public Rigidity_data_type3 Rigidity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("predefined_rigidity")] + public Reference_type Predefined_rigidity { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("rigidity_group")] + public Rigidity_group_type3 Rigidity_group { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _any; + + [System.Xml.Serialization.XmlAnyElementAttribute()] + public System.Collections.Generic.List Any + { + get + { + return _any; + } + set + { + _any = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnySpecified + { + get + { + return ((this.Any != null) + && (this.Any.Count != 0)); + } + } + + public Wall_corbel_type() + { + this._any = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = ""; + + [System.ComponentModel.DefaultValueAttribute("")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _positive_side = true; + + [System.ComponentModel.DefaultValueAttribute(true)] + [System.Xml.Serialization.XmlAttributeAttribute("positive_side")] + public bool Positive_side + { + get + { + return _positive_side; + } + set + { + _positive_side = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("l")] + public double L { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("h1")] + public double H1 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("h2")] + public double H2 { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("x")] + public double X { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("base_wall")] + public string Base_wall { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("complex_material")] + public string Complex_material { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("stbar_haunch_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Stbar_haunch_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("base_bar")] + public string Base_bar { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("at_start")] + public bool At_start { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("at_top")] + public bool At_top { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("d")] + public double D { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("l")] + public double L { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("h")] + public double H { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("tw")] + public double Tw { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("tf")] + public double Tf { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("bf")] + public double Bf { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Stbar_haunch_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("stbar_siffener_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Stbar_siffener_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("base_bar")] + public string Base_bar { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("pos")] + public double Pos { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Stbar_siffener_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("roof_type", Namespace="urn:strusoft")] + public enum Roof_type + { + + [System.Xml.Serialization.XmlEnumAttribute("flat")] + Flat, + + [System.Xml.Serialization.XmlEnumAttribute("lean-to")] + Leanto, + + [System.Xml.Serialization.XmlEnumAttribute("ridge")] + Ridge, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("cover_referencelist_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Cover_referencelist_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _ref; + + [System.Xml.Serialization.XmlElementAttribute("ref")] + public System.Collections.Generic.List Ref + { + get + { + return _ref; + } + set + { + _ref = value; + } + } + + public Cover_referencelist_type() + { + this._ref = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Cover_referencelist_typeRef", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Cover_referencelist_typeRef + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _edge; + + [System.Xml.Serialization.XmlElementAttribute("edge")] + public System.Collections.Generic.List Edge + { + get + { + return _edge; + } + set + { + _edge = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool EdgeSpecified + { + get + { + return ((this.Edge != null) + && (this.Edge.Count != 0)); + } + } + + public Cover_referencelist_typeRef() + { + this._edge = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("cover_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Cover_type + { + + [System.Xml.Serialization.XmlElementAttribute("load_bearing_direction")] + public Point_type_3d Load_bearing_direction { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("region")] + public Region_type Region { get; set; } + + public Cover_type() + { + this.Region = new Region_type(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("supporting_structures")] + public Cover_referencelist_type Supporting_structures { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = ""; + + [System.ComponentModel.DefaultValueAttribute("")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("coverlist_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Coverlist_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _cover; + + [System.Xml.Serialization.XmlElementAttribute("cover")] + public System.Collections.Generic.List Cover + { + get + { + return _cover; + } + set + { + _cover = value; + } + } + + public Coverlist_type() + { + this._cover = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("Coverlist_typeCover", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Coverlist_typeCover + { + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private int _stage = 1; + + [System.ComponentModel.DefaultValueAttribute(1)] + [System.Xml.Serialization.XmlAttributeAttribute("stage")] + public int Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _end_stage = "last_stage"; + + [System.ComponentModel.DefaultValueAttribute("last_stage")] + [System.Xml.Serialization.XmlAttributeAttribute("end_stage")] + public string End_stage + { + get + { + return _end_stage; + } + set + { + _end_stage = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Coverlist_typeCover() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("building_cover_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Building_cover_type + { + + [System.Xml.Serialization.XmlElementAttribute("base_rectangle")] + public Rectangle_type Base_rectangle { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("supporting_structures")] + public Referencelist_type Supporting_structures { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _covers; + + [System.Xml.Serialization.XmlArrayAttribute("covers")] + [System.Xml.Serialization.XmlArrayItemAttribute("cover", Namespace="urn:strusoft")] + public System.Collections.Generic.List Covers + { + get + { + return _covers; + } + set + { + _covers = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CoversSpecified + { + get + { + return ((this.Covers != null) + && (this.Covers.Count != 0)); + } + } + + public Building_cover_type() + { + this._covers = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("colouring")] + public Entity_color Colouring { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _name = ""; + + [System.ComponentModel.DefaultValueAttribute("")] + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Roof_type _roof_type = StruSoft.Interop.Roof_type.Flat; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Roof_type.Flat)] + [System.Xml.Serialization.XmlAttributeAttribute("roof_type")] + public Roof_type Roof_type + { + get + { + return _roof_type; + } + set + { + _roof_type = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _h_wall = 6D; + + [System.ComponentModel.DefaultValueAttribute(6D)] + [System.Xml.Serialization.XmlAttributeAttribute("h_wall")] + public double H_wall + { + get + { + return _h_wall; + } + set + { + _h_wall = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _h_roof = 1D; + + [System.ComponentModel.DefaultValueAttribute(1D)] + [System.Xml.Serialization.XmlAttributeAttribute("h_roof")] + public double H_roof + { + get + { + return _h_roof; + } + set + { + _h_roof = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("viewtype", Namespace="urn:strusoft")] + public enum Viewtype + { + + [System.Xml.Serialization.XmlEnumAttribute("2d")] + Item2d, + + [System.Xml.Serialization.XmlEnumAttribute("3d")] + Item3d, + + [System.Xml.Serialization.XmlEnumAttribute("storey")] + Storey, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("displaymodes", Namespace="urn:strusoft")] + public enum Displaymodes + { + + [System.Xml.Serialization.XmlEnumAttribute("wireframe")] + Wireframe, + + [System.Xml.Serialization.XmlEnumAttribute("hidden_line")] + Hidden_line, + + [System.Xml.Serialization.XmlEnumAttribute("shade")] + Shade, + + [System.Xml.Serialization.XmlEnumAttribute("shade_with_edges")] + Shade_with_edges, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("userfilter_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Userfilter_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _members; + + [System.Xml.Serialization.XmlElementAttribute("members")] + public System.Collections.Generic.List Members + { + get + { + return _members; + } + set + { + _members = value; + } + } + + public Userfilter_type() + { + this._members = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("view_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class View_type + { + + [System.Xml.Serialization.XmlElementAttribute("coordinate_system_2d")] + public Untested_localsys_type Coordinate_system_2d { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("coordinate_system_3d")] + public Untested_localsys_type Coordinate_system_3d { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("user_coordinate_system")] + public Untested_localsys_type User_coordinate_system { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("name")] + public string Name { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("scale")] + public double Scale { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("tolerance")] + public double Tolerance { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("type")] + public Viewtype Type { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public View_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("cs_part_type", Namespace="urn:strusoft")] + public enum Cs_part_type + { + + [System.Xml.Serialization.XmlEnumAttribute("only_in_this_stage")] + Only_in_this_stage, + + [System.Xml.Serialization.XmlEnumAttribute("from_this_stage_on")] + From_this_stage_on, + + [System.Xml.Serialization.XmlEnumAttribute("shifted_from_first_stage")] + Shifted_from_first_stage, + + [System.Xml.Serialization.XmlEnumAttribute("only_stage_activated_elem")] + Only_stage_activated_elem, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("sfactor_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Sfactor_type + { + + [System.Xml.Serialization.XmlAttributeAttribute("Sc")] + public double Sc { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Sf")] + public double Sf { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("Sq")] + public double Sq { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Sfactor_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("cs_lc_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Cs_lc_type + { + + [System.Xml.Serialization.XmlElementAttribute("s_factors")] + public Sfactor_type S_factors { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("case")] + public string Case { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("factor")] + public double Factor { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("partitioning")] + public Cs_part_type Partitioning { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + + public Cs_lc_type() + { + this._anyAttribute = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("cs_stage_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Cs_stage_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _activated_load_case; + + [System.Xml.Serialization.XmlElementAttribute("activated_load_case")] + public System.Collections.Generic.List Activated_load_case + { + get + { + return _activated_load_case; + } + set + { + _activated_load_case = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Activated_load_caseSpecified + { + get + { + return ((this.Activated_load_case != null) + && (this.Activated_load_case.Count != 0)); + } + } + + public Cs_stage_type() + { + this._activated_load_case = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("description")] + public string Description { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _initial_stress_state = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("initial_stress_state")] + public bool Initial_stress_state + { + get + { + return _initial_stress_state; + } + set + { + _initial_stress_state = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _day = 0D; + + [System.ComponentModel.DefaultValueAttribute(0D)] + [System.Xml.Serialization.XmlAttributeAttribute("day")] + public double Day + { + get + { + return _day; + } + set + { + _day = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("cs_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Cs_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _stage; + + [System.Xml.Serialization.XmlElementAttribute("stage")] + public System.Collections.Generic.List Stage + { + get + { + return _stage; + } + set + { + _stage = value; + } + } + + public Cs_type() + { + this._stage = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _autoassign_modified_elements = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("auto-assign_modified_elements")] + public bool Autoassign_modified_elements + { + get + { + return _autoassign_modified_elements; + } + set + { + _autoassign_modified_elements = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _autoassign_newly_created_elements = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("auto-assign_newly_created_elements")] + public bool Autoassign_newly_created_elements + { + get + { + return _autoassign_newly_created_elements; + } + set + { + _autoassign_newly_created_elements = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _ghost_method = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("ghost_method")] + public bool Ghost_method + { + get + { + return _ghost_method; + } + set + { + _ghost_method = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _timedependent_analysis = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("time-dependent_analysis")] + public bool Timedependent_analysis + { + get + { + return _timedependent_analysis; + } + set + { + _timedependent_analysis = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private double _creep_strain_increment_limit = 0.25D; + + [System.ComponentModel.DefaultValueAttribute(0.25D)] + [System.Xml.Serialization.XmlAttributeAttribute("creep_strain_increment_limit")] + public double Creep_strain_increment_limit + { + get + { + return _creep_strain_increment_limit; + } + set + { + _creep_strain_increment_limit = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("psr_type", Namespace="urn:strusoft")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class Psr_type + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _contour; + + [System.Xml.Serialization.XmlElementAttribute("contour")] + public System.Collections.Generic.List Contour + { + get + { + return _contour; + } + set + { + _contour = value; + } + } + + public Psr_type() + { + this._contour = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("last_change", DataType="dateTime")] + public System.DateTime Last_change { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("action")] + public Modification_type Action { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _hash_order_id = "-1"; + + [System.ComponentModel.DefaultValueAttribute("-1")] + [System.Xml.Serialization.XmlAttributeAttribute("hash_order_id")] + public string Hash_order_id + { + get + { + return _hash_order_id; + } + set + { + _hash_order_id = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _inactive = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("inactive")] + public bool Inactive + { + get + { + return _inactive; + } + set + { + _inactive = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("database", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlRootAttribute("database", Namespace="urn:strusoft")] + public partial class Database + { + + [System.Xml.Serialization.XmlElementAttribute("construction_stages")] + public Cs_type Construction_stages { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("entities")] + public DatabaseEntities Entities { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("sections")] + public DatabaseSections Sections { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("materials")] + public DatabaseMaterials Materials { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _reinforcing_materials; + + [System.Xml.Serialization.XmlArrayAttribute("reinforcing_materials")] + [System.Xml.Serialization.XmlArrayItemAttribute("material", Namespace="urn:strusoft")] + public System.Collections.Generic.List Reinforcing_materials + { + get + { + return _reinforcing_materials; + } + set + { + _reinforcing_materials = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Reinforcing_materialsSpecified + { + get + { + return ((this.Reinforcing_materials != null) + && (this.Reinforcing_materials.Count != 0)); + } + } + + public Database() + { + this._reinforcing_materials = new System.Collections.Generic.List(); + this._point_connection_types = new System.Collections.Generic.List(); + this._point_support_group_types = new System.Collections.Generic.List(); + this._line_connection_types = new System.Collections.Generic.List(); + this._line_support_group_types = new System.Collections.Generic.List(); + this._surface_connection_types = new System.Collections.Generic.List(); + this._surface_support_types = new System.Collections.Generic.List(); + this._timber_panel_types = new System.Collections.Generic.List(); + this._glc_panel_types = new System.Collections.Generic.List(); + this._clt_panel_types = new System.Collections.Generic.List(); + this._ptc_strand_types = new System.Collections.Generic.List(); + this._vehicle_types = new System.Collections.Generic.List(); + this._bolt_types = new System.Collections.Generic.List(); + this._bar_end_releases_types = new System.Collections.Generic.List(); + this._user_defined_filter = new System.Collections.Generic.List(); + this._any = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("composites")] + public DatabaseComposites Composites { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _point_connection_types; + + [System.Xml.Serialization.XmlArrayAttribute("point_connection_types")] + [System.Xml.Serialization.XmlArrayItemAttribute("predefined_type", Namespace="urn:strusoft")] + public System.Collections.Generic.List Point_connection_types + { + get + { + return _point_connection_types; + } + set + { + _point_connection_types = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Point_connection_typesSpecified + { + get + { + return ((this.Point_connection_types != null) + && (this.Point_connection_types.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _point_support_group_types; + + [System.Xml.Serialization.XmlArrayAttribute("point_support_group_types")] + [System.Xml.Serialization.XmlArrayItemAttribute("predefined_type", Namespace="urn:strusoft")] + public System.Collections.Generic.List Point_support_group_types + { + get + { + return _point_support_group_types; + } + set + { + _point_support_group_types = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Point_support_group_typesSpecified + { + get + { + return ((this.Point_support_group_types != null) + && (this.Point_support_group_types.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _line_connection_types; + + [System.Xml.Serialization.XmlArrayAttribute("line_connection_types")] + [System.Xml.Serialization.XmlArrayItemAttribute("predefined_type", Namespace="urn:strusoft")] + public System.Collections.Generic.List Line_connection_types + { + get + { + return _line_connection_types; + } + set + { + _line_connection_types = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Line_connection_typesSpecified + { + get + { + return ((this.Line_connection_types != null) + && (this.Line_connection_types.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _line_support_group_types; + + [System.Xml.Serialization.XmlArrayAttribute("line_support_group_types")] + [System.Xml.Serialization.XmlArrayItemAttribute("predefined_type", Namespace="urn:strusoft")] + public System.Collections.Generic.List Line_support_group_types + { + get + { + return _line_support_group_types; + } + set + { + _line_support_group_types = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Line_support_group_typesSpecified + { + get + { + return ((this.Line_support_group_types != null) + && (this.Line_support_group_types.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _surface_connection_types; + + [System.Xml.Serialization.XmlArrayAttribute("surface_connection_types")] + [System.Xml.Serialization.XmlArrayItemAttribute("predefined_type", Namespace="urn:strusoft")] + public System.Collections.Generic.List Surface_connection_types + { + get + { + return _surface_connection_types; + } + set + { + _surface_connection_types = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Surface_connection_typesSpecified + { + get + { + return ((this.Surface_connection_types != null) + && (this.Surface_connection_types.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _surface_support_types; + + [System.Xml.Serialization.XmlArrayAttribute("surface_support_types")] + [System.Xml.Serialization.XmlArrayItemAttribute("predefined_type", Namespace="urn:strusoft")] + public System.Collections.Generic.List Surface_support_types + { + get + { + return _surface_support_types; + } + set + { + _surface_support_types = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Surface_support_typesSpecified + { + get + { + return ((this.Surface_support_types != null) + && (this.Surface_support_types.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _timber_panel_types; + + [System.Xml.Serialization.XmlArrayAttribute("timber_panel_types")] + [System.Xml.Serialization.XmlArrayItemAttribute("predefined_type", Namespace="urn:strusoft")] + public System.Collections.Generic.List Timber_panel_types + { + get + { + return _timber_panel_types; + } + set + { + _timber_panel_types = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Timber_panel_typesSpecified + { + get + { + return ((this.Timber_panel_types != null) + && (this.Timber_panel_types.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _glc_panel_types; + + [System.Xml.Serialization.XmlArrayAttribute("glc_panel_types")] + [System.Xml.Serialization.XmlArrayItemAttribute("predefined_type", Namespace="urn:strusoft")] + public System.Collections.Generic.List Glc_panel_types + { + get + { + return _glc_panel_types; + } + set + { + _glc_panel_types = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Glc_panel_typesSpecified + { + get + { + return ((this.Glc_panel_types != null) + && (this.Glc_panel_types.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _clt_panel_types; + + [System.Xml.Serialization.XmlArrayAttribute("clt_panel_types")] + [System.Xml.Serialization.XmlArrayItemAttribute("predefined_type", Namespace="urn:strusoft")] + public System.Collections.Generic.List Clt_panel_types + { + get + { + return _clt_panel_types; + } + set + { + _clt_panel_types = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Clt_panel_typesSpecified + { + get + { + return ((this.Clt_panel_types != null) + && (this.Clt_panel_types.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _ptc_strand_types; + + [System.Xml.Serialization.XmlArrayAttribute("ptc_strand_types")] + [System.Xml.Serialization.XmlArrayItemAttribute("predefined_type", Namespace="urn:strusoft")] + public System.Collections.Generic.List Ptc_strand_types + { + get + { + return _ptc_strand_types; + } + set + { + _ptc_strand_types = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Ptc_strand_typesSpecified + { + get + { + return ((this.Ptc_strand_types != null) + && (this.Ptc_strand_types.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _vehicle_types; + + [System.Xml.Serialization.XmlArrayAttribute("vehicle_types")] + [System.Xml.Serialization.XmlArrayItemAttribute("predefined_type", Namespace="urn:strusoft")] + public System.Collections.Generic.List Vehicle_types + { + get + { + return _vehicle_types; + } + set + { + _vehicle_types = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Vehicle_typesSpecified + { + get + { + return ((this.Vehicle_types != null) + && (this.Vehicle_types.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _bolt_types; + + [System.Xml.Serialization.XmlArrayAttribute("bolt_types")] + [System.Xml.Serialization.XmlArrayItemAttribute("predefined_type", Namespace="urn:strusoft")] + public System.Collections.Generic.List Bolt_types + { + get + { + return _bolt_types; + } + set + { + _bolt_types = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Bolt_typesSpecified + { + get + { + return ((this.Bolt_types != null) + && (this.Bolt_types.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _bar_end_releases_types; + + [System.Xml.Serialization.XmlArrayAttribute("bar_end_releases_types")] + [System.Xml.Serialization.XmlArrayItemAttribute("predefined_type", Namespace="urn:strusoft")] + public System.Collections.Generic.List Bar_end_releases_types + { + get + { + return _bar_end_releases_types; + } + set + { + _bar_end_releases_types = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Bar_end_releases_typesSpecified + { + get + { + return ((this.Bar_end_releases_types != null) + && (this.Bar_end_releases_types.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("geometry")] + public DatabaseGeometry Geometry { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _user_defined_filter; + + [System.Xml.Serialization.XmlElementAttribute("user_defined_filter")] + public System.Collections.Generic.List User_defined_filter + { + get + { + return _user_defined_filter; + } + set + { + _user_defined_filter = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool User_defined_filterSpecified + { + get + { + return ((this.User_defined_filter != null) + && (this.User_defined_filter.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("user_defined_views")] + public DatabaseUser_defined_views User_defined_views { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("end")] + public Empty_type End { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _any; + + [System.Xml.Serialization.XmlAnyElementAttribute()] + public System.Collections.Generic.List Any + { + get + { + return _any; + } + set + { + _any = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnySpecified + { + get + { + return ((this.Any != null) + && (this.Any.Count != 0)); + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("struxml_version")] + public string Struxml_version { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("source_software")] + public string Source_software { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("start_time", DataType="dateTime")] + public System.DateTime Start_time { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("end_time", DataType="dateTime")] + public System.DateTime End_time { get; set; } + + [System.Xml.Serialization.XmlAttributeAttribute("guid")] + public string Guid { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _soil_as_solid = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("soil_as_solid")] + public bool Soil_as_solid + { + get + { + return _soil_as_solid; + } + set + { + _soil_as_solid = value; + } + } + + [System.Xml.Serialization.XmlAttributeAttribute("hash")] + public string Hash { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private string _convertid = "00000000-0000-0000-0000-000000000000"; + + [System.ComponentModel.DefaultValueAttribute("00000000-0000-0000-0000-000000000000")] + [System.Xml.Serialization.XmlAttributeAttribute("convertid")] + public string Convertid + { + get + { + return _convertid; + } + set + { + _convertid = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Standardtype _standard = StruSoft.Interop.Standardtype.EC; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Standardtype.EC)] + [System.Xml.Serialization.XmlAttributeAttribute("standard")] + public Standardtype Standard + { + get + { + return _standard; + } + set + { + _standard = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Eurocodetype _country = StruSoft.Interop.Eurocodetype.Common; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Eurocodetype.Common)] + [System.Xml.Serialization.XmlAttributeAttribute("country")] + public Eurocodetype Country + { + get + { + return _country; + } + set + { + _country = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseEntities", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseEntities + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _foundations; + + [System.Xml.Serialization.XmlElementAttribute("foundations")] + public System.Collections.Generic.List Foundations + { + get + { + return _foundations; + } + set + { + _foundations = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool FoundationsSpecified + { + get + { + return ((this.Foundations != null) + && (this.Foundations.Count != 0)); + } + } + + public DatabaseEntities() + { + this._foundations = new System.Collections.Generic.List(); + this._retaining_wall = new System.Collections.Generic.List(); + this._bar = new System.Collections.Generic.List(); + this._column_corbel = new System.Collections.Generic.List(); + this._steel_bar_haunch = new System.Collections.Generic.List(); + this._steel_bar_stiffener = new System.Collections.Generic.List(); + this._rc_beam_reduction_zone = new System.Collections.Generic.List(); + this._hidden_bar = new System.Collections.Generic.List(); + this._bar_reinforcement = new System.Collections.Generic.List(); + this._slab = new System.Collections.Generic.List(); + this._shell_buckling = new System.Collections.Generic.List(); + this._wall_corbel = new System.Collections.Generic.List(); + this._surface_reinforcement_parameters = new System.Collections.Generic.List(); + this._surface_reinforcement = new System.Collections.Generic.List(); + this._surface_reinforcement_single_by_line = new System.Collections.Generic.List(); + this._surface_reinforcement_single_by_rectangle = new System.Collections.Generic.List(); + this._punching_area = new System.Collections.Generic.List(); + this._punching_area_wall = new System.Collections.Generic.List(); + this._punching_reinforcement = new System.Collections.Generic.List(); + this._noshear_region = new System.Collections.Generic.List(); + this._shear_control_region = new System.Collections.Generic.List(); + this._surface_shear_reinforcement = new System.Collections.Generic.List(); + this._panel = new System.Collections.Generic.List(); + this._posttensioned_cable = new System.Collections.Generic.List(); + this._storeys = new System.Collections.Generic.List(); + this._axes = new System.Collections.Generic.List(); + this._reference_planes = new System.Collections.Generic.List(); + this._labelled_sections_geometry = new System.Collections.Generic.List(); + this._result_points = new System.Collections.Generic.List(); + this._result_lines = new System.Collections.Generic.List(); + this._tsolids = new System.Collections.Generic.List(); + this._peak_smoothing_region = new System.Collections.Generic.List(); + this._regions = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlElementAttribute("soil_elements")] + public DatabaseEntitiesSoil_elements Soil_elements { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _retaining_wall; + + [System.Xml.Serialization.XmlElementAttribute("retaining_wall")] + public System.Collections.Generic.List Retaining_wall + { + get + { + return _retaining_wall; + } + set + { + _retaining_wall = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Retaining_wallSpecified + { + get + { + return ((this.Retaining_wall != null) + && (this.Retaining_wall.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _bar; + + [System.Xml.Serialization.XmlElementAttribute("bar")] + public System.Collections.Generic.List Bar + { + get + { + return _bar; + } + set + { + _bar = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool BarSpecified + { + get + { + return ((this.Bar != null) + && (this.Bar.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _column_corbel; + + [System.Xml.Serialization.XmlElementAttribute("column_corbel")] + public System.Collections.Generic.List Column_corbel + { + get + { + return _column_corbel; + } + set + { + _column_corbel = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Column_corbelSpecified + { + get + { + return ((this.Column_corbel != null) + && (this.Column_corbel.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _steel_bar_haunch; + + [System.Xml.Serialization.XmlElementAttribute("steel_bar_haunch")] + public System.Collections.Generic.List Steel_bar_haunch + { + get + { + return _steel_bar_haunch; + } + set + { + _steel_bar_haunch = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Steel_bar_haunchSpecified + { + get + { + return ((this.Steel_bar_haunch != null) + && (this.Steel_bar_haunch.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _steel_bar_stiffener; + + [System.Xml.Serialization.XmlElementAttribute("steel_bar_stiffener")] + public System.Collections.Generic.List Steel_bar_stiffener + { + get + { + return _steel_bar_stiffener; + } + set + { + _steel_bar_stiffener = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Steel_bar_stiffenerSpecified + { + get + { + return ((this.Steel_bar_stiffener != null) + && (this.Steel_bar_stiffener.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _rc_beam_reduction_zone; + + [System.Xml.Serialization.XmlElementAttribute("rc_beam_reduction_zone")] + public System.Collections.Generic.List Rc_beam_reduction_zone + { + get + { + return _rc_beam_reduction_zone; + } + set + { + _rc_beam_reduction_zone = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Rc_beam_reduction_zoneSpecified + { + get + { + return ((this.Rc_beam_reduction_zone != null) + && (this.Rc_beam_reduction_zone.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _hidden_bar; + + [System.Xml.Serialization.XmlElementAttribute("hidden_bar")] + public System.Collections.Generic.List Hidden_bar + { + get + { + return _hidden_bar; + } + set + { + _hidden_bar = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Hidden_barSpecified + { + get + { + return ((this.Hidden_bar != null) + && (this.Hidden_bar.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _bar_reinforcement; + + [System.Xml.Serialization.XmlElementAttribute("bar_reinforcement")] + public System.Collections.Generic.List Bar_reinforcement + { + get + { + return _bar_reinforcement; + } + set + { + _bar_reinforcement = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Bar_reinforcementSpecified + { + get + { + return ((this.Bar_reinforcement != null) + && (this.Bar_reinforcement.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _slab; + + [System.Xml.Serialization.XmlElementAttribute("slab")] + public System.Collections.Generic.List Slab + { + get + { + return _slab; + } + set + { + _slab = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SlabSpecified + { + get + { + return ((this.Slab != null) + && (this.Slab.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _shell_buckling; + + [System.Xml.Serialization.XmlElementAttribute("shell_buckling")] + public System.Collections.Generic.List Shell_buckling + { + get + { + return _shell_buckling; + } + set + { + _shell_buckling = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Shell_bucklingSpecified + { + get + { + return ((this.Shell_buckling != null) + && (this.Shell_buckling.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _wall_corbel; + + [System.Xml.Serialization.XmlElementAttribute("wall_corbel")] + public System.Collections.Generic.List Wall_corbel + { + get + { + return _wall_corbel; + } + set + { + _wall_corbel = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Wall_corbelSpecified + { + get + { + return ((this.Wall_corbel != null) + && (this.Wall_corbel.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _surface_reinforcement_parameters; + + [System.Xml.Serialization.XmlElementAttribute("surface_reinforcement_parameters")] + public System.Collections.Generic.List Surface_reinforcement_parameters + { + get + { + return _surface_reinforcement_parameters; + } + set + { + _surface_reinforcement_parameters = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Surface_reinforcement_parametersSpecified + { + get + { + return ((this.Surface_reinforcement_parameters != null) + && (this.Surface_reinforcement_parameters.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _surface_reinforcement; + + [System.Xml.Serialization.XmlElementAttribute("surface_reinforcement")] + public System.Collections.Generic.List Surface_reinforcement + { + get + { + return _surface_reinforcement; + } + set + { + _surface_reinforcement = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Surface_reinforcementSpecified + { + get + { + return ((this.Surface_reinforcement != null) + && (this.Surface_reinforcement.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _surface_reinforcement_single_by_line; + + [System.Xml.Serialization.XmlElementAttribute("surface_reinforcement_single_by_line")] + public System.Collections.Generic.List Surface_reinforcement_single_by_line + { + get + { + return _surface_reinforcement_single_by_line; + } + set + { + _surface_reinforcement_single_by_line = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Surface_reinforcement_single_by_lineSpecified + { + get + { + return ((this.Surface_reinforcement_single_by_line != null) + && (this.Surface_reinforcement_single_by_line.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _surface_reinforcement_single_by_rectangle; + + [System.Xml.Serialization.XmlElementAttribute("surface_reinforcement_single_by_rectangle")] + public System.Collections.Generic.List Surface_reinforcement_single_by_rectangle + { + get + { + return _surface_reinforcement_single_by_rectangle; + } + set + { + _surface_reinforcement_single_by_rectangle = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Surface_reinforcement_single_by_rectangleSpecified + { + get + { + return ((this.Surface_reinforcement_single_by_rectangle != null) + && (this.Surface_reinforcement_single_by_rectangle.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _punching_area; + + [System.Xml.Serialization.XmlElementAttribute("punching_area")] + public System.Collections.Generic.List Punching_area + { + get + { + return _punching_area; + } + set + { + _punching_area = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Punching_areaSpecified + { + get + { + return ((this.Punching_area != null) + && (this.Punching_area.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _punching_area_wall; + + [System.Xml.Serialization.XmlElementAttribute("punching_area_wall")] + public System.Collections.Generic.List Punching_area_wall + { + get + { + return _punching_area_wall; + } + set + { + _punching_area_wall = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Punching_area_wallSpecified + { + get + { + return ((this.Punching_area_wall != null) + && (this.Punching_area_wall.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _punching_reinforcement; + + [System.Xml.Serialization.XmlElementAttribute("punching_reinforcement")] + public System.Collections.Generic.List Punching_reinforcement + { + get + { + return _punching_reinforcement; + } + set + { + _punching_reinforcement = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Punching_reinforcementSpecified + { + get + { + return ((this.Punching_reinforcement != null) + && (this.Punching_reinforcement.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _noshear_region; + + [System.Xml.Serialization.XmlElementAttribute("no-shear_region")] + public System.Collections.Generic.List Noshear_region + { + get + { + return _noshear_region; + } + set + { + _noshear_region = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Noshear_regionSpecified + { + get + { + return ((this.Noshear_region != null) + && (this.Noshear_region.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _shear_control_region; + + [System.Xml.Serialization.XmlElementAttribute("shear_control_region")] + public System.Collections.Generic.List Shear_control_region + { + get + { + return _shear_control_region; + } + set + { + _shear_control_region = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Shear_control_regionSpecified + { + get + { + return ((this.Shear_control_region != null) + && (this.Shear_control_region.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _surface_shear_reinforcement; + + [System.Xml.Serialization.XmlElementAttribute("surface_shear_reinforcement")] + public System.Collections.Generic.List Surface_shear_reinforcement + { + get + { + return _surface_shear_reinforcement; + } + set + { + _surface_shear_reinforcement = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Surface_shear_reinforcementSpecified + { + get + { + return ((this.Surface_shear_reinforcement != null) + && (this.Surface_shear_reinforcement.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _panel; + + [System.Xml.Serialization.XmlElementAttribute("panel")] + public System.Collections.Generic.List Panel + { + get + { + return _panel; + } + set + { + _panel = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool PanelSpecified + { + get + { + return ((this.Panel != null) + && (this.Panel.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _posttensioned_cable; + + [System.Xml.Serialization.XmlElementAttribute("post-tensioned_cable")] + public System.Collections.Generic.List Posttensioned_cable + { + get + { + return _posttensioned_cable; + } + set + { + _posttensioned_cable = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Posttensioned_cableSpecified + { + get + { + return ((this.Posttensioned_cable != null) + && (this.Posttensioned_cable.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("loads")] + public DatabaseEntitiesLoads Loads { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("supports")] + public DatabaseEntitiesSupports Supports { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("advanced-fem")] + public DatabaseEntitiesAdvancedfem Advancedfem { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _storeys; + + [System.Xml.Serialization.XmlArrayAttribute("storeys")] + [System.Xml.Serialization.XmlArrayItemAttribute("storey", Namespace="urn:strusoft")] + public System.Collections.Generic.List Storeys + { + get + { + return _storeys; + } + set + { + _storeys = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool StoreysSpecified + { + get + { + return ((this.Storeys != null) + && (this.Storeys.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _axes; + + [System.Xml.Serialization.XmlArrayAttribute("axes")] + [System.Xml.Serialization.XmlArrayItemAttribute("axis", Namespace="urn:strusoft")] + public System.Collections.Generic.List Axes + { + get + { + return _axes; + } + set + { + _axes = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AxesSpecified + { + get + { + return ((this.Axes != null) + && (this.Axes.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _reference_planes; + + [System.Xml.Serialization.XmlArrayAttribute("reference_planes")] + [System.Xml.Serialization.XmlArrayItemAttribute("reference_plane", Namespace="urn:strusoft")] + public System.Collections.Generic.List Reference_planes + { + get + { + return _reference_planes; + } + set + { + _reference_planes = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Reference_planesSpecified + { + get + { + return ((this.Reference_planes != null) + && (this.Reference_planes.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _labelled_sections_geometry; + + [System.Xml.Serialization.XmlArrayAttribute("labelled_sections_geometry")] + [System.Xml.Serialization.XmlArrayItemAttribute("section_geometry", Namespace="urn:strusoft")] + public System.Collections.Generic.List Labelled_sections_geometry + { + get + { + return _labelled_sections_geometry; + } + set + { + _labelled_sections_geometry = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Labelled_sections_geometrySpecified + { + get + { + return ((this.Labelled_sections_geometry != null) + && (this.Labelled_sections_geometry.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _result_points; + + [System.Xml.Serialization.XmlArrayAttribute("result_points")] + [System.Xml.Serialization.XmlArrayItemAttribute("result_point", Namespace="urn:strusoft")] + public System.Collections.Generic.List Result_points + { + get + { + return _result_points; + } + set + { + _result_points = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Result_pointsSpecified + { + get + { + return ((this.Result_points != null) + && (this.Result_points.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _result_lines; + + [System.Xml.Serialization.XmlArrayAttribute("result_lines")] + [System.Xml.Serialization.XmlArrayItemAttribute("result_line", Namespace="urn:strusoft")] + public System.Collections.Generic.List Result_lines + { + get + { + return _result_lines; + } + set + { + _result_lines = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Result_linesSpecified + { + get + { + return ((this.Result_lines != null) + && (this.Result_lines.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _tsolids; + + [System.Xml.Serialization.XmlArrayAttribute("tsolids")] + [System.Xml.Serialization.XmlArrayItemAttribute("polyhedron", Namespace="urn:strusoft")] + public System.Collections.Generic.List Tsolids + { + get + { + return _tsolids; + } + set + { + _tsolids = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TsolidsSpecified + { + get + { + return ((this.Tsolids != null) + && (this.Tsolids.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _peak_smoothing_region; + + [System.Xml.Serialization.XmlElementAttribute("peak_smoothing_region")] + public System.Collections.Generic.List Peak_smoothing_region + { + get + { + return _peak_smoothing_region; + } + set + { + _peak_smoothing_region = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Peak_smoothing_regionSpecified + { + get + { + return ((this.Peak_smoothing_region != null) + && (this.Peak_smoothing_region.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _regions; + + [System.Xml.Serialization.XmlArrayAttribute("regions")] + [System.Xml.Serialization.XmlArrayItemAttribute("region", Namespace="urn:strusoft")] + public System.Collections.Generic.List Regions + { + get + { + return _regions; + } + set + { + _regions = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RegionsSpecified + { + get + { + return ((this.Regions != null) + && (this.Regions.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseEntitiesSoil_elements", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseEntitiesSoil_elements + { + + [System.Xml.Serialization.XmlElementAttribute("strata")] + public Strata_type Strata { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _borehole; + + [System.Xml.Serialization.XmlElementAttribute("borehole")] + public System.Collections.Generic.List Borehole + { + get + { + return _borehole; + } + set + { + _borehole = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool BoreholeSpecified + { + get + { + return ((this.Borehole != null) + && (this.Borehole.Count != 0)); + } + } + + public DatabaseEntitiesSoil_elements() + { + this._borehole = new System.Collections.Generic.List(); + this._filling = new System.Collections.Generic.List(); + this._excavation = new System.Collections.Generic.List(); + this._pile = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _filling; + + [System.Xml.Serialization.XmlElementAttribute("filling")] + public System.Collections.Generic.List Filling + { + get + { + return _filling; + } + set + { + _filling = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool FillingSpecified + { + get + { + return ((this.Filling != null) + && (this.Filling.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _excavation; + + [System.Xml.Serialization.XmlElementAttribute("excavation")] + public System.Collections.Generic.List Excavation + { + get + { + return _excavation; + } + set + { + _excavation = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ExcavationSpecified + { + get + { + return ((this.Excavation != null) + && (this.Excavation.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _pile; + + [System.Xml.Serialization.XmlElementAttribute("pile")] + public System.Collections.Generic.List Pile + { + get + { + return _pile; + } + set + { + _pile = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool PileSpecified + { + get + { + return ((this.Pile != null) + && (this.Pile.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseEntitiesLoads", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseEntitiesLoads + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _point_load; + + [System.Xml.Serialization.XmlElementAttribute("point_load")] + public System.Collections.Generic.List Point_load + { + get + { + return _point_load; + } + set + { + _point_load = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Point_loadSpecified + { + get + { + return ((this.Point_load != null) + && (this.Point_load.Count != 0)); + } + } + + public DatabaseEntitiesLoads() + { + this._point_load = new System.Collections.Generic.List(); + this._line_load = new System.Collections.Generic.List(); + this._pressure_load = new System.Collections.Generic.List(); + this._surface_load = new System.Collections.Generic.List(); + this._line_temperature_variation_load = new System.Collections.Generic.List(); + this._surface_temperature_variation_load = new System.Collections.Generic.List(); + this._line_stress_load = new System.Collections.Generic.List(); + this._surface_stress_load = new System.Collections.Generic.List(); + this._point_support_motion_load = new System.Collections.Generic.List(); + this._line_support_motion_load = new System.Collections.Generic.List(); + this._surface_support_motion_load = new System.Collections.Generic.List(); + this._mass = new System.Collections.Generic.List(); + this._footfall_analysis_data = new System.Collections.Generic.List(); + this._moving_load = new System.Collections.Generic.List(); + this._load_case = new System.Collections.Generic.List(); + this._load_combination = new System.Collections.Generic.List(); + this._wind_loads_external_wall = new System.Collections.Generic.List(); + this._wind_loads_flat_roof = new System.Collections.Generic.List(); + this._wind_loads_leanto = new System.Collections.Generic.List(); + this._wind_loads_ridge_roof = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _line_load; + + [System.Xml.Serialization.XmlElementAttribute("line_load")] + public System.Collections.Generic.List Line_load + { + get + { + return _line_load; + } + set + { + _line_load = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Line_loadSpecified + { + get + { + return ((this.Line_load != null) + && (this.Line_load.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _pressure_load; + + [System.Xml.Serialization.XmlElementAttribute("pressure_load")] + public System.Collections.Generic.List Pressure_load + { + get + { + return _pressure_load; + } + set + { + _pressure_load = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Pressure_loadSpecified + { + get + { + return ((this.Pressure_load != null) + && (this.Pressure_load.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _surface_load; + + [System.Xml.Serialization.XmlElementAttribute("surface_load")] + public System.Collections.Generic.List Surface_load + { + get + { + return _surface_load; + } + set + { + _surface_load = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Surface_loadSpecified + { + get + { + return ((this.Surface_load != null) + && (this.Surface_load.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _line_temperature_variation_load; + + [System.Xml.Serialization.XmlElementAttribute("line_temperature_variation_load")] + public System.Collections.Generic.List Line_temperature_variation_load + { + get + { + return _line_temperature_variation_load; + } + set + { + _line_temperature_variation_load = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Line_temperature_variation_loadSpecified + { + get + { + return ((this.Line_temperature_variation_load != null) + && (this.Line_temperature_variation_load.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _surface_temperature_variation_load; + + [System.Xml.Serialization.XmlElementAttribute("surface_temperature_variation_load")] + public System.Collections.Generic.List Surface_temperature_variation_load + { + get + { + return _surface_temperature_variation_load; + } + set + { + _surface_temperature_variation_load = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Surface_temperature_variation_loadSpecified + { + get + { + return ((this.Surface_temperature_variation_load != null) + && (this.Surface_temperature_variation_load.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _line_stress_load; + + [System.Xml.Serialization.XmlElementAttribute("line_stress_load")] + public System.Collections.Generic.List Line_stress_load + { + get + { + return _line_stress_load; + } + set + { + _line_stress_load = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Line_stress_loadSpecified + { + get + { + return ((this.Line_stress_load != null) + && (this.Line_stress_load.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _surface_stress_load; + + [System.Xml.Serialization.XmlElementAttribute("surface_stress_load")] + public System.Collections.Generic.List Surface_stress_load + { + get + { + return _surface_stress_load; + } + set + { + _surface_stress_load = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Surface_stress_loadSpecified + { + get + { + return ((this.Surface_stress_load != null) + && (this.Surface_stress_load.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _point_support_motion_load; + + [System.Xml.Serialization.XmlElementAttribute("point_support_motion_load")] + public System.Collections.Generic.List Point_support_motion_load + { + get + { + return _point_support_motion_load; + } + set + { + _point_support_motion_load = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Point_support_motion_loadSpecified + { + get + { + return ((this.Point_support_motion_load != null) + && (this.Point_support_motion_load.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _line_support_motion_load; + + [System.Xml.Serialization.XmlElementAttribute("line_support_motion_load")] + public System.Collections.Generic.List Line_support_motion_load + { + get + { + return _line_support_motion_load; + } + set + { + _line_support_motion_load = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Line_support_motion_loadSpecified + { + get + { + return ((this.Line_support_motion_load != null) + && (this.Line_support_motion_load.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _surface_support_motion_load; + + [System.Xml.Serialization.XmlElementAttribute("surface_support_motion_load")] + public System.Collections.Generic.List Surface_support_motion_load + { + get + { + return _surface_support_motion_load; + } + set + { + _surface_support_motion_load = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Surface_support_motion_loadSpecified + { + get + { + return ((this.Surface_support_motion_load != null) + && (this.Surface_support_motion_load.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _mass; + + [System.Xml.Serialization.XmlElementAttribute("mass")] + public System.Collections.Generic.List Mass + { + get + { + return _mass; + } + set + { + _mass = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool MassSpecified + { + get + { + return ((this.Mass != null) + && (this.Mass.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("load_case_mass_conversion_table")] + public Mass_conversion_type Load_case_mass_conversion_table { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("seismic_load")] + public Seismic_load_type Seismic_load { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _footfall_analysis_data; + + [System.Xml.Serialization.XmlElementAttribute("footfall_analysis_data")] + public System.Collections.Generic.List Footfall_analysis_data + { + get + { + return _footfall_analysis_data; + } + set + { + _footfall_analysis_data = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Footfall_analysis_dataSpecified + { + get + { + return ((this.Footfall_analysis_data != null) + && (this.Footfall_analysis_data.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("ground_acceleration")] + public Ground_acceleration_type Ground_acceleration { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("excitation_force")] + public Excitation_force_type Excitation_force { get; set; } + + [System.Xml.Serialization.XmlElementAttribute("periodic_excitation")] + public Periodic_excitation_type Periodic_excitation { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _moving_load; + + [System.Xml.Serialization.XmlElementAttribute("moving_load")] + public System.Collections.Generic.List Moving_load + { + get + { + return _moving_load; + } + set + { + _moving_load = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Moving_loadSpecified + { + get + { + return ((this.Moving_load != null) + && (this.Moving_load.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _load_case; + + [System.Xml.Serialization.XmlElementAttribute("load_case")] + public System.Collections.Generic.List Load_case + { + get + { + return _load_case; + } + set + { + _load_case = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Load_caseSpecified + { + get + { + return ((this.Load_case != null) + && (this.Load_case.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _load_combination; + + [System.Xml.Serialization.XmlElementAttribute("load_combination")] + public System.Collections.Generic.List Load_combination + { + get + { + return _load_combination; + } + set + { + _load_combination = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Load_combinationSpecified + { + get + { + return ((this.Load_combination != null) + && (this.Load_combination.Count != 0)); + } + } + + [System.Xml.Serialization.XmlElementAttribute("load_group_table")] + public Load_group_table Load_group_table { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _wind_loads_external_wall; + + [System.Xml.Serialization.XmlElementAttribute("wind_loads_external_wall")] + public System.Collections.Generic.List Wind_loads_external_wall + { + get + { + return _wind_loads_external_wall; + } + set + { + _wind_loads_external_wall = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Wind_loads_external_wallSpecified + { + get + { + return ((this.Wind_loads_external_wall != null) + && (this.Wind_loads_external_wall.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _wind_loads_flat_roof; + + [System.Xml.Serialization.XmlElementAttribute("wind_loads_flat_roof")] + public System.Collections.Generic.List Wind_loads_flat_roof + { + get + { + return _wind_loads_flat_roof; + } + set + { + _wind_loads_flat_roof = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Wind_loads_flat_roofSpecified + { + get + { + return ((this.Wind_loads_flat_roof != null) + && (this.Wind_loads_flat_roof.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _wind_loads_leanto; + + [System.Xml.Serialization.XmlElementAttribute("wind_loads_lean-to")] + public System.Collections.Generic.List Wind_loads_leanto + { + get + { + return _wind_loads_leanto; + } + set + { + _wind_loads_leanto = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Wind_loads_leantoSpecified + { + get + { + return ((this.Wind_loads_leanto != null) + && (this.Wind_loads_leanto.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _wind_loads_ridge_roof; + + [System.Xml.Serialization.XmlElementAttribute("wind_loads_ridge_roof")] + public System.Collections.Generic.List Wind_loads_ridge_roof + { + get + { + return _wind_loads_ridge_roof; + } + set + { + _wind_loads_ridge_roof = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Wind_loads_ridge_roofSpecified + { + get + { + return ((this.Wind_loads_ridge_roof != null) + && (this.Wind_loads_ridge_roof.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseEntitiesSupports", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseEntitiesSupports + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _point_support; + + [System.Xml.Serialization.XmlElementAttribute("point_support")] + public System.Collections.Generic.List Point_support + { + get + { + return _point_support; + } + set + { + _point_support = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Point_supportSpecified + { + get + { + return ((this.Point_support != null) + && (this.Point_support.Count != 0)); + } + } + + public DatabaseEntitiesSupports() + { + this._point_support = new System.Collections.Generic.List(); + this._line_support = new System.Collections.Generic.List(); + this._surface_support = new System.Collections.Generic.List(); + this._stiffness_point = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _line_support; + + [System.Xml.Serialization.XmlElementAttribute("line_support")] + public System.Collections.Generic.List Line_support + { + get + { + return _line_support; + } + set + { + _line_support = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Line_supportSpecified + { + get + { + return ((this.Line_support != null) + && (this.Line_support.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _surface_support; + + [System.Xml.Serialization.XmlElementAttribute("surface_support")] + public System.Collections.Generic.List Surface_support + { + get + { + return _surface_support; + } + set + { + _surface_support = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Surface_supportSpecified + { + get + { + return ((this.Surface_support != null) + && (this.Surface_support.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _stiffness_point; + + [System.Xml.Serialization.XmlElementAttribute("stiffness_point")] + public System.Collections.Generic.List Stiffness_point + { + get + { + return _stiffness_point; + } + set + { + _stiffness_point = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Stiffness_pointSpecified + { + get + { + return ((this.Stiffness_point != null) + && (this.Stiffness_point.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseEntitiesAdvancedfem", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseEntitiesAdvancedfem + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _connected_points; + + [System.Xml.Serialization.XmlElementAttribute("connected_points")] + public System.Collections.Generic.List Connected_points + { + get + { + return _connected_points; + } + set + { + _connected_points = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Connected_pointsSpecified + { + get + { + return ((this.Connected_points != null) + && (this.Connected_points.Count != 0)); + } + } + + public DatabaseEntitiesAdvancedfem() + { + this._connected_points = new System.Collections.Generic.List(); + this._connected_lines = new System.Collections.Generic.List(); + this._surface_connection = new System.Collections.Generic.List(); + this._virtual_bar = new System.Collections.Generic.List(); + this._virtual_shell = new System.Collections.Generic.List(); + this._diaphragm = new System.Collections.Generic.List(); + this._steel_joint = new System.Collections.Generic.List(); + this._general_steel_joint = new System.Collections.Generic.List(); + this._cover = new System.Collections.Generic.List(); + this._building_cover = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _connected_lines; + + [System.Xml.Serialization.XmlElementAttribute("connected_lines")] + public System.Collections.Generic.List Connected_lines + { + get + { + return _connected_lines; + } + set + { + _connected_lines = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Connected_linesSpecified + { + get + { + return ((this.Connected_lines != null) + && (this.Connected_lines.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _surface_connection; + + [System.Xml.Serialization.XmlElementAttribute("surface_connection")] + public System.Collections.Generic.List Surface_connection + { + get + { + return _surface_connection; + } + set + { + _surface_connection = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Surface_connectionSpecified + { + get + { + return ((this.Surface_connection != null) + && (this.Surface_connection.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _virtual_bar; + + [System.Xml.Serialization.XmlElementAttribute("virtual_bar")] + public System.Collections.Generic.List Virtual_bar + { + get + { + return _virtual_bar; + } + set + { + _virtual_bar = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Virtual_barSpecified + { + get + { + return ((this.Virtual_bar != null) + && (this.Virtual_bar.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _virtual_shell; + + [System.Xml.Serialization.XmlElementAttribute("virtual_shell")] + public System.Collections.Generic.List Virtual_shell + { + get + { + return _virtual_shell; + } + set + { + _virtual_shell = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Virtual_shellSpecified + { + get + { + return ((this.Virtual_shell != null) + && (this.Virtual_shell.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _diaphragm; + + [System.Xml.Serialization.XmlElementAttribute("diaphragm")] + public System.Collections.Generic.List Diaphragm + { + get + { + return _diaphragm; + } + set + { + _diaphragm = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool DiaphragmSpecified + { + get + { + return ((this.Diaphragm != null) + && (this.Diaphragm.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _steel_joint; + + [System.Xml.Serialization.XmlElementAttribute("steel_joint")] + public System.Collections.Generic.List Steel_joint + { + get + { + return _steel_joint; + } + set + { + _steel_joint = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Steel_jointSpecified + { + get + { + return ((this.Steel_joint != null) + && (this.Steel_joint.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _general_steel_joint; + + [System.Xml.Serialization.XmlElementAttribute("general_steel_joint")] + public System.Collections.Generic.List General_steel_joint + { + get + { + return _general_steel_joint; + } + set + { + _general_steel_joint = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool General_steel_jointSpecified + { + get + { + return ((this.General_steel_joint != null) + && (this.General_steel_joint.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _cover; + + [System.Xml.Serialization.XmlElementAttribute("cover")] + public System.Collections.Generic.List Cover + { + get + { + return _cover; + } + set + { + _cover = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CoverSpecified + { + get + { + return ((this.Cover != null) + && (this.Cover.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _building_cover; + + [System.Xml.Serialization.XmlElementAttribute("building_cover")] + public System.Collections.Generic.List Building_cover + { + get + { + return _building_cover; + } + set + { + _building_cover = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Building_coverSpecified + { + get + { + return ((this.Building_cover != null) + && (this.Building_cover.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseEntitiesStoreys", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseEntitiesStoreys + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _storey; + + [System.Xml.Serialization.XmlElementAttribute("storey")] + public System.Collections.Generic.List Storey + { + get + { + return _storey; + } + set + { + _storey = value; + } + } + + public DatabaseEntitiesStoreys() + { + this._storey = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseEntitiesAxes", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseEntitiesAxes + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _axis; + + [System.Xml.Serialization.XmlElementAttribute("axis")] + public System.Collections.Generic.List Axis + { + get + { + return _axis; + } + set + { + _axis = value; + } + } + + public DatabaseEntitiesAxes() + { + this._axis = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseEntitiesReference_planes", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseEntitiesReference_planes + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _reference_plane; + + [System.Xml.Serialization.XmlElementAttribute("reference_plane")] + public System.Collections.Generic.List Reference_plane + { + get + { + return _reference_plane; + } + set + { + _reference_plane = value; + } + } + + public DatabaseEntitiesReference_planes() + { + this._reference_plane = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseEntitiesLabelled_sections_geometry", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseEntitiesLabelled_sections_geometry + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _section_geometry; + + [System.Xml.Serialization.XmlElementAttribute("section_geometry")] + public System.Collections.Generic.List Section_geometry + { + get + { + return _section_geometry; + } + set + { + _section_geometry = value; + } + } + + public DatabaseEntitiesLabelled_sections_geometry() + { + this._section_geometry = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseEntitiesResult_points", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseEntitiesResult_points + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _result_point; + + [System.Xml.Serialization.XmlElementAttribute("result_point")] + public System.Collections.Generic.List Result_point + { + get + { + return _result_point; + } + set + { + _result_point = value; + } + } + + public DatabaseEntitiesResult_points() + { + this._result_point = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseEntitiesResult_lines", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseEntitiesResult_lines + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _result_line; + + [System.Xml.Serialization.XmlElementAttribute("result_line")] + public System.Collections.Generic.List Result_line + { + get + { + return _result_line; + } + set + { + _result_line = value; + } + } + + public DatabaseEntitiesResult_lines() + { + this._result_line = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseEntitiesTsolids", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseEntitiesTsolids + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _polyhedron; + + [System.Xml.Serialization.XmlElementAttribute("polyhedron")] + public System.Collections.Generic.List Polyhedron + { + get + { + return _polyhedron; + } + set + { + _polyhedron = value; + } + } + + public DatabaseEntitiesTsolids() + { + this._polyhedron = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseEntitiesRegions", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseEntitiesRegions + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _region; + + [System.Xml.Serialization.XmlElementAttribute("region")] + public System.Collections.Generic.List Region + { + get + { + return _region; + } + set + { + _region = value; + } + } + + public DatabaseEntitiesRegions() + { + this._region = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseSections", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseSections + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _section; + + [System.Xml.Serialization.XmlElementAttribute("section")] + public System.Collections.Generic.List Section + { + get + { + return _section; + } + set + { + _section = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SectionSpecified + { + get + { + return ((this.Section != null) + && (this.Section.Count != 0)); + } + } + + public DatabaseSections() + { + this._section = new System.Collections.Generic.List(); + this._complex_section = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _complex_section; + + [System.Xml.Serialization.XmlElementAttribute("complex_section")] + public System.Collections.Generic.List Complex_section + { + get + { + return _complex_section; + } + set + { + _complex_section = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Complex_sectionSpecified + { + get + { + return ((this.Complex_section != null) + && (this.Complex_section.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseMaterials", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseMaterials + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _material; + + [System.Xml.Serialization.XmlElementAttribute("material")] + public System.Collections.Generic.List Material + { + get + { + return _material; + } + set + { + _material = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool MaterialSpecified + { + get + { + return ((this.Material != null) + && (this.Material.Count != 0)); + } + } + + public DatabaseMaterials() + { + this._material = new System.Collections.Generic.List(); + this._complex_material = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _complex_material; + + [System.Xml.Serialization.XmlElementAttribute("complex_material")] + public System.Collections.Generic.List Complex_material + { + get + { + return _complex_material; + } + set + { + _complex_material = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Complex_materialSpecified + { + get + { + return ((this.Complex_material != null) + && (this.Complex_material.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseReinforcing_materials", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseReinforcing_materials + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _material; + + [System.Xml.Serialization.XmlElementAttribute("material")] + public System.Collections.Generic.List Material + { + get + { + return _material; + } + set + { + _material = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool MaterialSpecified + { + get + { + return ((this.Material != null) + && (this.Material.Count != 0)); + } + } + + public DatabaseReinforcing_materials() + { + this._material = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseComposites", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseComposites + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _composite_section; + + [System.Xml.Serialization.XmlElementAttribute("composite_section")] + public System.Collections.Generic.List Composite_section + { + get + { + return _composite_section; + } + set + { + _composite_section = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Composite_sectionSpecified + { + get + { + return ((this.Composite_section != null) + && (this.Composite_section.Count != 0)); + } + } + + public DatabaseComposites() + { + this._composite_section = new System.Collections.Generic.List(); + this._complex_composite = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _complex_composite; + + [System.Xml.Serialization.XmlElementAttribute("complex_composite")] + public System.Collections.Generic.List Complex_composite + { + get + { + return _complex_composite; + } + set + { + _complex_composite = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Complex_compositeSpecified + { + get + { + return ((this.Complex_composite != null) + && (this.Complex_composite.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabasePoint_connection_types", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabasePoint_connection_types + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _predefined_type; + + [System.Xml.Serialization.XmlElementAttribute("predefined_type")] + public System.Collections.Generic.List Predefined_type + { + get + { + return _predefined_type; + } + set + { + _predefined_type = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Predefined_typeSpecified + { + get + { + return ((this.Predefined_type != null) + && (this.Predefined_type.Count != 0)); + } + } + + public DatabasePoint_connection_types() + { + this._predefined_type = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabasePoint_support_group_types", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabasePoint_support_group_types + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _predefined_type; + + [System.Xml.Serialization.XmlElementAttribute("predefined_type")] + public System.Collections.Generic.List Predefined_type + { + get + { + return _predefined_type; + } + set + { + _predefined_type = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Predefined_typeSpecified + { + get + { + return ((this.Predefined_type != null) + && (this.Predefined_type.Count != 0)); + } + } + + public DatabasePoint_support_group_types() + { + this._predefined_type = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseLine_connection_types", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseLine_connection_types + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _predefined_type; + + [System.Xml.Serialization.XmlElementAttribute("predefined_type")] + public System.Collections.Generic.List Predefined_type + { + get + { + return _predefined_type; + } + set + { + _predefined_type = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Predefined_typeSpecified + { + get + { + return ((this.Predefined_type != null) + && (this.Predefined_type.Count != 0)); + } + } + + public DatabaseLine_connection_types() + { + this._predefined_type = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseLine_support_group_types", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseLine_support_group_types + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _predefined_type; + + [System.Xml.Serialization.XmlElementAttribute("predefined_type")] + public System.Collections.Generic.List Predefined_type + { + get + { + return _predefined_type; + } + set + { + _predefined_type = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Predefined_typeSpecified + { + get + { + return ((this.Predefined_type != null) + && (this.Predefined_type.Count != 0)); + } + } + + public DatabaseLine_support_group_types() + { + this._predefined_type = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseSurface_connection_types", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseSurface_connection_types + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _predefined_type; + + [System.Xml.Serialization.XmlElementAttribute("predefined_type")] + public System.Collections.Generic.List Predefined_type + { + get + { + return _predefined_type; + } + set + { + _predefined_type = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Predefined_typeSpecified + { + get + { + return ((this.Predefined_type != null) + && (this.Predefined_type.Count != 0)); + } + } + + public DatabaseSurface_connection_types() + { + this._predefined_type = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseSurface_support_types", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseSurface_support_types + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _predefined_type; + + [System.Xml.Serialization.XmlElementAttribute("predefined_type")] + public System.Collections.Generic.List Predefined_type + { + get + { + return _predefined_type; + } + set + { + _predefined_type = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Predefined_typeSpecified + { + get + { + return ((this.Predefined_type != null) + && (this.Predefined_type.Count != 0)); + } + } + + public DatabaseSurface_support_types() + { + this._predefined_type = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseTimber_panel_types", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseTimber_panel_types + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _predefined_type; + + [System.Xml.Serialization.XmlElementAttribute("predefined_type")] + public System.Collections.Generic.List Predefined_type + { + get + { + return _predefined_type; + } + set + { + _predefined_type = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Predefined_typeSpecified + { + get + { + return ((this.Predefined_type != null) + && (this.Predefined_type.Count != 0)); + } + } + + public DatabaseTimber_panel_types() + { + this._predefined_type = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseGlc_panel_types", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseGlc_panel_types + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _predefined_type; + + [System.Xml.Serialization.XmlElementAttribute("predefined_type")] + public System.Collections.Generic.List Predefined_type + { + get + { + return _predefined_type; + } + set + { + _predefined_type = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Predefined_typeSpecified + { + get + { + return ((this.Predefined_type != null) + && (this.Predefined_type.Count != 0)); + } + } + + public DatabaseGlc_panel_types() + { + this._predefined_type = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseClt_panel_types", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseClt_panel_types + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _predefined_type; + + [System.Xml.Serialization.XmlElementAttribute("predefined_type")] + public System.Collections.Generic.List Predefined_type + { + get + { + return _predefined_type; + } + set + { + _predefined_type = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Predefined_typeSpecified + { + get + { + return ((this.Predefined_type != null) + && (this.Predefined_type.Count != 0)); + } + } + + public DatabaseClt_panel_types() + { + this._predefined_type = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabasePtc_strand_types", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabasePtc_strand_types + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _predefined_type; + + [System.Xml.Serialization.XmlElementAttribute("predefined_type")] + public System.Collections.Generic.List Predefined_type + { + get + { + return _predefined_type; + } + set + { + _predefined_type = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Predefined_typeSpecified + { + get + { + return ((this.Predefined_type != null) + && (this.Predefined_type.Count != 0)); + } + } + + public DatabasePtc_strand_types() + { + this._predefined_type = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseVehicle_types", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseVehicle_types + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _predefined_type; + + [System.Xml.Serialization.XmlElementAttribute("predefined_type")] + public System.Collections.Generic.List Predefined_type + { + get + { + return _predefined_type; + } + set + { + _predefined_type = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Predefined_typeSpecified + { + get + { + return ((this.Predefined_type != null) + && (this.Predefined_type.Count != 0)); + } + } + + public DatabaseVehicle_types() + { + this._predefined_type = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseBolt_types", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseBolt_types + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _predefined_type; + + [System.Xml.Serialization.XmlElementAttribute("predefined_type")] + public System.Collections.Generic.List Predefined_type + { + get + { + return _predefined_type; + } + set + { + _predefined_type = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Predefined_typeSpecified + { + get + { + return ((this.Predefined_type != null) + && (this.Predefined_type.Count != 0)); + } + } + + public DatabaseBolt_types() + { + this._predefined_type = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseBar_end_releases_types", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseBar_end_releases_types + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _predefined_type; + + [System.Xml.Serialization.XmlElementAttribute("predefined_type")] + public System.Collections.Generic.List Predefined_type + { + get + { + return _predefined_type; + } + set + { + _predefined_type = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Predefined_typeSpecified + { + get + { + return ((this.Predefined_type != null) + && (this.Predefined_type.Count != 0)); + } + } + + public DatabaseBar_end_releases_types() + { + this._predefined_type = new System.Collections.Generic.List(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseGeometry", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseGeometry + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _curve; + + [System.Xml.Serialization.XmlElementAttribute("curve")] + public System.Collections.Generic.List Curve + { + get + { + return _curve; + } + set + { + _curve = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CurveSpecified + { + get + { + return ((this.Curve != null) + && (this.Curve.Count != 0)); + } + } + + public DatabaseGeometry() + { + this._curve = new System.Collections.Generic.List(); + this._point = new System.Collections.Generic.List(); + this._region = new System.Collections.Generic.List(); + this._solid = new System.Collections.Generic.List(); + this._text = new System.Collections.Generic.List(); + this._linear_dimension = new System.Collections.Generic.List(); + this._arc_dimension = new System.Collections.Generic.List(); + this._diameter_dimension = new System.Collections.Generic.List(); + this._radius_dimension = new System.Collections.Generic.List(); + this._angle_dimension = new System.Collections.Generic.List(); + this._level_dimension = new System.Collections.Generic.List(); + this._line_type = new System.Collections.Generic.List(); + this._layer = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _point; + + [System.Xml.Serialization.XmlElementAttribute("point")] + public System.Collections.Generic.List Point + { + get + { + return _point; + } + set + { + _point = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool PointSpecified + { + get + { + return ((this.Point != null) + && (this.Point.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _region; + + [System.Xml.Serialization.XmlElementAttribute("region")] + public System.Collections.Generic.List Region + { + get + { + return _region; + } + set + { + _region = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RegionSpecified + { + get + { + return ((this.Region != null) + && (this.Region.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _solid; + + [System.Xml.Serialization.XmlElementAttribute("solid")] + public System.Collections.Generic.List Solid + { + get + { + return _solid; + } + set + { + _solid = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SolidSpecified + { + get + { + return ((this.Solid != null) + && (this.Solid.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _text; + + [System.Xml.Serialization.XmlElementAttribute("text")] + public System.Collections.Generic.List Text + { + get + { + return _text; + } + set + { + _text = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TextSpecified + { + get + { + return ((this.Text != null) + && (this.Text.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _linear_dimension; + + [System.Xml.Serialization.XmlElementAttribute("linear_dimension")] + public System.Collections.Generic.List Linear_dimension + { + get + { + return _linear_dimension; + } + set + { + _linear_dimension = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Linear_dimensionSpecified + { + get + { + return ((this.Linear_dimension != null) + && (this.Linear_dimension.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _arc_dimension; + + [System.Xml.Serialization.XmlElementAttribute("arc_dimension")] + public System.Collections.Generic.List Arc_dimension + { + get + { + return _arc_dimension; + } + set + { + _arc_dimension = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Arc_dimensionSpecified + { + get + { + return ((this.Arc_dimension != null) + && (this.Arc_dimension.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _diameter_dimension; + + [System.Xml.Serialization.XmlElementAttribute("diameter_dimension")] + public System.Collections.Generic.List Diameter_dimension + { + get + { + return _diameter_dimension; + } + set + { + _diameter_dimension = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Diameter_dimensionSpecified + { + get + { + return ((this.Diameter_dimension != null) + && (this.Diameter_dimension.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _radius_dimension; + + [System.Xml.Serialization.XmlElementAttribute("radius_dimension")] + public System.Collections.Generic.List Radius_dimension + { + get + { + return _radius_dimension; + } + set + { + _radius_dimension = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Radius_dimensionSpecified + { + get + { + return ((this.Radius_dimension != null) + && (this.Radius_dimension.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _angle_dimension; + + [System.Xml.Serialization.XmlElementAttribute("angle_dimension")] + public System.Collections.Generic.List Angle_dimension + { + get + { + return _angle_dimension; + } + set + { + _angle_dimension = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Angle_dimensionSpecified + { + get + { + return ((this.Angle_dimension != null) + && (this.Angle_dimension.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _level_dimension; + + [System.Xml.Serialization.XmlElementAttribute("level_dimension")] + public System.Collections.Generic.List Level_dimension + { + get + { + return _level_dimension; + } + set + { + _level_dimension = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Level_dimensionSpecified + { + get + { + return ((this.Level_dimension != null) + && (this.Level_dimension.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _line_type; + + [System.Xml.Serialization.XmlElementAttribute("line_type")] + public System.Collections.Generic.List Line_type + { + get + { + return _line_type; + } + set + { + _line_type = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool Line_typeSpecified + { + get + { + return ((this.Line_type != null) + && (this.Line_type.Count != 0)); + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _layer; + + [System.Xml.Serialization.XmlElementAttribute("layer")] + public System.Collections.Generic.List Layer + { + get + { + return _layer; + } + set + { + _layer = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool LayerSpecified + { + get + { + return ((this.Layer != null) + && (this.Layer.Count != 0)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.1.1162.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute("DatabaseUser_defined_views", Namespace="urn:strusoft", AnonymousType=true)] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DatabaseUser_defined_views + { + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _view; + + [System.Xml.Serialization.XmlElementAttribute("view")] + public System.Collections.Generic.List View + { + get + { + return _view; + } + set + { + _view = value; + } + } + + public DatabaseUser_defined_views() + { + this._view = new System.Collections.Generic.List(); + this._anyAttribute = new System.Collections.Generic.List(); + } + + [System.Xml.Serialization.XmlAttributeAttribute("actual_view")] + public string Actual_view { get; set; } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private bool _physical_view = false; + + [System.ComponentModel.DefaultValueAttribute(false)] + [System.Xml.Serialization.XmlAttributeAttribute("physical_view")] + public bool Physical_view + { + get + { + return _physical_view; + } + set + { + _physical_view = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private Displaymodes _display_mode = StruSoft.Interop.Displaymodes.Wireframe; + + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Displaymodes.Wireframe)] + [System.Xml.Serialization.XmlAttributeAttribute("display_mode")] + public Displaymodes Display_mode + { + get + { + return _display_mode; + } + set + { + _display_mode = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + private System.Collections.Generic.List _anyAttribute; + + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Collections.Generic.List AnyAttribute + { + get + { + return _anyAttribute; + } + set + { + _anyAttribute = value; + } + } + + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnyAttributeSpecified + { + get + { + return ((this.AnyAttribute != null) + && (this.AnyAttribute.Count != 0)); + } + } + } +} + diff --git a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj index a1b91acef..704ff280b 100644 --- a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj +++ b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj @@ -76,6 +76,7 @@ + diff --git a/FemDesign.Grasshopper/Materials/SetConcretePlasticity.cs b/FemDesign.Grasshopper/Materials/SetConcretePlasticity.cs index 834baa1f2..ae00b1cbb 100644 --- a/FemDesign.Grasshopper/Materials/SetConcretePlasticity.cs +++ b/FemDesign.Grasshopper/Materials/SetConcretePlasticity.cs @@ -24,7 +24,7 @@ protected override void RegisterInputParams(GH_InputParamManager pManager) pManager[pManager.ParamCount - 1].Optional = true; pManager.AddBooleanParameter("Plastic-Hardening", "Plastic-Hardening", "Plastic-Hardening", GH_ParamAccess.item, true); pManager[pManager.ParamCount - 1].Optional = true; - pManager.AddTextParameter("Crushing", "Crushing", "Crushing", GH_ParamAccess.item, "\"Connect 'ValueList' to get the options.\nCrushing type:\nPrager\nHinton\nCervera\nCrisfield"); + pManager.AddTextParameter("Crushing", "Crushing", "\"Connect 'ValueList' to get the options.\nCrushing type:\nPrager\nHinton\nCervera\nCrisfield", GH_ParamAccess.item, "Prager"); pManager[pManager.ParamCount - 1].Optional = true; pManager.AddBooleanParameter("Tension-Strength", "Tension-Strength", "Tension strength in plastic flow rule", GH_ParamAccess.item, true); pManager[pManager.ParamCount - 1].Optional = true; diff --git a/FemDesign.Grasshopper/Materials/SetConcreteTimeDependant.cs b/FemDesign.Grasshopper/Materials/SetConcreteTimeDependant.cs new file mode 100644 index 000000000..1c4e959d9 --- /dev/null +++ b/FemDesign.Grasshopper/Materials/SetConcreteTimeDependant.cs @@ -0,0 +1,244 @@ +using Grasshopper.Kernel; +using Grasshopper.Kernel.Parameters; +using Grasshopper.Kernel.Types; +using FemDesign.Grasshopper.Components.UIWidgets; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Rhino.Geometry; +using FemDesign.Grasshopper; +using System.Windows.Forms; +using FemDesign.Grasshopper.Extension.ComponentExtension; +using FemDesign.Loads; +using Grasshopper.Kernel.Special; +using StruSoft.Interop; +using FemDesign.Materials; + +namespace FemDesign.Grasshopper +{ + public class MaterialSetTDA : GH_SwitcherComponent + { + /// + public MaterialSetTDA() : base("SetTDA", "SetTDA", "", CategoryName.Name(), SubCategoryName.Cat4a()) + { + + } + + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + pManager.AddGenericParameter("Material", "Material", "Material.", GH_ParamAccess.item); + pManager[pManager.ParamCount - 1].Optional = false; + + + } + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.AddGenericParameter("Material", "Material", "Material.", GH_ParamAccess.item); + } + + protected override void RegisterEvaluationUnits(EvaluationUnitManager mngr) + { + + EvaluationUnit evaluationUnit = new EvaluationUnit("ExtendableComponent", "ExtComp", "A Test Component"); + mngr.RegisterUnit(evaluationUnit); + + evaluationUnit.RegisterInputParam(new Param_Integer(), "t0", "t0", "", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Integer(), "Humidity", "Humidity", "", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Boolean(), "CalculateAc", "CalculateAc", "", GH_ParamAccess.item, new GH_Boolean(false)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Number(), "Ac", "Ac", "", GH_ParamAccess.item, new GH_Number(1.0)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Number(), "u", "u", "", GH_ParamAccess.item, new GH_Number(1.0)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Boolean(), "NonLinearCreep", "NonLinearCreep", "", GH_ParamAccess.item, new GH_Boolean(false)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Integer(), "CementType", "CementType", "Cement Type as integer according to FemDesign API.", GH_ParamAccess.item, new GH_Integer(0)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].EnumInput = Enum.GetNames(typeof(StruSoft.Interop.Cement_type)).ToList(); + + evaluationUnit.RegisterInputParam(new Param_Boolean(), "IncreaseFinalValue", "IncreaseFinalValue", "", GH_ParamAccess.item, new GH_Boolean(false)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + GH_ExtendableMenu gH_ExtendableMenu0 = new GH_ExtendableMenu(0, ""); + gH_ExtendableMenu0.Name = "Creep"; + gH_ExtendableMenu0.Expand(); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[0]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[1]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[2]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[3]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[4]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[5]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[6]); + gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[7]); + + evaluationUnit.AddMenu(gH_ExtendableMenu0); + + + evaluationUnit.RegisterInputParam(new Param_Integer(), "t0", "t0", "", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Integer(), "Humidity", "Humidity", "", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Boolean(), "CalculateAc", "CalculateAc", "", GH_ParamAccess.item, new GH_Boolean(false)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Number(), "Ac", "Ac", "", GH_ParamAccess.item, new GH_Number(1.0)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Number(), "u", "u", "", GH_ParamAccess.item, new GH_Number(1.0)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Integer(), "CementType", "CementType", "Cement Type as integer according to FemDesign API.", GH_ParamAccess.item, new GH_Integer(0)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].EnumInput = Enum.GetNames(typeof(StruSoft.Interop.Cement_type)).ToList(); + + + GH_ExtendableMenu gH_ExtendableMenu1 = new GH_ExtendableMenu(0, ""); + gH_ExtendableMenu1.Name = "Shrinkage"; + gH_ExtendableMenu1.Expand(); + gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[8]); + gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[9]); + gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[10]); + gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[11]); + gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[12]); + gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[13]); + evaluationUnit.AddMenu(gH_ExtendableMenu1); + + + + evaluationUnit.RegisterInputParam(new Param_Integer(), "t0", "t0", "", GH_ParamAccess.item); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + + evaluationUnit.RegisterInputParam(new Param_Integer(), "CementType", "CementType", "Cement Type as integer according to FemDesign API.", GH_ParamAccess.item, new GH_Integer(0)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].EnumInput = Enum.GetNames(typeof(StruSoft.Interop.Cement_type)).ToList(); + + GH_ExtendableMenu gH_ExtendableMenu2 = new GH_ExtendableMenu(0, ""); + gH_ExtendableMenu2.Name = "Elasticity"; + gH_ExtendableMenu2.Expand(); + gH_ExtendableMenu2.RegisterInputPlug(evaluationUnit.Inputs[14]); + gH_ExtendableMenu2.RegisterInputPlug(evaluationUnit.Inputs[15]); + evaluationUnit.AddMenu(gH_ExtendableMenu2); + } + + + + /// + /// This is the method that actually does the work. + /// + /// The DA object can be used to retrieve data from input parameters and + /// to store data in output parameters. + protected override void SolveInstance(IGH_DataAccess DA, EvaluationUnit unit) + { + FemDesign.Materials.Material material = null; + DA.GetData(0, ref material); + + // creep + int t0_creep = 0; + DA.GetData(1, ref t0_creep); + + int humidity = 0; + DA.GetData(2, ref humidity); + + bool calculateAc = false; + DA.GetData(3, ref calculateAc); + + double Ac = 1.0; + DA.GetData(4, ref Ac); + + double u = 1.0; + DA.GetData(5, ref u); + + bool nonLinearCreep = false; + DA.GetData(6, ref nonLinearCreep); + + int cementType_creep = 0; + DA.GetData(7, ref cementType_creep); + + bool increaseFinalValue = false; + DA.GetData(8, ref increaseFinalValue); + + + // shrinkage + int t0_shrinkage = 0; + DA.GetData(9, ref t0_shrinkage); + + int humidity_shrinkage = 0; + DA.GetData(10, ref humidity_shrinkage); + + bool calculateAc_shrinkage = false; + DA.GetData(11, ref calculateAc_shrinkage); + + double Ac_shrinkage = 1.0; + DA.GetData(12, ref Ac_shrinkage); + + double u_shrinkage = 1.0; + DA.GetData(13, ref u_shrinkage); + + int cementType_shrinkage = 0; + DA.GetData(14, ref cementType_shrinkage); + + // elasticity + int t0_elasticity = 0; + DA.GetData(15, ref t0_elasticity); + + int cementType_elasticity = 0; + DA.GetData(16, ref cementType_elasticity); + + + var newMaterial = material.SetCreep(t0_creep, humidity, calculateAc, Ac, u, nonLinearCreep, (StruSoft.Interop.Cement_type)cementType_creep, increaseFinalValue); + newMaterial = newMaterial.SetShrinkage(t0_shrinkage, humidity_shrinkage, calculateAc_shrinkage, Ac_shrinkage, u_shrinkage, (StruSoft.Interop.Cement_type)cementType_shrinkage); + + material = newMaterial.setElasticity(t0_elasticity, (StruSoft.Interop.Cement_type)cementType_elasticity); + + + + DA.SetData(0, material); + + + + } + + /// + /// Provides an Icon for every component that will be visible in the User Interface. + /// Icons need to be 24x24 pixels. + /// + protected override System.Drawing.Bitmap Icon + { + get + { + // You can add image files to your project resources and access them like this: + return FemDesign.Properties.Resources.MaterialSetConcreteMaterialProperties; + } + } + + //To recompute component/solve instance method. + protected void setModelProps() + { + ((GH_DocumentObject)this).ExpireSolution(true); + } + + + /// + /// Each component must have a unique Guid to identify it. + /// It is vital this Guid doesn't change otherwise old ghx files + /// that use the old ID will partially fail during loading. + /// + public override Guid ComponentGuid + { + get { return new Guid("{A80FC5B7-F548-4DBF-97C4-AE73FA07CCC6}"); } + } + } +} \ No newline at end of file diff --git a/FemDesign.Grasshopper/Reinforcement/PostTensionCable/Reinforcement.Ptc.cs b/FemDesign.Grasshopper/Reinforcement/PostTensionCable/Reinforcement.Ptc.cs index dbea237ca..a1cf94b69 100644 --- a/FemDesign.Grasshopper/Reinforcement/PostTensionCable/Reinforcement.Ptc.cs +++ b/FemDesign.Grasshopper/Reinforcement/PostTensionCable/Reinforcement.Ptc.cs @@ -129,7 +129,7 @@ public override Guid ComponentGuid get { return new Guid("15A60FE2-1BAF-41B2-993B-7F541D56F42C"); } } - public override GH_Exposure Exposure => GH_Exposure.primary; + public override GH_Exposure Exposure => GH_Exposure.quarternary; } } \ No newline at end of file diff --git a/FemDesign.Grasshopper/Reinforcement/Punching/PunchingBase.cs b/FemDesign.Grasshopper/Reinforcement/Punching/PunchingBase.cs index d75e22169..e2b804e51 100644 --- a/FemDesign.Grasshopper/Reinforcement/Punching/PunchingBase.cs +++ b/FemDesign.Grasshopper/Reinforcement/Punching/PunchingBase.cs @@ -28,7 +28,7 @@ public class PunchingBase : GH_SwitcherComponent protected override Bitmap Icon => FemDesign.Properties.Resources.Punching; public PunchingBase() - : base("Punching", "Punching", + : base("PunchingReinforcement", "PunchingReinforcement", "Punching reinforcement settings for a FEM-Design model.", CategoryName.Name(), SubCategoryName.CatReinforcement()) { From 692c5188288a8919edc2eaeec782ba80fceb1713 Mon Sep 17 00:00:00 2001 From: MP Date: Wed, 19 Nov 2025 18:28:38 +0100 Subject: [PATCH 18/54] =?UTF-8?q?=F0=9F=91=B7=20schema=2024?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FemDesign.Core/Materials/Concrete.cs | 12 +- FemDesign.Core/Materials/Material.cs | 18 +- FemDesign.Core/Model/Model.cs | 12 +- .../Struxml/Data/FEM-Design 24.00.005.cs | 206 +++++++++--------- .../Materials/SetConcreteTimeDependant.cs | 12 +- 5 files changed, 130 insertions(+), 130 deletions(-) diff --git a/FemDesign.Core/Materials/Concrete.cs b/FemDesign.Core/Materials/Concrete.cs index b69c523a7..6b1d3bb0c 100644 --- a/FemDesign.Core/Materials/Concrete.cs +++ b/FemDesign.Core/Materials/Concrete.cs @@ -1,6 +1,6 @@ // https://strusoft.com/ -using StruSoft.Interop; +using StruSoft.Interop_24; using System.Xml.Serialization; namespace FemDesign.Materials @@ -12,16 +12,16 @@ namespace FemDesign.Materials public partial class Concrete: MaterialBase { [XmlElement("tda_creep")] - public StruSoft.Interop.Tda_creep2 CreepTimeDependant { get; set; } + public StruSoft.Interop_24.Tda_creep2 CreepTimeDependant { get; set; } [XmlElement("tda_shrinkage")] - public StruSoft.Interop.Tda_shrinkage ShrinkageTimeDependant { get; set; } + public StruSoft.Interop_24.Tda_shrinkage ShrinkageTimeDependant { get; set; } [XmlElement("tda_elasticity")] - public StruSoft.Interop.Tda_elasticity ElasticityTimeDependant { get; set; } + public StruSoft.Interop_24.Tda_elasticity ElasticityTimeDependant { get; set; } [XmlElement("plastic_analysis_data")] - public StruSoft.Interop.Concrete_pl_data Plasticity { get; set; } + public StruSoft.Interop_24.Concrete_pl_data Plasticity { get; set; } [XmlAttribute("Fck")] public string Fck { get; set; } // material_base_value @@ -101,7 +101,7 @@ internal void SetMaterialParameters(double creepUls, double creepSlq, double cre internal void SetPlasticity(bool plastic = true, bool hardening = true, CrushingCriterion crushing = CrushingCriterion.Prager, bool tensionStrength = true, TensionStiffening tensionStiffening = TensionStiffening.Hinton, ReducedCompression reducedCompression = ReducedCompression.Vecchio1, bool reducedTransverse = false, bool ultimateStrainRebars = true ) { - var plasticity = new StruSoft.Interop.Concrete_pl_attribs(); + var plasticity = new StruSoft.Interop_24.Concrete_pl_attribs(); plasticity.Elasto_plastic_behaviour = plastic; plasticity.Plastic_hardening = hardening; diff --git a/FemDesign.Core/Materials/Material.cs b/FemDesign.Core/Materials/Material.cs index f4e5e9ec5..6244bc293 100644 --- a/FemDesign.Core/Materials/Material.cs +++ b/FemDesign.Core/Materials/Material.cs @@ -232,7 +232,7 @@ public static Material SetConcretePlasticity(this Material material, bool plasti return newMaterial; } - public static Material SetCreep(this Material material, int to, int humidity, bool calculateAc, double ac, double u, bool nonLinearCreep, StruSoft.Interop.Cement_type cementType, bool increaseFinalValue) + public static Material SetCreep(this Material material, int to, int humidity, bool calculateAc, double ac, double u, bool nonLinearCreep, StruSoft.Interop_24.Cement_type cementType, bool increaseFinalValue) { if (material.Concrete == null) { @@ -240,8 +240,8 @@ public static Material SetCreep(this Material material, int to, int humidity, bo } // deep clone. downstreams objs will have contain changes made in this method, upstream objs will not. - var creep = new StruSoft.Interop.Tda_creep2(); - creep.EN_199211_2004 = new StruSoft.Interop.Tda_creep_EN1992() + var creep = new StruSoft.Interop_24.Tda_creep2(); + creep.EN_199211_2004 = new StruSoft.Interop_24.Tda_creep_EN1992() { T0 = to, RH = humidity, @@ -263,7 +263,7 @@ public static Material SetCreep(this Material material, int to, int humidity, bo return newMaterial; } - public static Material SetShrinkage(this Material material, int to, int humidity, bool calculateAc, double ac, double u, StruSoft.Interop.Cement_type cementType) + public static Material SetShrinkage(this Material material, int to, int humidity, bool calculateAc, double ac, double u, StruSoft.Interop_24.Cement_type cementType) { if (material.Concrete == null) { @@ -271,8 +271,8 @@ public static Material SetShrinkage(this Material material, int to, int humidity } // deep clone. downstreams objs will have contain changes made in this method, upstream objs will not. - var shrinkage = new StruSoft.Interop.Tda_shrinkage(); - shrinkage.EN_199211_2004 = new StruSoft.Interop.Tda_shrinkageEN_199211_2004() + var shrinkage = new StruSoft.Interop_24.Tda_shrinkage(); + shrinkage.EN_199211_2004 = new StruSoft.Interop_24.Tda_shrinkageEN_199211_2004() { Ts = to, RH = humidity, @@ -292,7 +292,7 @@ public static Material SetShrinkage(this Material material, int to, int humidity return newMaterial; } - public static Material setElasticity(this Material material, int to, StruSoft.Interop.Cement_type cementType) + public static Material setElasticity(this Material material, int to, StruSoft.Interop_24.Cement_type cementType) { if (material.Concrete == null) { @@ -300,8 +300,8 @@ public static Material setElasticity(this Material material, int to, StruSoft.In } // deep clone. downstreams objs will have contain changes made in this method, upstream objs will not. - var elasticity = new StruSoft.Interop.Tda_elasticity(); - elasticity.EN_199211_2004 = new StruSoft.Interop.Tda_elasticityEN_199211_2004() + var elasticity = new StruSoft.Interop_24.Tda_elasticity(); + elasticity.EN_199211_2004 = new StruSoft.Interop_24.Tda_elasticityEN_199211_2004() { T0 = to, Cement_type = cementType, diff --git a/FemDesign.Core/Model/Model.cs b/FemDesign.Core/Model/Model.cs index 02f5f139c..8a1c86353 100644 --- a/FemDesign.Core/Model/Model.cs +++ b/FemDesign.Core/Model/Model.cs @@ -105,19 +105,19 @@ public partial class Model [XmlElement("bolt_types", Order = 18)] public List BoltTypes { get; set; } - //[XmlElement("bar_end_lib_type", Order = 19)] - //public List BarEndReleaseTypes { get; set; } + [XmlElement("bar_end_lib_type", Order = 19)] + public List BarEndReleaseTypes { get; set; } - [XmlElement("geometry", Order = 19)] + [XmlElement("geometry", Order = 20)] public StruSoft.Interop.StruXml.Data.DatabaseGeometry Geometry { get; set; } - [XmlElement("user_defined_filter", Order = 20)] + [XmlElement("user_defined_filter", Order = 21)] public List UserDefinedFilters { get; set; } - [XmlElement("user_defined_views", Order = 21)] + [XmlElement("user_defined_views", Order = 22)] public StruSoft.Interop.StruXml.Data.DatabaseUser_defined_views UserDefinedViews { get; set; } - [XmlElement("end", Order = 22)] + [XmlElement("end", Order = 23)] public string End { get; set; } internal static bool HasResults(string filePath) diff --git a/FemDesign.Core/Strusoft/Interop/Struxml/Data/FEM-Design 24.00.005.cs b/FemDesign.Core/Strusoft/Interop/Struxml/Data/FEM-Design 24.00.005.cs index 894f2c4e9..470115985 100644 --- a/FemDesign.Core/Strusoft/Interop/Struxml/Data/FEM-Design 24.00.005.cs +++ b/FemDesign.Core/Strusoft/Interop/Struxml/Data/FEM-Design 24.00.005.cs @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ // This code was generated by XmlSchemaClassGenerator version 2.1.1162.0 -namespace StruSoft.Interop +namespace StruSoft.Interop_24 { @@ -3060,9 +3060,9 @@ public partial class Simple_stiffness_type public Stiff_base_type Rot_z { get; set; } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Detach_type _detach = StruSoft.Interop.Detach_type.Empty; + private Detach_type _detach = StruSoft.Interop_24.Detach_type.Empty; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Detach_type.Empty)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Detach_type.Empty)] [System.Xml.Serialization.XmlAttributeAttribute("detach")] public Detach_type Detach { @@ -3207,9 +3207,9 @@ public partial class Rigidity_data_type1 : Rigidity_data_type0 { [System.Xml.Serialization.XmlIgnoreAttribute()] - private Detach_type _detach = StruSoft.Interop.Detach_type.Empty; + private Detach_type _detach = StruSoft.Interop_24.Detach_type.Empty; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Detach_type.Empty)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Detach_type.Empty)] [System.Xml.Serialization.XmlAttributeAttribute("detach")] public Detach_type Detach { @@ -3375,9 +3375,9 @@ public System.Collections.Generic.List Plastic_limits } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Detach_type _detach = StruSoft.Interop.Detach_type.Empty; + private Detach_type _detach = StruSoft.Interop_24.Detach_type.Empty; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Detach_type.Empty)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Detach_type.Empty)] [System.Xml.Serialization.XmlAttributeAttribute("detach")] public Detach_type Detach { @@ -3767,9 +3767,9 @@ public double Penwidth } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Pointstyle_type _point_style = StruSoft.Interop.Pointstyle_type.Cross; + private Pointstyle_type _point_style = StruSoft.Interop_24.Pointstyle_type.Cross; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Pointstyle_type.Cross)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Pointstyle_type.Cross)] [System.Xml.Serialization.XmlAttributeAttribute("point_style")] public Pointstyle_type Point_style { @@ -3824,9 +3824,9 @@ public partial class Fill_type { [System.Xml.Serialization.XmlIgnoreAttribute()] - private Fillmode_type _mode = StruSoft.Interop.Fillmode_type.Auto_fill; + private Fillmode_type _mode = StruSoft.Interop_24.Fillmode_type.Auto_fill; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Fillmode_type.Auto_fill)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Fillmode_type.Auto_fill)] [System.Xml.Serialization.XmlAttributeAttribute("mode")] public Fillmode_type Mode { @@ -3914,9 +3914,9 @@ public partial class Text_font_type : Font_type { [System.Xml.Serialization.XmlIgnoreAttribute()] - private Hor_align _h_align = StruSoft.Interop.Hor_align.Left; + private Hor_align _h_align = StruSoft.Interop_24.Hor_align.Left; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Hor_align.Left)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Hor_align.Left)] [System.Xml.Serialization.XmlAttributeAttribute("h_align")] public Hor_align H_align { @@ -3931,9 +3931,9 @@ public Hor_align H_align } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Ver_align _v_align = StruSoft.Interop.Ver_align.Bottom; + private Ver_align _v_align = StruSoft.Interop_24.Ver_align.Bottom; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Ver_align.Bottom)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Ver_align.Bottom)] [System.Xml.Serialization.XmlAttributeAttribute("v_align")] public Ver_align V_align { @@ -3975,9 +3975,9 @@ public string Font } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Script_type _script = StruSoft.Interop.Script_type.Western; + private Script_type _script = StruSoft.Interop_24.Script_type.Western; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Script_type.Western)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Script_type.Western)] [System.Xml.Serialization.XmlAttributeAttribute("script")] public Script_type Script { @@ -4934,9 +4934,9 @@ public bool Cantilever } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Ver_align _load_position = StruSoft.Interop.Ver_align.Top; + private Ver_align _load_position = StruSoft.Interop_24.Ver_align.Top; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Ver_align.Top)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Ver_align.Top)] [System.Xml.Serialization.XmlAttributeAttribute("load_position")] public Ver_align Load_position { @@ -6006,9 +6006,9 @@ public string Name public string Complex_composite { get; set; } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Steelmadetype _made = StruSoft.Interop.Steelmadetype.Rolled; + private Steelmadetype _made = StruSoft.Interop_24.Steelmadetype.Rolled; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Steelmadetype.Rolled)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Steelmadetype.Rolled)] [System.Xml.Serialization.XmlAttributeAttribute("made")] public Steelmadetype Made { @@ -6655,9 +6655,9 @@ public string Hash_order_id public Beamtype Type { get; set; } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Shell_model_type _shell_model = StruSoft.Interop.Shell_model_type.None; + private Shell_model_type _shell_model = StruSoft.Interop_24.Shell_model_type.None; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Shell_model_type.None)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Shell_model_type.None)] [System.Xml.Serialization.XmlAttributeAttribute("shell_model")] public Shell_model_type Shell_model { @@ -8150,9 +8150,9 @@ public partial class Rigidity_group_type1 : Rigidity_group_type0 { [System.Xml.Serialization.XmlIgnoreAttribute()] - private Detach_type _detach = StruSoft.Interop.Detach_type.Empty; + private Detach_type _detach = StruSoft.Interop_24.Detach_type.Empty; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Detach_type.Empty)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Detach_type.Empty)] [System.Xml.Serialization.XmlAttributeAttribute("detach")] public Detach_type Detach { @@ -11427,9 +11427,9 @@ public bool Has_prefix public bool Id_is_letter { get; set; } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Priority_type _priority = StruSoft.Interop.Priority_type.Primary; + private Priority_type _priority = StruSoft.Interop_24.Priority_type.Primary; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Priority_type.Primary)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Priority_type.Primary)] [System.Xml.Serialization.XmlAttributeAttribute("priority")] public Priority_type Priority { @@ -11461,9 +11461,9 @@ public bool Use_for_views } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Axis_position _label_position = StruSoft.Interop.Axis_position.Start; + private Axis_position _label_position = StruSoft.Interop_24.Axis_position.Start; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Axis_position.Start)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Axis_position.Start)] [System.Xml.Serialization.XmlAttributeAttribute("label_position")] public Axis_position Label_position { @@ -11630,9 +11630,9 @@ public Ts_visible_edge_type() } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Visiblelinetype _linetype = StruSoft.Interop.Visiblelinetype.Line; + private Visiblelinetype _linetype = StruSoft.Interop_24.Visiblelinetype.Line; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Visiblelinetype.Line)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Visiblelinetype.Line)] [System.Xml.Serialization.XmlAttributeAttribute("linetype")] public Visiblelinetype Linetype { @@ -12448,9 +12448,9 @@ public double Bedding_modulus } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Foundationsystems_type _analythical_system = StruSoft.Interop.Foundationsystems_type.Simple; + private Foundationsystems_type _analythical_system = StruSoft.Interop_24.Foundationsystems_type.Simple; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Foundationsystems_type.Simple)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Foundationsystems_type.Simple)] [System.Xml.Serialization.XmlAttributeAttribute("analythical_system")] public Foundationsystems_type Analythical_system { @@ -12716,9 +12716,9 @@ public double Bedding_modulus } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Foundationsystems_type _analythical_system = StruSoft.Interop.Foundationsystems_type.Simple; + private Foundationsystems_type _analythical_system = StruSoft.Interop_24.Foundationsystems_type.Simple; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Foundationsystems_type.Simple)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Foundationsystems_type.Simple)] [System.Xml.Serialization.XmlAttributeAttribute("analythical_system")] public Foundationsystems_type Analythical_system { @@ -12913,9 +12913,9 @@ public double Bedding_modulus } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Slabfoundationsystems_type _analythical_system = StruSoft.Interop.Slabfoundationsystems_type.Surface_support_group; + private Slabfoundationsystems_type _analythical_system = StruSoft.Interop_24.Slabfoundationsystems_type.Surface_support_group; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Slabfoundationsystems_type.Surface_support_group)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Slabfoundationsystems_type.Surface_support_group)] [System.Xml.Serialization.XmlAttributeAttribute("analythical_system")] public Slabfoundationsystems_type Analythical_system { @@ -13699,9 +13699,9 @@ public Piles_beam_type() public string Complex_composite { get; set; } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Steelmadetype _made = StruSoft.Interop.Steelmadetype.Rolled; + private Steelmadetype _made = StruSoft.Interop_24.Steelmadetype.Rolled; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Steelmadetype.Rolled)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Steelmadetype.Rolled)] [System.Xml.Serialization.XmlAttributeAttribute("made")] public Steelmadetype Made { @@ -14536,9 +14536,9 @@ public string Hash_order_id public Sectiontype Type { get; set; } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Fd_mat_type _fdmat = StruSoft.Interop.Fd_mat_type.Item_1; + private Fd_mat_type _fdmat = StruSoft.Interop_24.Fd_mat_type.Item_1; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Fd_mat_type.Item_1)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Fd_mat_type.Item_1)] [System.Xml.Serialization.XmlAttributeAttribute("fd-mat")] public Fd_mat_type Fdmat { @@ -15597,9 +15597,9 @@ public bool Elasto_plastic_transverse_shear_U } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Eptso_type _elasto_plastic_transverse_shear_option_U = StruSoft.Interop.Eptso_type.Parabolic; + private Eptso_type _elasto_plastic_transverse_shear_option_U = StruSoft.Interop_24.Eptso_type.Parabolic; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Eptso_type.Parabolic)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Eptso_type.Parabolic)] [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_transverse_shear_option_U")] public Eptso_type Elasto_plastic_transverse_shear_option_U { @@ -15640,9 +15640,9 @@ public bool Elasto_plastic_transverse_shear_Sq } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Eptso_type _elasto_plastic_transverse_shear_option_Sq = StruSoft.Interop.Eptso_type.Parabolic; + private Eptso_type _elasto_plastic_transverse_shear_option_Sq = StruSoft.Interop_24.Eptso_type.Parabolic; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Eptso_type.Parabolic)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Eptso_type.Parabolic)] [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_transverse_shear_option_Sq")] public Eptso_type Elasto_plastic_transverse_shear_option_Sq { @@ -15683,9 +15683,9 @@ public bool Elasto_plastic_transverse_shear_Sf } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Eptso_type _elasto_plastic_transverse_shear_option_Sf = StruSoft.Interop.Eptso_type.Parabolic; + private Eptso_type _elasto_plastic_transverse_shear_option_Sf = StruSoft.Interop_24.Eptso_type.Parabolic; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Eptso_type.Parabolic)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Eptso_type.Parabolic)] [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_transverse_shear_option_Sf")] public Eptso_type Elasto_plastic_transverse_shear_option_Sf { @@ -15726,9 +15726,9 @@ public bool Elasto_plastic_transverse_shear_Sc } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Eptso_type _elasto_plastic_transverse_shear_option_Sc = StruSoft.Interop.Eptso_type.Parabolic; + private Eptso_type _elasto_plastic_transverse_shear_option_Sc = StruSoft.Interop_24.Eptso_type.Parabolic; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Eptso_type.Parabolic)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Eptso_type.Parabolic)] [System.Xml.Serialization.XmlAttributeAttribute("elasto_plastic_transverse_shear_option_Sc")] public Eptso_type Elasto_plastic_transverse_shear_option_Sc { @@ -16774,9 +16774,9 @@ public partial class Material_typeBrick public Optional_material_attribs Base_data { get; set; } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Strength_type _strength_for = StruSoft.Interop.Strength_type.Brick_only; + private Strength_type _strength_for = StruSoft.Interop_24.Strength_type.Brick_only; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Strength_type.Brick_only)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Strength_type.Brick_only)] [System.Xml.Serialization.XmlAttributeAttribute("strength_for")] public Strength_type Strength_for { @@ -18005,9 +18005,9 @@ public partial class Rf_wire_type public string Reinforcing_material { get; set; } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Wire_profile_type _profile = StruSoft.Interop.Wire_profile_type.Ribbed; + private Wire_profile_type _profile = StruSoft.Interop_24.Wire_profile_type.Ribbed; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Wire_profile_type.Ribbed)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Wire_profile_type.Ribbed)] [System.Xml.Serialization.XmlAttributeAttribute("profile")] public Wire_profile_type Profile { @@ -19326,9 +19326,9 @@ public partial class Punching_reinforcement_typeStud_rails public Punching_reinforcement_typeStud_railsPeikko_psb_product Peikko_psb_product { get; set; } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Studrail_patterns _pattern = StruSoft.Interop.Studrail_patterns.Semiorthogonal; + private Studrail_patterns _pattern = StruSoft.Interop_24.Studrail_patterns.Semiorthogonal; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Studrail_patterns.Semiorthogonal)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Studrail_patterns.Semiorthogonal)] [System.Xml.Serialization.XmlAttributeAttribute("pattern")] public Studrail_patterns Pattern { @@ -19706,9 +19706,9 @@ public string Colour } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Srf_treatment_type _created_by = StruSoft.Interop.Srf_treatment_type.Manual; + private Srf_treatment_type _created_by = StruSoft.Interop_24.Srf_treatment_type.Manual; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Srf_treatment_type.Manual)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Srf_treatment_type.Manual)] [System.Xml.Serialization.XmlAttributeAttribute("created_by")] public Srf_treatment_type Created_by { @@ -20647,9 +20647,9 @@ public string Colour } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Ssrf_treatment _created_by = StruSoft.Interop.Ssrf_treatment.Manual; + private Ssrf_treatment _created_by = StruSoft.Interop_24.Ssrf_treatment.Manual; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Ssrf_treatment.Manual)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Ssrf_treatment.Manual)] [System.Xml.Serialization.XmlAttributeAttribute("created_by")] public Ssrf_treatment Created_by { @@ -20764,9 +20764,9 @@ public partial class Simple_spring_type public Stiff_base_type Rot_z { get; set; } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Detach_type _detach = StruSoft.Interop.Detach_type.Empty; + private Detach_type _detach = StruSoft.Interop_24.Detach_type.Empty; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Detach_type.Empty)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Detach_type.Empty)] [System.Xml.Serialization.XmlAttributeAttribute("detach")] public Detach_type Detach { @@ -21011,9 +21011,9 @@ public partial class Support_rigidity_data_typeGroup public Rigidity_group_type2 Rigidity_group { get; set; } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Detach_type _detach = StruSoft.Interop.Detach_type.Empty; + private Detach_type _detach = StruSoft.Interop_24.Detach_type.Empty; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Detach_type.Empty)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Detach_type.Empty)] [System.Xml.Serialization.XmlAttributeAttribute("detach")] public Detach_type Detach { @@ -21351,9 +21351,9 @@ public string Name } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Detach_type _detach = StruSoft.Interop.Detach_type.Empty; + private Detach_type _detach = StruSoft.Interop_24.Detach_type.Empty; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Detach_type.Empty)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Detach_type.Empty)] [System.Xml.Serialization.XmlAttributeAttribute("detach")] public Detach_type Detach { @@ -25252,9 +25252,9 @@ public partial class Seismic_load_typeCommon_standard_spectra public Standard_spectra_type Vertical { get; set; } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Seismic_ground_type _ground = StruSoft.Interop.Seismic_ground_type.A; + private Seismic_ground_type _ground = StruSoft.Interop_24.Seismic_ground_type.A; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Seismic_ground_type.A)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Seismic_ground_type.A)] [System.Xml.Serialization.XmlAttributeAttribute("ground")] public Seismic_ground_type Ground { @@ -26218,9 +26218,9 @@ public string Hash_order_id public Loadcasetype_type Type { get; set; } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Loadcasedurationtype _duration_class = StruSoft.Interop.Loadcasedurationtype.Permanent; + private Loadcasedurationtype _duration_class = StruSoft.Interop_24.Loadcasedurationtype.Permanent; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Loadcasedurationtype.Permanent)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Loadcasedurationtype.Permanent)] [System.Xml.Serialization.XmlAttributeAttribute("duration_class")] public Loadcasedurationtype Duration_class { @@ -27146,9 +27146,9 @@ public partial class Ldgroup_relation_record_type public string Name { get; set; } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Ldgroup_direction_type _direction = StruSoft.Interop.Ldgroup_direction_type.Non_directional; + private Ldgroup_direction_type _direction = StruSoft.Interop_24.Ldgroup_direction_type.Non_directional; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Ldgroup_direction_type.Non_directional)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Ldgroup_direction_type.Non_directional)] [System.Xml.Serialization.XmlAttributeAttribute("direction")] public Ldgroup_direction_type Direction { @@ -27554,9 +27554,9 @@ public bool Snow_effect } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Ldgroup_relation _relationship = StruSoft.Interop.Ldgroup_relation.Alternative; + private Ldgroup_relation _relationship = StruSoft.Interop_24.Ldgroup_relation.Alternative; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Ldgroup_relation.Alternative)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Ldgroup_relation.Alternative)] [System.Xml.Serialization.XmlAttributeAttribute("relationship")] public Ldgroup_relation Relationship { @@ -27845,9 +27845,9 @@ public bool RelationsSpecified public double Xi { get; set; } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Ldgroup_relation _relationship = StruSoft.Interop.Ldgroup_relation.Alternative; + private Ldgroup_relation _relationship = StruSoft.Interop_24.Ldgroup_relation.Alternative; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Ldgroup_relation.Alternative)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Ldgroup_relation.Alternative)] [System.Xml.Serialization.XmlAttributeAttribute("relationship")] public Ldgroup_relation Relationship { @@ -28120,9 +28120,9 @@ public bool RelationsSpecified public double Accidental { get; set; } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Ldgroup_relation _relationship = StruSoft.Interop.Ldgroup_relation.Alternative; + private Ldgroup_relation _relationship = StruSoft.Interop_24.Ldgroup_relation.Alternative; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Ldgroup_relation.Alternative)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Ldgroup_relation.Alternative)] [System.Xml.Serialization.XmlAttributeAttribute("relationship")] public Ldgroup_relation Relationship { @@ -28727,9 +28727,9 @@ public bool Simultaneous } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Ldgroup_relation _relationship = StruSoft.Interop.Ldgroup_relation.Alternative; + private Ldgroup_relation _relationship = StruSoft.Interop_24.Ldgroup_relation.Alternative; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Ldgroup_relation.Alternative)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Ldgroup_relation.Alternative)] [System.Xml.Serialization.XmlAttributeAttribute("relationship")] public Ldgroup_relation Relationship { @@ -28744,9 +28744,9 @@ public Ldgroup_relation Relationship } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Ldgroup_tmpeffect _temporary_effect = StruSoft.Interop.Ldgroup_tmpeffect.General; + private Ldgroup_tmpeffect _temporary_effect = StruSoft.Interop_24.Ldgroup_tmpeffect.General; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Ldgroup_tmpeffect.General)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Ldgroup_tmpeffect.General)] [System.Xml.Serialization.XmlAttributeAttribute("temporary_effect")] public Ldgroup_tmpeffect Temporary_effect { @@ -29188,9 +29188,9 @@ public System.Collections.Generic.List Group public System.DateTime Last_change { get; set; } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Ldcombmethod _simple_combination_method = StruSoft.Interop.Ldcombmethod.EN_1990_6Period4Period3LeftParenthesis6Period10RightParenthesis; + private Ldcombmethod _simple_combination_method = StruSoft.Interop_24.Ldcombmethod.EN_1990_6Period4Period3LeftParenthesis6Period10RightParenthesis; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Ldcombmethod.EN_1990_6Period4Period3LeftParenthesis6Period10RightParenthesis)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Ldcombmethod.EN_1990_6Period4Period3LeftParenthesis6Period10RightParenthesis)] [System.Xml.Serialization.XmlAttributeAttribute("simple_combination_method")] public Ldcombmethod Simple_combination_method { @@ -30178,9 +30178,9 @@ public int Decimals } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Lengthunit_type _length_unit = StruSoft.Interop.Lengthunit_type.M; + private Lengthunit_type _length_unit = StruSoft.Interop_24.Lengthunit_type.M; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Lengthunit_type.M)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Lengthunit_type.M)] [System.Xml.Serialization.XmlAttributeAttribute("length_unit")] public Lengthunit_type Length_unit { @@ -30195,9 +30195,9 @@ public Lengthunit_type Length_unit } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Angleunit_type _angle_unit = StruSoft.Interop.Angleunit_type.Rad; + private Angleunit_type _angle_unit = StruSoft.Interop_24.Angleunit_type.Rad; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Angleunit_type.Rad)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Angleunit_type.Rad)] [System.Xml.Serialization.XmlAttributeAttribute("angle_unit")] public Angleunit_type Angle_unit { @@ -30280,9 +30280,9 @@ public string Colour } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Halign_type _h_align = StruSoft.Interop.Halign_type.Centered; + private Halign_type _h_align = StruSoft.Interop_24.Halign_type.Centered; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Halign_type.Centered)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Halign_type.Centered)] [System.Xml.Serialization.XmlAttributeAttribute("h_align")] public Halign_type H_align { @@ -30297,9 +30297,9 @@ public Halign_type H_align } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Valign_type _v_align = StruSoft.Interop.Valign_type.Above; + private Valign_type _v_align = StruSoft.Interop_24.Valign_type.Above; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Valign_type.Above)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Valign_type.Above)] [System.Xml.Serialization.XmlAttributeAttribute("v_align")] public Valign_type V_align { @@ -30382,9 +30382,9 @@ public partial class Arrow_type { [System.Xml.Serialization.XmlIgnoreAttribute()] - private Arrowtype_type _type = StruSoft.Interop.Arrowtype_type.Tick; + private Arrowtype_type _type = StruSoft.Interop_24.Arrowtype_type.Tick; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Arrowtype_type.Tick)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Arrowtype_type.Tick)] [System.Xml.Serialization.XmlAttributeAttribute("type")] public Arrowtype_type Type { @@ -34234,9 +34234,9 @@ public string Name public string Complex_material { get; set; } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Steelmadetype _made = StruSoft.Interop.Steelmadetype.Rolled; + private Steelmadetype _made = StruSoft.Interop_24.Steelmadetype.Rolled; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Steelmadetype.Rolled)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Steelmadetype.Rolled)] [System.Xml.Serialization.XmlAttributeAttribute("made")] public Steelmadetype Made { @@ -35197,9 +35197,9 @@ public string Name } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Roof_type _roof_type = StruSoft.Interop.Roof_type.Flat; + private Roof_type _roof_type = StruSoft.Interop_24.Roof_type.Flat; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Roof_type.Flat)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Roof_type.Flat)] [System.Xml.Serialization.XmlAttributeAttribute("roof_type")] public Roof_type Roof_type { @@ -36433,9 +36433,9 @@ public string Convertid } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Standardtype _standard = StruSoft.Interop.Standardtype.EC; + private Standardtype _standard = StruSoft.Interop_24.Standardtype.EC; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Standardtype.EC)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Standardtype.EC)] [System.Xml.Serialization.XmlAttributeAttribute("standard")] public Standardtype Standard { @@ -36450,9 +36450,9 @@ public Standardtype Standard } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Eurocodetype _country = StruSoft.Interop.Eurocodetype.Common; + private Eurocodetype _country = StruSoft.Interop_24.Eurocodetype.Common; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Eurocodetype.Common)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Eurocodetype.Common)] [System.Xml.Serialization.XmlAttributeAttribute("country")] public Eurocodetype Country { @@ -39932,9 +39932,9 @@ public bool Physical_view } [System.Xml.Serialization.XmlIgnoreAttribute()] - private Displaymodes _display_mode = StruSoft.Interop.Displaymodes.Wireframe; + private Displaymodes _display_mode = StruSoft.Interop_24.Displaymodes.Wireframe; - [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop.Displaymodes.Wireframe)] + [System.ComponentModel.DefaultValueAttribute(StruSoft.Interop_24.Displaymodes.Wireframe)] [System.Xml.Serialization.XmlAttributeAttribute("display_mode")] public Displaymodes Display_mode { diff --git a/FemDesign.Grasshopper/Materials/SetConcreteTimeDependant.cs b/FemDesign.Grasshopper/Materials/SetConcreteTimeDependant.cs index 1c4e959d9..75db972de 100644 --- a/FemDesign.Grasshopper/Materials/SetConcreteTimeDependant.cs +++ b/FemDesign.Grasshopper/Materials/SetConcreteTimeDependant.cs @@ -65,7 +65,7 @@ protected override void RegisterEvaluationUnits(EvaluationUnitManager mngr) evaluationUnit.RegisterInputParam(new Param_Integer(), "CementType", "CementType", "Cement Type as integer according to FemDesign API.", GH_ParamAccess.item, new GH_Integer(0)); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; - evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].EnumInput = Enum.GetNames(typeof(StruSoft.Interop.Cement_type)).ToList(); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].EnumInput = Enum.GetNames(typeof(StruSoft.Interop_24.Cement_type)).ToList(); evaluationUnit.RegisterInputParam(new Param_Boolean(), "IncreaseFinalValue", "IncreaseFinalValue", "", GH_ParamAccess.item, new GH_Boolean(false)); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; @@ -102,7 +102,7 @@ protected override void RegisterEvaluationUnits(EvaluationUnitManager mngr) evaluationUnit.RegisterInputParam(new Param_Integer(), "CementType", "CementType", "Cement Type as integer according to FemDesign API.", GH_ParamAccess.item, new GH_Integer(0)); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; - evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].EnumInput = Enum.GetNames(typeof(StruSoft.Interop.Cement_type)).ToList(); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].EnumInput = Enum.GetNames(typeof(StruSoft.Interop_24.Cement_type)).ToList(); GH_ExtendableMenu gH_ExtendableMenu1 = new GH_ExtendableMenu(0, ""); @@ -123,7 +123,7 @@ protected override void RegisterEvaluationUnits(EvaluationUnitManager mngr) evaluationUnit.RegisterInputParam(new Param_Integer(), "CementType", "CementType", "Cement Type as integer according to FemDesign API.", GH_ParamAccess.item, new GH_Integer(0)); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; - evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].EnumInput = Enum.GetNames(typeof(StruSoft.Interop.Cement_type)).ToList(); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].EnumInput = Enum.GetNames(typeof(StruSoft.Interop_24.Cement_type)).ToList(); GH_ExtendableMenu gH_ExtendableMenu2 = new GH_ExtendableMenu(0, ""); gH_ExtendableMenu2.Name = "Elasticity"; @@ -198,10 +198,10 @@ protected override void SolveInstance(IGH_DataAccess DA, EvaluationUnit unit) DA.GetData(16, ref cementType_elasticity); - var newMaterial = material.SetCreep(t0_creep, humidity, calculateAc, Ac, u, nonLinearCreep, (StruSoft.Interop.Cement_type)cementType_creep, increaseFinalValue); - newMaterial = newMaterial.SetShrinkage(t0_shrinkage, humidity_shrinkage, calculateAc_shrinkage, Ac_shrinkage, u_shrinkage, (StruSoft.Interop.Cement_type)cementType_shrinkage); + var newMaterial = material.SetCreep(t0_creep, humidity, calculateAc, Ac, u, nonLinearCreep, (StruSoft.Interop_24.Cement_type)cementType_creep, increaseFinalValue); + newMaterial = newMaterial.SetShrinkage(t0_shrinkage, humidity_shrinkage, calculateAc_shrinkage, Ac_shrinkage, u_shrinkage, (StruSoft.Interop_24.Cement_type)cementType_shrinkage); - material = newMaterial.setElasticity(t0_elasticity, (StruSoft.Interop.Cement_type)cementType_elasticity); + material = newMaterial.setElasticity(t0_elasticity, (StruSoft.Interop_24.Cement_type)cementType_elasticity); From b861a7f56d0e1dd8d27b609408809ac86ae82c5d Mon Sep 17 00:00:00 2001 From: MP Date: Thu, 20 Nov 2025 15:25:06 +0100 Subject: [PATCH 19/54] =?UTF-8?q?=E2=9C=A8=20material=20TDA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FemDesign.Core/Materials/Material.cs | 18 +-- FemDesign.Core/Model/Model.cs | 5 +- .../Materials/SetConcreteTimeDependant.cs | 134 ++++++++---------- 3 files changed, 69 insertions(+), 88 deletions(-) diff --git a/FemDesign.Core/Materials/Material.cs b/FemDesign.Core/Materials/Material.cs index 6244bc293..8a97b09f4 100644 --- a/FemDesign.Core/Materials/Material.cs +++ b/FemDesign.Core/Materials/Material.cs @@ -232,7 +232,7 @@ public static Material SetConcretePlasticity(this Material material, bool plasti return newMaterial; } - public static Material SetCreep(this Material material, int to, int humidity, bool calculateAc, double ac, double u, bool nonLinearCreep, StruSoft.Interop_24.Cement_type cementType, bool increaseFinalValue) + public static Material SetCreep(this Material material, int to = 28, int humidity = 50, bool nonLinearCreep = true, StruSoft.Interop_24.Cement_type cementType = StruSoft.Interop_24.Cement_type.Class_S, bool increaseFinalValue = true) { if (material.Concrete == null) { @@ -245,9 +245,9 @@ public static Material SetCreep(this Material material, int to, int humidity, bo { T0 = to, RH = humidity, - Calculate_Ac_u = calculateAc, - Ac = ac, - U = u, + Calculate_Ac_u = true, + Ac = 0.001, // set a low value as FEM-Design will overwrite with the right value + U = 0.001, // set a low value as FEM-Design will overwrite with the right value Sigma_relevant = nonLinearCreep, Cement_type = cementType, Increase_final_value = increaseFinalValue @@ -263,7 +263,7 @@ public static Material SetCreep(this Material material, int to, int humidity, bo return newMaterial; } - public static Material SetShrinkage(this Material material, int to, int humidity, bool calculateAc, double ac, double u, StruSoft.Interop_24.Cement_type cementType) + public static Material SetShrinkage(this Material material, int to = 28, int humidity = 50, StruSoft.Interop_24.Cement_type cementType = StruSoft.Interop_24.Cement_type.Class_S) { if (material.Concrete == null) { @@ -276,9 +276,9 @@ public static Material SetShrinkage(this Material material, int to, int humidity { Ts = to, RH = humidity, - Calculate_Ac_u = calculateAc, - Ac = ac, - U = u, + Calculate_Ac_u = true, + Ac = 0.001, // set a low value as FEM-Design will overwrite with the right value + U = 0.001, // set a low value as FEM-Design will overwrite with the right value Cement_type = cementType, }; @@ -292,7 +292,7 @@ public static Material SetShrinkage(this Material material, int to, int humidity return newMaterial; } - public static Material setElasticity(this Material material, int to, StruSoft.Interop_24.Cement_type cementType) + public static Material setElasticity(this Material material, int to = 28, StruSoft.Interop_24.Cement_type cementType = StruSoft.Interop_24.Cement_type.Class_S) { if (material.Concrete == null) { diff --git a/FemDesign.Core/Model/Model.cs b/FemDesign.Core/Model/Model.cs index 8a1c86353..521e96523 100644 --- a/FemDesign.Core/Model/Model.cs +++ b/FemDesign.Core/Model/Model.cs @@ -105,8 +105,8 @@ public partial class Model [XmlElement("bolt_types", Order = 18)] public List BoltTypes { get; set; } - [XmlElement("bar_end_lib_type", Order = 19)] - public List BarEndReleaseTypes { get; set; } + //[XmlElement("bar_end_lib_type", Order = 19)] + //public List BarEndReleaseTypes { get; set; } [XmlElement("geometry", Order = 20)] public StruSoft.Interop.StruXml.Data.DatabaseGeometry Geometry { get; set; } @@ -324,7 +324,6 @@ public void SerializeModel(string filePath) } } - /// /// Serialize Model to string. /// diff --git a/FemDesign.Grasshopper/Materials/SetConcreteTimeDependant.cs b/FemDesign.Grasshopper/Materials/SetConcreteTimeDependant.cs index 75db972de..a36f9d327 100644 --- a/FemDesign.Grasshopper/Materials/SetConcreteTimeDependant.cs +++ b/FemDesign.Grasshopper/Materials/SetConcreteTimeDependant.cs @@ -45,25 +45,19 @@ protected override void RegisterEvaluationUnits(EvaluationUnitManager mngr) EvaluationUnit evaluationUnit = new EvaluationUnit("ExtendableComponent", "ExtComp", "A Test Component"); mngr.RegisterUnit(evaluationUnit); - evaluationUnit.RegisterInputParam(new Param_Integer(), "t0", "t0", "", GH_ParamAccess.item); + evaluationUnit.RegisterInputParam(new Param_Boolean(), "EN 1992-1-1:2004", "EN 1992-1-1:2004", "", GH_ParamAccess.item, new GH_Boolean(false)); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; - evaluationUnit.RegisterInputParam(new Param_Integer(), "Humidity", "Humidity", "", GH_ParamAccess.item); + evaluationUnit.RegisterInputParam(new Param_Integer(), "t0", "t0", "", GH_ParamAccess.item, new GH_Integer(28)); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; - evaluationUnit.RegisterInputParam(new Param_Boolean(), "CalculateAc", "CalculateAc", "", GH_ParamAccess.item, new GH_Boolean(false)); + evaluationUnit.RegisterInputParam(new Param_Integer(), "Humidity", "Humidity", "", GH_ParamAccess.item, new GH_Integer(50)); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; - evaluationUnit.RegisterInputParam(new Param_Number(), "Ac", "Ac", "", GH_ParamAccess.item, new GH_Number(1.0)); + evaluationUnit.RegisterInputParam(new Param_Boolean(), "NonLinearCreep", "NonLinearCreep", "", GH_ParamAccess.item, new GH_Boolean(true)); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; - evaluationUnit.RegisterInputParam(new Param_Number(), "u", "u", "", GH_ParamAccess.item, new GH_Number(1.0)); - evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; - - evaluationUnit.RegisterInputParam(new Param_Boolean(), "NonLinearCreep", "NonLinearCreep", "", GH_ParamAccess.item, new GH_Boolean(false)); - evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; - - evaluationUnit.RegisterInputParam(new Param_Integer(), "CementType", "CementType", "Cement Type as integer according to FemDesign API.", GH_ParamAccess.item, new GH_Integer(0)); + evaluationUnit.RegisterInputParam(new Param_String(), "CementType", "CementType", "Cement Type as integer according to FemDesign API.", GH_ParamAccess.item, new GH_String("Class_S")); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].EnumInput = Enum.GetNames(typeof(StruSoft.Interop_24.Cement_type)).ToList(); @@ -79,57 +73,48 @@ protected override void RegisterEvaluationUnits(EvaluationUnitManager mngr) gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[3]); gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[4]); gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[5]); - gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[6]); - gH_ExtendableMenu0.RegisterInputPlug(evaluationUnit.Inputs[7]); evaluationUnit.AddMenu(gH_ExtendableMenu0); - - evaluationUnit.RegisterInputParam(new Param_Integer(), "t0", "t0", "", GH_ParamAccess.item); - evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; - - evaluationUnit.RegisterInputParam(new Param_Integer(), "Humidity", "Humidity", "", GH_ParamAccess.item); - evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; - - evaluationUnit.RegisterInputParam(new Param_Boolean(), "CalculateAc", "CalculateAc", "", GH_ParamAccess.item, new GH_Boolean(false)); + evaluationUnit.RegisterInputParam(new Param_Boolean(), "EN 1992-1-1:2004", "EN 1992-1-1:2004", "", GH_ParamAccess.item, new GH_Boolean(false)); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; - evaluationUnit.RegisterInputParam(new Param_Number(), "Ac", "Ac", "", GH_ParamAccess.item, new GH_Number(1.0)); + evaluationUnit.RegisterInputParam(new Param_Integer(), "t0", "t0", "", GH_ParamAccess.item, new GH_Integer(28)); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; - evaluationUnit.RegisterInputParam(new Param_Number(), "u", "u", "", GH_ParamAccess.item, new GH_Number(1.0)); + evaluationUnit.RegisterInputParam(new Param_Integer(), "Humidity", "Humidity", "", GH_ParamAccess.item, new GH_Integer(50)); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; - evaluationUnit.RegisterInputParam(new Param_Integer(), "CementType", "CementType", "Cement Type as integer according to FemDesign API.", GH_ParamAccess.item, new GH_Integer(0)); + evaluationUnit.RegisterInputParam(new Param_String(), "CementType", "CementType", "Cement Type as integer according to FemDesign API.", GH_ParamAccess.item, new GH_String("Class_S")); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].EnumInput = Enum.GetNames(typeof(StruSoft.Interop_24.Cement_type)).ToList(); - GH_ExtendableMenu gH_ExtendableMenu1 = new GH_ExtendableMenu(0, ""); + GH_ExtendableMenu gH_ExtendableMenu1 = new GH_ExtendableMenu(1, ""); gH_ExtendableMenu1.Name = "Shrinkage"; gH_ExtendableMenu1.Expand(); + gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[6]); + gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[7]); gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[8]); gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[9]); - gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[10]); - gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[11]); - gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[12]); - gH_ExtendableMenu1.RegisterInputPlug(evaluationUnit.Inputs[13]); evaluationUnit.AddMenu(gH_ExtendableMenu1); + evaluationUnit.RegisterInputParam(new Param_Boolean(), "EN 1992-1-1:2004", "EN 1992-1-1:2004", "", GH_ParamAccess.item, new GH_Boolean(false)); + evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; - - evaluationUnit.RegisterInputParam(new Param_Integer(), "t0", "t0", "", GH_ParamAccess.item); + evaluationUnit.RegisterInputParam(new Param_Integer(), "t0", "t0", "", GH_ParamAccess.item, new GH_Integer(28)); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; - evaluationUnit.RegisterInputParam(new Param_Integer(), "CementType", "CementType", "Cement Type as integer according to FemDesign API.", GH_ParamAccess.item, new GH_Integer(0)); + evaluationUnit.RegisterInputParam(new Param_String(), "CementType", "CementType", "Cement Type as integer according to FemDesign API.", GH_ParamAccess.item, new GH_String("Class_S")); evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].Parameter.Optional = true; evaluationUnit.Inputs[evaluationUnit.Inputs.Count - 1].EnumInput = Enum.GetNames(typeof(StruSoft.Interop_24.Cement_type)).ToList(); - GH_ExtendableMenu gH_ExtendableMenu2 = new GH_ExtendableMenu(0, ""); + GH_ExtendableMenu gH_ExtendableMenu2 = new GH_ExtendableMenu(2, ""); gH_ExtendableMenu2.Name = "Elasticity"; gH_ExtendableMenu2.Expand(); - gH_ExtendableMenu2.RegisterInputPlug(evaluationUnit.Inputs[14]); - gH_ExtendableMenu2.RegisterInputPlug(evaluationUnit.Inputs[15]); + gH_ExtendableMenu2.RegisterInputPlug(evaluationUnit.Inputs[10]); + gH_ExtendableMenu2.RegisterInputPlug(evaluationUnit.Inputs[11]); + gH_ExtendableMenu2.RegisterInputPlug(evaluationUnit.Inputs[12]); evaluationUnit.AddMenu(gH_ExtendableMenu2); } @@ -146,69 +131,66 @@ protected override void SolveInstance(IGH_DataAccess DA, EvaluationUnit unit) DA.GetData(0, ref material); // creep + bool en1992_creep = false; + DA.GetData(1, ref en1992_creep); + int t0_creep = 0; - DA.GetData(1, ref t0_creep); + DA.GetData(2, ref t0_creep); int humidity = 0; - DA.GetData(2, ref humidity); - - bool calculateAc = false; - DA.GetData(3, ref calculateAc); - - double Ac = 1.0; - DA.GetData(4, ref Ac); - - double u = 1.0; - DA.GetData(5, ref u); + DA.GetData(3, ref humidity); bool nonLinearCreep = false; - DA.GetData(6, ref nonLinearCreep); + DA.GetData(4, ref nonLinearCreep); - int cementType_creep = 0; - DA.GetData(7, ref cementType_creep); + string cementType_creep = "Class_S"; + DA.GetData(5, ref cementType_creep); + Enum.TryParse(cementType_creep, out StruSoft.Interop_24.Cement_type _cementType_creep); bool increaseFinalValue = false; - DA.GetData(8, ref increaseFinalValue); - + DA.GetData(6, ref increaseFinalValue); // shrinkage + bool en1992_shrinkage = false; + DA.GetData(7, ref en1992_shrinkage); + int t0_shrinkage = 0; - DA.GetData(9, ref t0_shrinkage); + DA.GetData(8, ref t0_shrinkage); int humidity_shrinkage = 0; - DA.GetData(10, ref humidity_shrinkage); + DA.GetData(9, ref humidity_shrinkage); - bool calculateAc_shrinkage = false; - DA.GetData(11, ref calculateAc_shrinkage); - - double Ac_shrinkage = 1.0; - DA.GetData(12, ref Ac_shrinkage); - - double u_shrinkage = 1.0; - DA.GetData(13, ref u_shrinkage); - - int cementType_shrinkage = 0; - DA.GetData(14, ref cementType_shrinkage); + string cementType_shrinkage = "Class_S"; ; + DA.GetData(10, ref cementType_shrinkage); + Enum.TryParse(cementType_shrinkage, out StruSoft.Interop_24.Cement_type _cementType_shrinkage); // elasticity - int t0_elasticity = 0; - DA.GetData(15, ref t0_elasticity); + bool en1992_elasticity = false; + DA.GetData(11, ref en1992_elasticity); - int cementType_elasticity = 0; - DA.GetData(16, ref cementType_elasticity); - - - var newMaterial = material.SetCreep(t0_creep, humidity, calculateAc, Ac, u, nonLinearCreep, (StruSoft.Interop_24.Cement_type)cementType_creep, increaseFinalValue); - newMaterial = newMaterial.SetShrinkage(t0_shrinkage, humidity_shrinkage, calculateAc_shrinkage, Ac_shrinkage, u_shrinkage, (StruSoft.Interop_24.Cement_type)cementType_shrinkage); + int t0_elasticity = 0; + DA.GetData(12, ref t0_elasticity); - material = newMaterial.setElasticity(t0_elasticity, (StruSoft.Interop_24.Cement_type)cementType_elasticity); + string cementType_elasticity = "Class_S"; + DA.GetData(13, ref cementType_elasticity); + Enum.TryParse(cementType_elasticity, out StruSoft.Interop_24.Cement_type _cementType_elasticity); + // apply the method creep, shrinkage and elasticity using the booleans + if (en1992_creep) + { + material = material.SetCreep(t0_creep, humidity, nonLinearCreep, _cementType_creep, increaseFinalValue); + } + if (en1992_shrinkage) + { + material = material.SetShrinkage(t0_shrinkage, humidity_shrinkage, _cementType_shrinkage); + } + if (en1992_elasticity) + { + material = material.setElasticity(t0_elasticity, _cementType_elasticity); + } DA.SetData(0, material); - - - } /// From 55e54cf90ef9d232843f486277646f8c5e9bb766 Mon Sep 17 00:00:00 2001 From: MP Date: Tue, 25 Nov 2025 18:24:24 +0100 Subject: [PATCH 20/54] =?UTF-8?q?=F0=9F=90=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #1183 --- FemDesign.Core/Calculate/Analysis.cs | 10 ++++ FemDesign.Core/FemDesignConnection.cs | 51 ++++++++++++++----- .../CalculationParametersAnalysisDefine.cs | 2 +- 3 files changed, 48 insertions(+), 15 deletions(-) diff --git a/FemDesign.Core/Calculate/Analysis.cs b/FemDesign.Core/Calculate/Analysis.cs index fff27abee..ee1806db2 100644 --- a/FemDesign.Core/Calculate/Analysis.cs +++ b/FemDesign.Core/Calculate/Analysis.cs @@ -449,6 +449,16 @@ public static Analysis Eigenfrequencies(int numShapes = 3, int autoIteration = 0 return new Analysis(freq: freqSettings, calcFreq: true); } + /// + /// Define an eigenfrequencies analysis. + /// + /// + /// + public static Analysis Eigenfrequencies(Freq freqSettings) + { + return new Analysis(freq: freqSettings, calcFreq: true); + } + /// /// Define ground acceleration analysis. /// diff --git a/FemDesign.Core/FemDesignConnection.cs b/FemDesign.Core/FemDesignConnection.cs index 555b99e18..57f9f8ec6 100644 --- a/FemDesign.Core/FemDesignConnection.cs +++ b/FemDesign.Core/FemDesignConnection.cs @@ -361,50 +361,73 @@ public void RunAnalysis(Analysis analysis) string logfile = OutputFileHelper.GetLogfilePath(OutputDir); FdScript script; - if (analysis.Comb != null) + if(analysis.CalcCase || analysis.CalcComb) { - if(analysis.Comb.CombItem.Any(CombItem => CombItem.CombName != null) || analysis.Comb.CombItem.Count() == 0) + if (analysis.Comb == null) analysis.Comb = Comb.Default(); + var analysis_static = Analysis.StaticAnalysis(analysis.Comb, analysis.CalcCase, analysis.CalcComb); + + if (analysis_static.Comb.CombItem.Any(CombItem => CombItem.CombName != null) || analysis_static.Comb.CombItem.Count() == 0) { - analysis.SetCombAnalysis(this); + analysis_static.SetCombAnalysis(this); } script = new FdScript( logfile, new CmdUser(CmdUserModule.RESMODE), - new CmdCalculation(analysis)); - this.RunScript(script, "RunAnalysis"); - + new CmdCalculation(analysis_static)); + this.RunScript(script, "RunStaticAnalysis"); } if (analysis.Stability != null) { - analysis.SetStabilityAnalysis(this); + var statbility_analysis = analysis.DeepClone(); + statbility_analysis.SetStabilityAnalysis(this); + script = new FdScript( logfile, new CmdUser(CmdUserModule.RESMODE), - new CmdCalculation(analysis)); - this.RunScript(script, "RunAnalysis"); + new CmdCalculation(statbility_analysis)); + this.RunScript(script, "RunStabilityAnalysis"); } if (analysis.Imperfection != null) { - analysis.SetImperfectionAnalysis(this); + var imperfection_analysis = analysis.DeepClone(); + imperfection_analysis.SetImperfectionAnalysis(this); + script = new FdScript( logfile, new CmdUser(CmdUserModule.RESMODE), new CmdCalculation(analysis)); - this.RunScript(script, "RunAnalysis"); + this.RunScript(script, "RunImperfectionAnalysis"); + } + + if (analysis.CalcFreq) + { + if (analysis.Freq == null) analysis.Freq = Freq.Default(); + var freq_analysis = Analysis.Eigenfrequencies(analysis.Freq); + + script = new FdScript( + logfile, + new CmdUser(CmdUserModule.RESMODE), + new CmdCalculation(freq_analysis)); + this.RunScript(script, "RunFreqAnalysis"); } - if (analysis.Freq != null || analysis.Footfall != null || analysis.PeriodicEx != null || analysis.ExForce != null || analysis.GroundAcc != null) + // it requires a refactor + if (analysis.Footfall != null || analysis.PeriodicEx != null || analysis.ExForce != null || analysis.GroundAcc != null) { + analysis.CalcCase = false; + analysis.CalcComb = false; + analysis.CalcFreq = false; + analysis.CalcImpf = false; + analysis.CalcStab = false; + script = new FdScript( logfile, new CmdUser(CmdUserModule.RESMODE), new CmdCalculation(analysis)); this.RunScript(script, "RunAnalysis"); } - - } /// diff --git a/FemDesign.Grasshopper/Calculate/CalculationParametersAnalysisDefine.cs b/FemDesign.Grasshopper/Calculate/CalculationParametersAnalysisDefine.cs index a6422a024..6611ab657 100644 --- a/FemDesign.Grasshopper/Calculate/CalculationParametersAnalysisDefine.cs +++ b/FemDesign.Grasshopper/Calculate/CalculationParametersAnalysisDefine.cs @@ -87,7 +87,7 @@ protected override void SolveInstance(IGH_DataAccess DA) // pass } - FemDesign.Calculate.Comb _comb = FemDesign.Calculate.Comb.Default(); + FemDesign.Calculate.Comb _comb = null; if (!DA.GetData("Comb", ref _comb)) { // pass From 3fe198dafd4f95d6cdeade7e11333386348e99ad Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Wed, 26 Nov 2025 15:25:45 +0100 Subject: [PATCH 21/54] =?UTF-8?q?=F0=9F=9A=A7=20replace=20old=20pipe=20com?= =?UTF-8?q?ponents=20with=20the=20FemDesignConnectionHub=20handle=20method?= =?UTF-8?q?ology?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ApplicationRun_OBSOLETE2403.cs} | 6 +-- .../FemDesign.Grasshopper.csproj | 52 +++++++++---------- ...sed.cs => FemDesignConnectionComponent.cs} | 13 ++--- ...ect_HubBased.cs => FemDesignDisconnect.cs} | 8 +-- ...ased.cs => FemDesignGetCaseCombResults.cs} | 24 ++++----- ...Model_HubBased.cs => FemDesignGetModel.cs} | 6 +-- ..._HubBased.cs => FemDesignGetQuantities.cs} | 45 ++++++++++------ ...esignOpen_HubBased.cs => FemDesignOpen.cs} | 24 ++++----- ..._HubBased.cs => FemDesignResultFromBsc.cs} | 14 ++--- ...is_HubBased.cs => FemDesignRunAnalysis.cs} | 19 ++++--- ...sign_HubBased.cs => FemDesignRunDesign.cs} | 23 ++++---- ...nSaveAs_HubBased.cs => FemDesignSaveAs.cs} | 23 ++++---- ...Based.cs => FemDesignSaveDocumentation.cs} | 23 ++++---- ...nSetCfg_HubBased.cs => FemDesignSetCfg.cs} | 24 ++++----- ...g_HubBased.cs => FemDesignSetGlobalCfg.cs} | 24 ++++----- ...DesignConnectionComponent_OBSOLETE2403.cs} | 6 +-- .../PipeGetModel_OBSOLETE2403.cs} | 8 +-- .../PipeGetQuantities_OBSOLETE2403.cs} | 6 +-- .../PipeOpen_OBSOLETE2403.cs} | 6 +-- .../PipeReadCaseCombResults_OBSOLETE2403.cs} | 6 +-- .../PipeResultFromBsc_OBSOLETE2403.cs} | 6 +-- .../PipeRunAnalysis_OBSOLETE2403.cs} | 6 +-- .../PipeRunDesign_OBSOLETE2403.cs} | 6 +-- .../PipeSaveAs_OBSOLETE2403.cs} | 6 +-- .../PipeSaveDocumentation_OBSOLETE2403.cs} | 6 +-- .../PipeSetCfg_OBSOLETE2403.cs} | 6 +-- .../PipeSetGlobalCfg_OBSOLETE2403.cs} | 6 +-- 27 files changed, 215 insertions(+), 187 deletions(-) rename FemDesign.Grasshopper/Calculate/{ApplicationRun.cs => OBSOLETE/ApplicationRun_OBSOLETE2403.cs} (98%) rename FemDesign.Grasshopper/Pipe/{FemDesignConnection_HubBased.cs => FemDesignConnectionComponent.cs} (76%) rename FemDesign.Grasshopper/Pipe/{FemDesignDisconnect_HubBased.cs => FemDesignDisconnect.cs} (75%) rename FemDesign.Grasshopper/Pipe/{PipeReadCaseCombResults_HubBased.cs => FemDesignGetCaseCombResults.cs} (86%) rename FemDesign.Grasshopper/Pipe/{FemDesignGetModel_HubBased.cs => FemDesignGetModel.cs} (84%) rename FemDesign.Grasshopper/Pipe/{FemDesignGetQuantities_HubBased.cs => FemDesignGetQuantities.cs} (57%) rename FemDesign.Grasshopper/Pipe/{FemDesignOpen_HubBased.cs => FemDesignOpen.cs} (81%) rename FemDesign.Grasshopper/Pipe/{FemDesignResultFromBsc_HubBased.cs => FemDesignResultFromBsc.cs} (83%) rename FemDesign.Grasshopper/Pipe/{FemDesignRunAnalysis_HubBased.cs => FemDesignRunAnalysis.cs} (77%) rename FemDesign.Grasshopper/Pipe/{FemDesignRunDesign_HubBased.cs => FemDesignRunDesign.cs} (77%) rename FemDesign.Grasshopper/Pipe/{FemDesignSaveAs_HubBased.cs => FemDesignSaveAs.cs} (75%) rename FemDesign.Grasshopper/Pipe/{FemDesignSaveDocumentation_HubBased.cs => FemDesignSaveDocumentation.cs} (76%) rename FemDesign.Grasshopper/Pipe/{FemDesignSetCfg_HubBased.cs => FemDesignSetCfg.cs} (71%) rename FemDesign.Grasshopper/Pipe/{FemDesignSetGlobalCfg_HubBased.cs => FemDesignSetGlobalCfg.cs} (71%) rename FemDesign.Grasshopper/Pipe/{FemDesignConnection.cs => OBSOLETE/FemDesignConnectionComponent_OBSOLETE2403.cs} (91%) rename FemDesign.Grasshopper/Pipe/{PipeGetModel.cs => OBSOLETE/PipeGetModel_OBSOLETE2403.cs} (88%) rename FemDesign.Grasshopper/Pipe/{PipeGetQuantities.cs => OBSOLETE/PipeGetQuantities_OBSOLETE2403.cs} (93%) rename FemDesign.Grasshopper/Pipe/{PipeOpen.cs => OBSOLETE/PipeOpen_OBSOLETE2403.cs} (94%) rename FemDesign.Grasshopper/Pipe/{PipeReadCaseCombResults.cs => OBSOLETE/PipeReadCaseCombResults_OBSOLETE2403.cs} (95%) rename FemDesign.Grasshopper/Pipe/{PipeResultFromBsc.cs => OBSOLETE/PipeResultFromBsc_OBSOLETE2403.cs} (94%) rename FemDesign.Grasshopper/Pipe/{PipeRunAnalysis.cs => OBSOLETE/PipeRunAnalysis_OBSOLETE2403.cs} (92%) rename FemDesign.Grasshopper/Pipe/{PipeRunDesign.cs => OBSOLETE/PipeRunDesign_OBSOLETE2403.cs} (93%) rename FemDesign.Grasshopper/Pipe/{PipeSaveAs.cs => OBSOLETE/PipeSaveAs_OBSOLETE2403.cs} (94%) rename FemDesign.Grasshopper/Pipe/{PipeSaveDocumentation.cs => OBSOLETE/PipeSaveDocumentation_OBSOLETE2403.cs} (93%) rename FemDesign.Grasshopper/Pipe/{PipeSetCfg.cs => OBSOLETE/PipeSetCfg_OBSOLETE2403.cs} (93%) rename FemDesign.Grasshopper/Pipe/{PipeSetGlobalCfg.cs => OBSOLETE/PipeSetGlobalCfg_OBSOLETE2403.cs} (91%) diff --git a/FemDesign.Grasshopper/Calculate/ApplicationRun.cs b/FemDesign.Grasshopper/Calculate/OBSOLETE/ApplicationRun_OBSOLETE2403.cs similarity index 98% rename from FemDesign.Grasshopper/Calculate/ApplicationRun.cs rename to FemDesign.Grasshopper/Calculate/OBSOLETE/ApplicationRun_OBSOLETE2403.cs index 110075ef0..2923e8e4c 100644 --- a/FemDesign.Grasshopper/Calculate/ApplicationRun.cs +++ b/FemDesign.Grasshopper/Calculate/OBSOLETE/ApplicationRun_OBSOLETE2403.cs @@ -22,9 +22,9 @@ namespace FemDesign.Grasshopper { - public class ApplicationRun : FEM_Design_API_Component + public class ApplicationRun_OBSOLETE2403 : FEM_Design_API_Component { - public ApplicationRun() : base("Application.Run", "RunApplication", "Run application for a model.", CategoryName.Name(), SubCategoryName.Cat7a()) + public ApplicationRun_OBSOLETE2403() : base("Application.Run", "RunApplication", "Run application for a model.", CategoryName.Name(), SubCategoryName.Cat7a()) { _minimised = false; _keepOpen = false; @@ -377,7 +377,7 @@ public override Guid ComponentGuid get { return new Guid("{64EF2A60-5694-4901-B493-57AF83C04969}"); } } - public override GH_Exposure Exposure => GH_Exposure.primary; + public override GH_Exposure Exposure => GH_Exposure.hidden; } } \ No newline at end of file diff --git a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj index db88e837b..ea0e74859 100644 --- a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj +++ b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj @@ -73,11 +73,11 @@ - + - - + + @@ -224,35 +224,35 @@ - - - + + + - - - + + + - - - - - - - - - - - + + + + + + + + + + + - + - + @@ -291,9 +291,9 @@ - - - + + + True True @@ -308,7 +308,7 @@ - + diff --git a/FemDesign.Grasshopper/Pipe/FemDesignConnection_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignConnectionComponent.cs similarity index 76% rename from FemDesign.Grasshopper/Pipe/FemDesignConnection_HubBased.cs rename to FemDesign.Grasshopper/Pipe/FemDesignConnectionComponent.cs index 422c29279..d35f0e141 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignConnection_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignConnectionComponent.cs @@ -9,22 +9,23 @@ namespace FemDesign.Grasshopper /// /// Configures the shared FemDesignConnectionHub and exposes a lightweight handle. /// - public class FemDesignConnection_HubBased : FEM_Design_API_Component + public class FemDesignConnectionComponent: FEM_Design_API_Component { private Guid _handle = Guid.Empty; - public FemDesignConnection_HubBased() : base("FEM-Design.Connection (Hub)", "Connection", "Create or configure a shared FEM-Design connection.", CategoryName.Name(), SubCategoryName.CatHub()) + public FemDesignConnectionComponent() : base("FEM-Design.Connection", "Connection", "Create or configure a shared FEM-Design connection. Use it to specify the 'Connection' for the LiveLink components.\n\n" + + "Note: Removing this component will automatically close the FEM-Design window. To keep FEM-Design open after closing the connection, use the 'Disconnect' component.", CategoryName.Name(), SubCategoryName.Cat8()) { } protected override void RegisterInputParams(GH_InputParamManager pManager) { - pManager.AddTextParameter("FEM-Design dir", "FEM-Design dir", "Path to FEM-Design installation.", GH_ParamAccess.item, @"C:\\Program Files\\StruSoft\\FEM-Design 24\\"); + pManager.AddTextParameter("FEM-Design dir", "FEM-Design dir", "Path to the FEM-Design installation directory.", GH_ParamAccess.item, @"C:\\Program Files\\StruSoft\\FEM-Design 24\\"); pManager[pManager.ParamCount - 1].Optional = true; - pManager.AddBooleanParameter("Minimized", "Minimized", "Start FEM-Design minimized.", GH_ParamAccess.item, true); + pManager.AddBooleanParameter("Minimized", "Minimized", "If true, FEM-Design window will open in a minimised mode.", GH_ParamAccess.item, true); pManager[pManager.ParamCount - 1].Optional = true; - pManager.AddTextParameter("OutputDir", "OutputDir", "Directory for scripts/logs. Default: GH file directory or temp.", GH_ParamAccess.item); + pManager.AddTextParameter("OutputDir", "OutputDir", "The directory where the script, log and result files will be saved. By default, the files will be written to the same directory as your .gh script.", GH_ParamAccess.item); pManager[pManager.ParamCount - 1].Optional = true; pManager.AddBooleanParameter("DeleteOutputFolder", "DeleteOutputFolder", "Delete output directory on disconnect.", GH_ParamAccess.item, false); @@ -89,7 +90,7 @@ public override void RemovedFromDocument(GH_Document document) } protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_Connection; - public override Guid ComponentGuid => new Guid("9F2B6F6D-9EB8-4B0A-9B55-9B3E3B5B5D67"); + public override Guid ComponentGuid => new Guid("{CBDD03EE-9F56-42FC-AA8D-7C45C152EF1C}"); public override GH_Exposure Exposure => GH_Exposure.primary; } } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignDisconnect_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignDisconnect.cs similarity index 75% rename from FemDesign.Grasshopper/Pipe/FemDesignDisconnect_HubBased.cs rename to FemDesign.Grasshopper/Pipe/FemDesignDisconnect.cs index 16868ba01..5deab0d41 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignDisconnect_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignDisconnect.cs @@ -8,15 +8,15 @@ namespace FemDesign.Grasshopper /// /// Disconnects a specific FEM-Design hub connection (standard GH_Component, UI-blocking). /// - public class FemDesignDisconnect_HubBased : FEM_Design_API_Component + public class FemDesignDisconnect : FEM_Design_API_Component { - public FemDesignDisconnect_HubBased() : base("FEM-Design.Disconnect (Hub)", "Disconnect", "Close the FEM-Design instance associated with the given hub connection.", CategoryName.Name(), SubCategoryName.CatHub()) + public FemDesignDisconnect() : base("FEM-Design.Disconnect", "Disconnect", "Detach the connection, but keeps open FEM-Design.", CategoryName.Name(), SubCategoryName.Cat8()) { } protected override void RegisterInputParams(GH_InputParamManager pManager) { - pManager.AddGenericParameter("Connection", "Connection", "Hub connection handle to disconnect.", GH_ParamAccess.item); + pManager.AddGenericParameter("Connection", "Connection", "Connection handle to disconnect.", GH_ParamAccess.item); } protected override void RegisterOutputParams(GH_OutputParamManager pManager) @@ -52,7 +52,7 @@ protected override void SolveInstance(IGH_DataAccess DA) } protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_Connection; - public override Guid ComponentGuid => new Guid("D1D3C1D9-0E4F-4A5E-8C6B-3C1A4E2B9D61"); + public override Guid ComponentGuid => new Guid("{5A52243F-4136-48F0-9279-3E7E3DF82D2E}"); public override GH_Exposure Exposure => GH_Exposure.secondary; } } diff --git a/FemDesign.Grasshopper/Pipe/PipeReadCaseCombResults_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignGetCaseCombResults.cs similarity index 86% rename from FemDesign.Grasshopper/Pipe/PipeReadCaseCombResults_HubBased.cs rename to FemDesign.Grasshopper/Pipe/FemDesignGetCaseCombResults.cs index af7d727aa..10de52278 100644 --- a/FemDesign.Grasshopper/Pipe/PipeReadCaseCombResults_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignGetCaseCombResults.cs @@ -15,16 +15,16 @@ namespace FemDesign.Grasshopper /// Read load cases and load combinations results using the shared hub connection (standard GH_Component, UI-blocking). /// Mirrors PipeReadResults logic but executes via FemDesignConnectionHub. /// - public class FemDesignGetCaseCombResults_HubBased : FEM_Design_API_Component + public class FemDesignGetCaseCombResults : FEM_Design_API_Component { - public FemDesignGetCaseCombResults_HubBased() : base("FEM-Design.GetCaseCombResults (Hub)", "CaseCombResults", "Read load cases and load combinations results from current model using shared connection.", CategoryName.Name(), SubCategoryName.CatHub()) + public FemDesignGetCaseCombResults() : base("FEM-Design.GetCaseCombResults", "CaseCombResults", "Read load cases and load combinations results from current model using shared connection. Result files (.csv) are saved into the output directory.", CategoryName.Name(), SubCategoryName.Cat8()) { } protected override void RegisterInputParams(GH_InputParamManager pManager) { pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); - pManager.AddTextParameter("ResultType", "ResultType", "Result type names under FemDesign.Results namespace (e.g. 'NodalDisplacement').", GH_ParamAccess.list); + pManager.AddTextParameter("ResultType", "ResultType", "Result type names (e.g. 'NodalDisplacement').", GH_ParamAccess.list); pManager.AddTextParameter("Case Name", "Case Name", "Optional. Load case names to filter. If empty, all cases are considered.", GH_ParamAccess.list); pManager[pManager.ParamCount - 1].Optional = true; pManager.AddTextParameter("Combination Name", "Combo Name", "Optional. Load combination names to filter. If empty, all combinations are considered.", GH_ParamAccess.list); @@ -33,7 +33,8 @@ protected override void RegisterInputParams(GH_InputParamManager pManager) pManager[pManager.ParamCount - 1].Optional = true; pManager.AddGenericParameter("Options", "Options", "Optional settings for output location. Default is 'ByStep' and 'Vertices'.", GH_ParamAccess.item); pManager[pManager.ParamCount - 1].Optional = true; - pManager.AddGenericParameter("Units", "Units", "Optional. Specify result units for specific types.", GH_ParamAccess.item); + pManager.AddGenericParameter("Units", "Units", "Optional. Specify result units for specific types." + + "Default Units are: Length.m, Angle.deg, SectionalData.m, Force.kN, Mass.kg, Displacement.m, Stress.Pa", GH_ParamAccess.item); pManager[pManager.ParamCount - 1].Optional = true; } @@ -74,10 +75,10 @@ protected override void SolveInstance(IGH_DataAccess DA) try { - FemDesignConnectionHub.InvokeAsync(handle.Id, conn => + FemDesignConnectionHub.InvokeAsync(handle.Id, connection => { void onOutput(string s) { log.Add(s); } - conn.OnOutput += onOutput; + connection.OnOutput += onOutput; try { int resIndex = 0; @@ -88,14 +89,13 @@ protected override void SolveInstance(IGH_DataAccess DA) string typeName = $"FemDesign.Results.{rt}, FemDesign.Core"; Type resultType = Type.GetType(typeName); - if (resultType == null) - throw new ArgumentException($"Class object of name '{typeName}' does not exist!"); + // Helper to invoke private generic methods on FemDesignConnection List InvokeGeneric(string methodName, Type genericType, object[] args) { - var mi = conn.GetType().GetMethod(methodName, BindingFlags.Instance | BindingFlags.NonPublic).MakeGenericMethod(genericType); - var res = (IEnumerable)mi.Invoke(conn, args); + var mi = connection.GetType().GetMethod(methodName, BindingFlags.Instance | BindingFlags.NonPublic).MakeGenericMethod(genericType); + var res = (IEnumerable)mi.Invoke(connection, args); return res.ToList(); } @@ -131,7 +131,7 @@ protected override void SolveInstance(IGH_DataAccess DA) } finally { - conn.OnOutput -= onOutput; + connection.OnOutput -= onOutput; } }).GetAwaiter().GetResult(); @@ -150,7 +150,7 @@ protected override void SolveInstance(IGH_DataAccess DA) } protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_readresult; - public override Guid ComponentGuid => new Guid("D9B9F6B4-62C3-4D62-9E6B-9E2B1D5B2C8A"); + public override Guid ComponentGuid => new Guid("{51BEFDB6-363C-4F5C-99B1-D75C5FA670F7}"); public override GH_Exposure Exposure => GH_Exposure.tertiary; } } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignGetModel_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignGetModel.cs similarity index 84% rename from FemDesign.Grasshopper/Pipe/FemDesignGetModel_HubBased.cs rename to FemDesign.Grasshopper/Pipe/FemDesignGetModel.cs index 1bb960cdd..57c39296c 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignGetModel_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignGetModel.cs @@ -8,9 +8,9 @@ namespace FemDesign.Grasshopper /// /// Get the current open model using the shared hub connection (standard GH_Component, UI-blocking). /// - public class FemDesignGetModel_HubBased : FEM_Design_API_Component + public class FemDesignGetModel : FEM_Design_API_Component { - public FemDesignGetModel_HubBased() : base("FEM-Design.GetModel (Hub)", "GetModel", "Get the current open model in FEM-Design using shared connection.", CategoryName.Name(), SubCategoryName.CatHub()) + public FemDesignGetModel() : base("FEM-Design.GetModel", "GetModel", "Get the current open model in FEM-Design using shared connection.", CategoryName.Name(), SubCategoryName.Cat8()) { } @@ -67,7 +67,7 @@ protected override void SolveInstance(IGH_DataAccess DA) } protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_readresult; - public override Guid ComponentGuid => new Guid("B6A1C36B-2B99-4B9F-9C48-8F3D6A9F1E2C"); + public override Guid ComponentGuid => new Guid("{65B2948C-4F04-4038-AC14-694091005DC5}"); public override GH_Exposure Exposure => GH_Exposure.primary; } } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignGetQuantities_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignGetQuantities.cs similarity index 57% rename from FemDesign.Grasshopper/Pipe/FemDesignGetQuantities_HubBased.cs rename to FemDesign.Grasshopper/Pipe/FemDesignGetQuantities.cs index 3d5858429..be1983e5f 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignGetQuantities_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignGetQuantities.cs @@ -4,22 +4,32 @@ using System.Reflection; using Grasshopper.Kernel; +using FemDesign.Calculate; + namespace FemDesign.Grasshopper { /// /// Get quantities using the shared hub connection (standard GH_Component, UI-blocking). /// Mirrors PipeGetQuantities behavior. /// - public class FemDesignGetQuantities_HubBased : FEM_Design_API_Component + public class FemDesignGetQuantities: FEM_Design_API_Component { - public FemDesignGetQuantities_HubBased() : base("FEM-Design.GetQuantities (Hub)", "GetQuantities", "Get quantities from current model using shared connection.", CategoryName.Name(), SubCategoryName.CatHub()) + public FemDesignGetQuantities() : base("FEM-Design.GetQuantities", "GetQuantities", "Get quantities from current model using shared connection. Result files (.csv) are saved into the output directory.", CategoryName.Name(), SubCategoryName.Cat8()) { } protected override void RegisterInputParams(GH_InputParamManager pManager) { pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); - pManager.AddTextParameter("QuantityType", "QuantityType", "Quantity type name matching FemDesign.Results classes.", GH_ParamAccess.item); + pManager.AddTextParameter("QuantityType", "QuantityType", "Quantity type:\n\n" + + nameof(ListProc.QuantityEstimationConcrete) + "\n" + + nameof(ListProc.QuantityEstimationReinforcement) + "\n" + + nameof(ListProc.QuantityEstimationSteel) + "\n" + + nameof(ListProc.QuantityEstimationTimber) + "\n" + + nameof(ListProc.QuantityEstimationTimberPanel) + "\n" + + nameof(ListProc.QuantityEstimationMasonry) + "\n" + + nameof(ListProc.QuantityEstimationGeneral) + "\n" + + nameof(ListProc.QuantityEstimationProfiledPanel), GH_ParamAccess.item); pManager.AddGenericParameter("Units", "Units", "Optional result units.", GH_ParamAccess.item); pManager[pManager.ParamCount - 1].Optional = true; } @@ -47,27 +57,32 @@ protected override void SolveInstance(IGH_DataAccess DA) bool success = false; var results = new List(); - try + // check inputs + if (string.IsNullOrWhiteSpace(resultTypeName)) + throw new Exception("'QuantityType' is null or empty."); + + // try getting the quantity result type + string typeName = $"FemDesign.Results.{resultTypeName}, FemDesign.Core"; + Type resultType = Type.GetType(typeName); + if (resultType == null) + throw new ArgumentException($"QuantityType '{typeName}' does not exist!"); + + try { - FemDesignConnectionHub.InvokeAsync(handle.Id, conn => + FemDesignConnectionHub.InvokeAsync(handle.Id, connection => { void onOutput(string s) { log.Add(s); } - conn.OnOutput += onOutput; + connection.OnOutput += onOutput; try { - if (string.IsNullOrWhiteSpace(resultTypeName)) throw new Exception("'QuantityType' is null or empty."); - string typeName = $"FemDesign.Results.{resultTypeName}, FemDesign.Core"; - Type resultType = Type.GetType(typeName); - if (resultType == null) throw new ArgumentException($"Class object of name '{typeName}' does not exist!"); - var methodName = nameof(FemDesign.FemDesignConnection._getQuantities); - var mi = conn.GetType().GetMethod(methodName, BindingFlags.Instance | BindingFlags.NonPublic).MakeGenericMethod(resultType); - var res = (IEnumerable)mi.Invoke(conn, new object[] { units, true }); + var method = connection.GetType().GetMethod(methodName, BindingFlags.Instance | BindingFlags.NonPublic).MakeGenericMethod(resultType); + var res = (IEnumerable)method.Invoke(connection, new object[] { units, false }); results.AddRange(res); } finally { - conn.OnOutput -= onOutput; + connection.OnOutput -= onOutput; } }).GetAwaiter().GetResult(); @@ -86,7 +101,7 @@ protected override void SolveInstance(IGH_DataAccess DA) } protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_readresult; - public override Guid ComponentGuid => new Guid("1F2D4C7A-6A39-4F73-9F20-1C5E9A7A4B62"); + public override Guid ComponentGuid => new Guid("{4498FBC1-1EA9-4885-8658-FF79652C51CB}"); public override GH_Exposure Exposure => GH_Exposure.tertiary; } } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignOpen_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignOpen.cs similarity index 81% rename from FemDesign.Grasshopper/Pipe/FemDesignOpen_HubBased.cs rename to FemDesign.Grasshopper/Pipe/FemDesignOpen.cs index 0840ca013..8e8cc03a3 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignOpen_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignOpen.cs @@ -8,16 +8,16 @@ namespace FemDesign.Grasshopper /// /// Open a model using the shared hub connection (standard GH_Component, UI-blocking). /// - public class FemDesignOpen_HubBased : FEM_Design_API_Component + public class FemDesignOpen : FEM_Design_API_Component { - public FemDesignOpen_HubBased() : base("FEM-Design.Open (Hub)", "Open", "Open model in FEM-Design using shared connection.", CategoryName.Name(), SubCategoryName.CatHub()) + public FemDesignOpen() : base("FEM-Design.OpenModel", "OpenModel", "Open model in FEM-Design using shared connection.", CategoryName.Name(), SubCategoryName.Cat8()) { } protected override void RegisterInputParams(GH_InputParamManager pManager) { pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); - pManager.AddGenericParameter("Model", "Model", "Model object or file path.", GH_ParamAccess.item); + pManager.AddGenericParameter("Model", "Model", "Model to open or file path.", GH_ParamAccess.item); } protected override void RegisterOutputParams(GH_OutputParamManager pManager) @@ -43,40 +43,40 @@ protected override void SolveInstance(IGH_DataAccess DA) try { // Block UI while invoking hub (acceptable per requirements) - FemDesignConnectionHub.InvokeAsync(handle.Id, conn => + FemDesignConnectionHub.InvokeAsync(handle.Id, connection => { void onOutput(string s) { log.Add(s); } - conn.OnOutput += onOutput; + connection.OnOutput += onOutput; try { if (modelIn is string path) { - conn.Open(path); + connection.Open(path); } else if (modelIn is Model m) { - conn.Open(m); + connection.Open(m); } else if (modelIn != null && modelIn.Value is string) { string vpath = modelIn.Value as string; - conn.Open(vpath); + connection.Open(vpath); } else if (modelIn != null && modelIn.Value is Model) { Model vm = modelIn.Value as Model; - conn.Open(vm); + connection.Open(vm); } else { throw new Exception("Unsupported 'Model' input. Provide file path or FemDesign.Model."); } - modelOut = conn.GetModel(); + modelOut = connection.GetModel(); } finally { - conn.OnOutput -= onOutput; + connection.OnOutput -= onOutput; } }).GetAwaiter().GetResult(); @@ -95,7 +95,7 @@ protected override void SolveInstance(IGH_DataAccess DA) } protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_open; - public override Guid ComponentGuid => new Guid("7E2C6206-7B4A-4C6F-8F39-59B324F11213"); + public override Guid ComponentGuid => new Guid("{667EFCEA-8B2D-4516-ADC5-DBC08585CBA1}"); public override GH_Exposure Exposure => GH_Exposure.primary; } } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignResultFromBsc_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignResultFromBsc.cs similarity index 83% rename from FemDesign.Grasshopper/Pipe/FemDesignResultFromBsc_HubBased.cs rename to FemDesign.Grasshopper/Pipe/FemDesignResultFromBsc.cs index 6010e5bf9..0fdfeef2a 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignResultFromBsc_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignResultFromBsc.cs @@ -11,9 +11,9 @@ namespace FemDesign.Grasshopper /// /// Extract results from a model using a .bsc file with the shared hub connection (standard GH_Component, UI-blocking). /// - public class FemDesignResultFromBsc_HubBased : FEM_Design_API_Component + public class FemDesignResultFromBsc : FEM_Design_API_Component { - public FemDesignResultFromBsc_HubBased() : base("FEM-Design.GetResultFromBsc (Hub)", "ResultFromBsc", "Extract results using .bsc with shared connection.", CategoryName.Name(), SubCategoryName.CatHub()) + public FemDesignResultFromBsc() : base("FEM-Design.GetResultFromBsc", "ResultFromBsc", "Extract results using a .bsc file with shared connection.", CategoryName.Name(), SubCategoryName.Cat8()) { } @@ -55,10 +55,10 @@ protected override void SolveInstance(IGH_DataAccess DA) try { - FemDesignConnectionHub.InvokeAsync(handle.Id, conn => + FemDesignConnectionHub.InvokeAsync(handle.Id, connection => { void onOutput(string s) { log.Add(s); } - conn.OnOutput += onOutput; + connection.OnOutput += onOutput; try { if (csvPaths == null || csvPaths.Count == 0) @@ -66,7 +66,7 @@ protected override void SolveInstance(IGH_DataAccess DA) csvPaths = bscPaths.Select(b => System.IO.Path.ChangeExtension(b, "csv")).ToList(); } - var results = bscPaths.Zip(csvPaths, (bsc, csv) => conn.GetResultsFromBsc(bsc, csv, elements)); + var results = bscPaths.Zip(csvPaths, (bsc, csv) => connection.GetResultsFromBsc(bsc, csv, elements)); int i = 0; foreach (var r in results) { @@ -76,7 +76,7 @@ protected override void SolveInstance(IGH_DataAccess DA) } finally { - conn.OnOutput -= onOutput; + connection.OnOutput -= onOutput; } }).GetAwaiter().GetResult(); @@ -95,7 +95,7 @@ protected override void SolveInstance(IGH_DataAccess DA) } protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_readresult; - public override Guid ComponentGuid => new Guid("5B83B0F7-2A6A-4F0C-82D1-1A2A7CC9E4DA"); + public override Guid ComponentGuid => new Guid("{59667BED-D84B-47E7-BC56-B6D99DC5C274}"); public override GH_Exposure Exposure => GH_Exposure.tertiary; } } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignRunAnalysis_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignRunAnalysis.cs similarity index 77% rename from FemDesign.Grasshopper/Pipe/FemDesignRunAnalysis_HubBased.cs rename to FemDesign.Grasshopper/Pipe/FemDesignRunAnalysis.cs index 27c7dd529..e65f34b55 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignRunAnalysis_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignRunAnalysis.cs @@ -9,9 +9,9 @@ namespace FemDesign.Grasshopper /// /// Run analysis using the shared hub connection (standard GH_Component, UI-blocking). /// - public class FemDesignRunAnalysis_HubBased : FEM_Design_API_Component + public class FemDesignRunAnalysis : FEM_Design_API_Component { - public FemDesignRunAnalysis_HubBased() : base("FEM-Design.RunAnalysis (Hub)", "RunAnalysis", "Run analysis on current/open model using shared connection.", CategoryName.Name(), SubCategoryName.CatHub()) + public FemDesignRunAnalysis() : base("FEM-Design.RunAnalysis", "RunAnalysis", "Run analysis on current/open model using shared connection.", CategoryName.Name(), SubCategoryName.Cat8()) { } @@ -39,20 +39,23 @@ protected override void SolveInstance(IGH_DataAccess DA) var log = new List(); bool success = false; + // check inputs + if (analysis == null) + throw new Exception("'Analysis' input is null."); + try { - FemDesignConnectionHub.InvokeAsync(handle.Id, conn => + FemDesignConnectionHub.InvokeAsync(handle.Id, connection => { void onOutput(string s) { log.Add(s); } - conn.OnOutput += onOutput; + connection.OnOutput += onOutput; try { - if (analysis == null) throw new Exception("'Analysis' input is null."); - conn.RunAnalysis(analysis); + connection.RunAnalysis(analysis); } finally { - conn.OnOutput -= onOutput; + connection.OnOutput -= onOutput; } }).GetAwaiter().GetResult(); @@ -70,7 +73,7 @@ protected override void SolveInstance(IGH_DataAccess DA) } protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_RunAnalysis; - public override Guid ComponentGuid => new Guid("E3E3A9B8-68C4-4B9F-BE18-ACC6E9C8B852"); + public override Guid ComponentGuid => new Guid("{166B94CD-DCE9-467A-B693-01405D22D20E}"); public override GH_Exposure Exposure => GH_Exposure.primary; } } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignRunDesign_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignRunDesign.cs similarity index 77% rename from FemDesign.Grasshopper/Pipe/FemDesignRunDesign_HubBased.cs rename to FemDesign.Grasshopper/Pipe/FemDesignRunDesign.cs index a8ea4b43b..55473312b 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignRunDesign_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignRunDesign.cs @@ -9,9 +9,9 @@ namespace FemDesign.Grasshopper /// /// Run design using the shared hub connection (standard GH_Component, UI-blocking). /// - public class FemDesignRunDesign_HubBased : FEM_Design_API_Component + public class FemDesignRunDesign : FEM_Design_API_Component { - public FemDesignRunDesign_HubBased() : base("FEM-Design.RunDesign (Hub)", "RunDesign", "Run design on current/open model using shared connection.", CategoryName.Name(), SubCategoryName.CatHub()) + public FemDesignRunDesign() : base("FEM-Design.RunDesign", "RunDesign", "Run design on current/open model using shared connection.", CategoryName.Name(), SubCategoryName.CatHub()) { } @@ -44,21 +44,24 @@ protected override void SolveInstance(IGH_DataAccess DA) var log = new List(); bool success = false; - try - { - FemDesignConnectionHub.InvokeAsync(handle.Id, conn => + // check inputs + if (design == null) + throw new Exception("'Design' input is null."); + + try + { + FemDesignConnectionHub.InvokeAsync(handle.Id, connection => { void onOutput(string s) { log.Add(s); } - conn.OnOutput += onOutput; + connection.OnOutput += onOutput; try { - if (design == null) throw new Exception("'Design' input is null."); var userModule = design.Mode; - conn.RunDesign(userModule, design, designGroups); + connection.RunDesign(userModule, design, designGroups); } finally { - conn.OnOutput -= onOutput; + connection.OnOutput -= onOutput; } }).GetAwaiter().GetResult(); @@ -76,7 +79,7 @@ protected override void SolveInstance(IGH_DataAccess DA) } protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_RunDesign; - public override Guid ComponentGuid => new Guid("B2CDE1C7-4C8F-4B57-9B3B-7B4A1E2C6C9E"); + public override Guid ComponentGuid => new Guid("{0F185ABC-C496-4C6A-A59C-848ADE3A8390}"); public override GH_Exposure Exposure => GH_Exposure.secondary; } } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignSaveAs_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignSaveAs.cs similarity index 75% rename from FemDesign.Grasshopper/Pipe/FemDesignSaveAs_HubBased.cs rename to FemDesign.Grasshopper/Pipe/FemDesignSaveAs.cs index 3831c5038..d54ca8a00 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignSaveAs_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignSaveAs.cs @@ -8,9 +8,9 @@ namespace FemDesign.Grasshopper /// /// Save model using the shared hub connection (standard GH_Component, UI-blocking). /// - public class FemDesignSaveAs_HubBased : FEM_Design_API_Component + public class FemDesignSaveAs : FEM_Design_API_Component { - public FemDesignSaveAs_HubBased() : base("FEM-Design.Save (Hub)", "Save", "Save the current model using shared connection.", CategoryName.Name(), SubCategoryName.CatHub()) + public FemDesignSaveAs() : base("FEM-Design.Save", "Save", "Save the current model using shared connection.", CategoryName.Name(), SubCategoryName.Cat8()) { } @@ -38,20 +38,23 @@ protected override void SolveInstance(IGH_DataAccess DA) var log = new List(); bool success = false; - try - { - FemDesignConnectionHub.InvokeAsync(handle.Id, conn => + // check inputs + if (string.IsNullOrWhiteSpace(filePath)) + throw new Exception("'FilePath' is null or empty."); + + try + { + FemDesignConnectionHub.InvokeAsync(handle.Id, connection => { void onOutput(string s) { log.Add(s); } - conn.OnOutput += onOutput; + connection.OnOutput += onOutput; try { - if (string.IsNullOrWhiteSpace(filePath)) throw new Exception("'FilePath' is null or empty."); - conn.Save(filePath); + connection.Save(filePath); } finally { - conn.OnOutput -= onOutput; + connection.OnOutput -= onOutput; } }).GetAwaiter().GetResult(); @@ -69,7 +72,7 @@ protected override void SolveInstance(IGH_DataAccess DA) } protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_SaveAs; - public override Guid ComponentGuid => new Guid("7C4F2E2B-5B9A-4F7B-BB38-2E7C6F3A1D42"); + public override Guid ComponentGuid => new Guid("{9997E67D-1212-4EB4-BA95-B050D6A0563A}"); public override GH_Exposure Exposure => GH_Exposure.primary; } } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignSaveDocumentation_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignSaveDocumentation.cs similarity index 76% rename from FemDesign.Grasshopper/Pipe/FemDesignSaveDocumentation_HubBased.cs rename to FemDesign.Grasshopper/Pipe/FemDesignSaveDocumentation.cs index 014318958..a2a0b3011 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignSaveDocumentation_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignSaveDocumentation.cs @@ -8,9 +8,9 @@ namespace FemDesign.Grasshopper /// /// Save documentation using the shared hub connection (standard GH_Component, UI-blocking). /// - public class FemDesignSaveDocumentation_HubBased : FEM_Design_API_Component + public class FemDesignSaveDocumentation : FEM_Design_API_Component { - public FemDesignSaveDocumentation_HubBased() : base("FEM-Design.Documentation (Hub)", "SaveDocx", "Save documentation of current model using shared connection.", CategoryName.Name(), SubCategoryName.CatHub()) + public FemDesignSaveDocumentation() : base("FEM-Design.Documentation", "SaveDocx", "Save documentation of current model using shared connection.", CategoryName.Name(), SubCategoryName.Cat8()) { } @@ -43,20 +43,23 @@ protected override void SolveInstance(IGH_DataAccess DA) var log = new List(); bool success = false; - try - { - FemDesignConnectionHub.InvokeAsync(handle.Id, conn => + // check inputs + if (string.IsNullOrWhiteSpace(docx)) + throw new Exception("'Docx' path is null or empty."); + + try + { + FemDesignConnectionHub.InvokeAsync(handle.Id, connection => { void onOutput(string s) { log.Add(s); } - conn.OnOutput += onOutput; + connection.OnOutput += onOutput; try { - if (string.IsNullOrWhiteSpace(docx)) throw new Exception("'Docx' path is null or empty."); - conn.SaveDocx(docx, template); + connection.SaveDocx(docx, template); } finally { - conn.OnOutput -= onOutput; + connection.OnOutput -= onOutput; } }).GetAwaiter().GetResult(); @@ -74,7 +77,7 @@ protected override void SolveInstance(IGH_DataAccess DA) } protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.Docx; - public override Guid ComponentGuid => new Guid("C1A1D62B-2B2D-4F81-8C7B-21BC04C4B5B8"); + public override Guid ComponentGuid => new Guid("{B7AD9265-2AAE-4562-9B47-DB178F69839D}"); public override GH_Exposure Exposure => GH_Exposure.primary; } } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignSetCfg_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignSetCfg.cs similarity index 71% rename from FemDesign.Grasshopper/Pipe/FemDesignSetCfg_HubBased.cs rename to FemDesign.Grasshopper/Pipe/FemDesignSetCfg.cs index f1e172ec8..87342b51f 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignSetCfg_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignSetCfg.cs @@ -10,16 +10,16 @@ namespace FemDesign.Grasshopper /// Set configurations using the shared hub connection (standard GH_Component, UI-blocking). /// Mirrors PipeSetCfg behavior. /// - public class FemDesignSetCfg_HubBased : FEM_Design_API_Component + public class FemDesignSetCfg : FEM_Design_API_Component { - public FemDesignSetCfg_HubBased() : base("FEM-Design.SetConfigurations (Hub)", "SetCfg", "Set design settings for current model using shared connection.", CategoryName.Name(), SubCategoryName.CatHub()) + public FemDesignSetCfg() : base("FEM-Design.SetConfigurations", "SetCfg", "Set design settings for current model using shared connection.", CategoryName.Name(), SubCategoryName.Cat8()) { } protected override void RegisterInputParams(GH_InputParamManager pManager) { pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); - pManager.AddGenericParameter("Config", "Cfg", "Filepath of configuration file or Config objects.", GH_ParamAccess.list); + pManager.AddGenericParameter("Config", "Cfg", "Filepath of the configuration file or Config objects.\nIf file path is not provided, the component will read the cfg.xml file in the package manager library folder.\n%AppData%\\McNeel\\Rhinoceros\\packages\\7.0\\FemDesign\\", GH_ParamAccess.list); pManager[pManager.ParamCount - 1].Optional = true; } @@ -43,17 +43,17 @@ protected override void SolveInstance(IGH_DataAccess DA) try { - FemDesignConnectionHub.InvokeAsync(handle.Id, conn => + FemDesignConnectionHub.InvokeAsync(handle.Id, connection => { void onOutput(string s) { log.Add(s); } - conn.OnOutput += onOutput; + connection.OnOutput += onOutput; try { if (cfg.Count == 0) { string assemblyLocation = Assembly.GetExecutingAssembly().Location; var cfgfilePath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(assemblyLocation), @"cfg.xml"); - conn.SetConfig(cfgfilePath); + connection.SetConfig(cfgfilePath); } else { @@ -61,28 +61,28 @@ protected override void SolveInstance(IGH_DataAccess DA) { if (c is string s) { - conn.SetConfig(s); + connection.SetConfig(s); } else if (c != null && c.Value is string) { string vs = c.Value as string; - conn.SetConfig(vs); + connection.SetConfig(vs); } else if (c is FemDesign.Calculate.CONFIG cfgObj) { - conn.SetConfig(cfgObj); + connection.SetConfig(cfgObj); } else if (c != null && c.Value is FemDesign.Calculate.CONFIG) { FemDesign.Calculate.CONFIG vCfgObj = c.Value as FemDesign.Calculate.CONFIG; - conn.SetConfig(vCfgObj); + connection.SetConfig(vCfgObj); } } } } finally { - conn.OnOutput -= onOutput; + connection.OnOutput -= onOutput; } }).GetAwaiter().GetResult(); @@ -100,7 +100,7 @@ protected override void SolveInstance(IGH_DataAccess DA) } protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_Config; - public override Guid ComponentGuid => new Guid("A8F2D25E-9D7D-4CF9-8B50-ED8F5C6A3B11"); + public override Guid ComponentGuid => new Guid("{24BCEA1D-13E7-47D0-B0F8-4403B0912D44}"); public override GH_Exposure Exposure => GH_Exposure.obscure; } } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignSetGlobalCfg_HubBased.cs b/FemDesign.Grasshopper/Pipe/FemDesignSetGlobalCfg.cs similarity index 71% rename from FemDesign.Grasshopper/Pipe/FemDesignSetGlobalCfg_HubBased.cs rename to FemDesign.Grasshopper/Pipe/FemDesignSetGlobalCfg.cs index a38860e4d..6f2f42bb5 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignSetGlobalCfg_HubBased.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignSetGlobalCfg.cs @@ -10,16 +10,16 @@ namespace FemDesign.Grasshopper /// Set global configurations using the shared hub connection (standard GH_Component, UI-blocking). /// Mirrors PipeSetGlobalCfg behavior. /// - public class FemDesignSetGlobalCfg_HubBased : FEM_Design_API_Component + public class FemDesignSetGlobalCfg : FEM_Design_API_Component { - public FemDesignSetGlobalCfg_HubBased() : base("FEM-Design.SetGlobalConfigurations (Hub)", "SetGlobalCfg", "Set global settings for current model using shared connection.", CategoryName.Name(), SubCategoryName.Cat8()) + public FemDesignSetGlobalCfg() : base("FEM-Design.SetGlobalConfigurations", "SetGlobalCfg", "Set global settings for current model using shared connection. It defines the calculation settings that will instruct FEM-Design in operation like creating the finite element mesh.", CategoryName.Name(), SubCategoryName.Cat8()) { } protected override void RegisterInputParams(GH_InputParamManager pManager) { pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); - pManager.AddGenericParameter("GlobalConfig", "GlobCfg", "Filepath of global configuration file or GlobConfig objects.", GH_ParamAccess.list); + pManager.AddGenericParameter("GlobalConfig", "GlobCfg", "Filepath of global configuration file or GlobConfig objects.\nIf file path is not provided, the component will read the cmdglobalcfg.xml file in the package manager library folder.\n%AppData%\\McNeel\\Rhinoceros\\packages\\7.0\\FemDesign\\", GH_ParamAccess.list); pManager[pManager.ParamCount - 1].Optional = true; } @@ -43,17 +43,17 @@ protected override void SolveInstance(IGH_DataAccess DA) try { - FemDesignConnectionHub.InvokeAsync(handle.Id, conn => + FemDesignConnectionHub.InvokeAsync(handle.Id, connection => { void onOutput(string s) { log.Add(s); } - conn.OnOutput += onOutput; + connection.OnOutput += onOutput; try { if (globCfg.Count == 0) { string assemblyLocation = Assembly.GetExecutingAssembly().Location; var globCfgfilePath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(assemblyLocation), @"cmdglobalcfg.xml"); - conn.SetGlobalConfig(globCfgfilePath); + connection.SetGlobalConfig(globCfgfilePath); } else { @@ -61,28 +61,28 @@ protected override void SolveInstance(IGH_DataAccess DA) { if (c is string s) { - conn.SetGlobalConfig(s); + connection.SetGlobalConfig(s); } else if (c != null && c.Value is string) { string vs = c.Value as string; - conn.SetGlobalConfig(vs); + connection.SetGlobalConfig(vs); } else if (c is FemDesign.Calculate.GlobConfig cfgObj) { - conn.SetGlobalConfig(cfgObj); + connection.SetGlobalConfig(cfgObj); } else if (c != null && c.Value is FemDesign.Calculate.GlobConfig) { FemDesign.Calculate.GlobConfig vCfgObj = c.Value as FemDesign.Calculate.GlobConfig; - conn.SetGlobalConfig(vCfgObj); + connection.SetGlobalConfig(vCfgObj); } } } } finally { - conn.OnOutput -= onOutput; + connection.OnOutput -= onOutput; } }).GetAwaiter().GetResult(); @@ -100,7 +100,7 @@ protected override void SolveInstance(IGH_DataAccess DA) } protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_Config; - public override Guid ComponentGuid => new Guid("BC8A2A7D-8F2D-4B7B-9F52-5C6A8E2F3A44"); + public override Guid ComponentGuid => new Guid("{C223693E-139D-4A1C-8F02-F8618BEDB4BA}"); public override GH_Exposure Exposure => GH_Exposure.obscure; } } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignConnection.cs b/FemDesign.Grasshopper/Pipe/OBSOLETE/FemDesignConnectionComponent_OBSOLETE2403.cs similarity index 91% rename from FemDesign.Grasshopper/Pipe/FemDesignConnection.cs rename to FemDesign.Grasshopper/Pipe/OBSOLETE/FemDesignConnectionComponent_OBSOLETE2403.cs index 1aae2283a..80da0291c 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignConnection.cs +++ b/FemDesign.Grasshopper/Pipe/OBSOLETE/FemDesignConnectionComponent_OBSOLETE2403.cs @@ -9,11 +9,11 @@ namespace FemDesign.Grasshopper { - public class FemDesignConnectionComponent : FEM_Design_API_Component + public class FemDesignConnectionComponent_OBSOLETE2403 : FEM_Design_API_Component { private FemDesignConnection _connection; - public FemDesignConnectionComponent() : base("FEM-Design.Connection", "Connection", "Component that creates a direct link between Grasshopper and FEM-Design. Use it to specify the 'Connection' for LiveLink components.", CategoryName.Name(), SubCategoryName.Cat8()) + public FemDesignConnectionComponent_OBSOLETE2403() : base("FEM-Design.Connection", "Connection", "Component that creates a direct link between Grasshopper and FEM-Design. Use it to specify the 'Connection' for LiveLink components.", CategoryName.Name(), SubCategoryName.Cat8()) { } protected override void RegisterInputParams(GH_InputParamManager pManager) @@ -111,7 +111,7 @@ protected override void BeforeSolveInstance() protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_Connection; public override Guid ComponentGuid => new Guid("{B2D8285D-0260-479C-91BF-2FA8DAB5A37E}"); - public override GH_Exposure Exposure => GH_Exposure.primary; + public override GH_Exposure Exposure => GH_Exposure.hidden; } } diff --git a/FemDesign.Grasshopper/Pipe/PipeGetModel.cs b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeGetModel_OBSOLETE2403.cs similarity index 88% rename from FemDesign.Grasshopper/Pipe/PipeGetModel.cs rename to FemDesign.Grasshopper/Pipe/OBSOLETE/PipeGetModel_OBSOLETE2403.cs index fb916e3eb..022950dc1 100644 --- a/FemDesign.Grasshopper/Pipe/PipeGetModel.cs +++ b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeGetModel_OBSOLETE2403.cs @@ -5,9 +5,9 @@ namespace FemDesign.Grasshopper { - public class PipeGetModel : GH_AsyncComponent + public class PipeGetModel_OBSOLETE2403 : GH_AsyncComponent { - public PipeGetModel() : base("FEM-Design.GetModel", "GetModel", "Get the current open model in FEM-Design.", CategoryName.Name(), SubCategoryName.Cat8()) + public PipeGetModel_OBSOLETE2403() : base("FEM-Design.GetModel", "GetModel", "Get the current open model in FEM-Design.", CategoryName.Name(), SubCategoryName.Cat8()) { BaseWorker = new GetModelWorker(); } @@ -20,13 +20,13 @@ protected override void RegisterInputParams(GH_InputParamManager pManager) protected override void RegisterOutputParams(GH_OutputParamManager pManager) { pManager.AddGenericParameter("Connection", "Connection", "FEM-Design connection.", GH_ParamAccess.item); - pManager.AddGenericParameter("Model", "Model", "FEM-Design connection.", GH_ParamAccess.item); + pManager.AddGenericParameter("Model", "Model", "FEM-Design model.", GH_ParamAccess.item); pManager.AddBooleanParameter("Success", "Success", "", GH_ParamAccess.item); } protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_readresult; public override Guid ComponentGuid => new Guid("{F27FD051-B752-4C8B-B9E6-48DBC7E3ABAF}"); - public override GH_Exposure Exposure => GH_Exposure.primary; + public override GH_Exposure Exposure => GH_Exposure.hidden; } /// diff --git a/FemDesign.Grasshopper/Pipe/PipeGetQuantities.cs b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeGetQuantities_OBSOLETE2403.cs similarity index 93% rename from FemDesign.Grasshopper/Pipe/PipeGetQuantities.cs rename to FemDesign.Grasshopper/Pipe/OBSOLETE/PipeGetQuantities_OBSOLETE2403.cs index 6bfdc23b3..c78ebe1f1 100644 --- a/FemDesign.Grasshopper/Pipe/PipeGetQuantities.cs +++ b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeGetQuantities_OBSOLETE2403.cs @@ -17,9 +17,9 @@ namespace FemDesign.Grasshopper { - public class PipeGetQuantities : GH_AsyncComponent + public class PipeGetQuantities_OBSOLETE2403 : GH_AsyncComponent { - public PipeGetQuantities() : base(" FEM-Design.GetQuantities", "GetQuantities", "Get quantities from a model. .csv list files are saved in the same work directory as StruxmlPath.\nDO NOT USE THE COMPONENT IF YOU WANT TO PERFORM ITERATIVE ANALYSIS (i.e. Galapos)", CategoryName.Name(), SubCategoryName.Cat8()) + public PipeGetQuantities_OBSOLETE2403() : base("FEM-Design.GetQuantities", "GetQuantities", "Get quantities from a model. .csv list files are saved in the same work directory as StruxmlPath.\nDO NOT USE THE COMPONENT IF YOU WANT TO PERFORM ITERATIVE ANALYSIS (i.e. Galapos)", CategoryName.Name(), SubCategoryName.Cat8()) { BaseWorker = new ApplicationGetQuantitiesWorker(this); } @@ -54,7 +54,7 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_readresult; public override Guid ComponentGuid => new Guid("{81E32E19-C6A6-4E9E-A0B2-EB6CE1BA888F}"); - public override GH_Exposure Exposure => GH_Exposure.tertiary; + public override GH_Exposure Exposure => GH_Exposure.hidden; } diff --git a/FemDesign.Grasshopper/Pipe/PipeOpen.cs b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeOpen_OBSOLETE2403.cs similarity index 94% rename from FemDesign.Grasshopper/Pipe/PipeOpen.cs rename to FemDesign.Grasshopper/Pipe/OBSOLETE/PipeOpen_OBSOLETE2403.cs index a5b88c2da..2d76ac806 100644 --- a/FemDesign.Grasshopper/Pipe/PipeOpen.cs +++ b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeOpen_OBSOLETE2403.cs @@ -8,9 +8,9 @@ namespace FemDesign.Grasshopper { - public class PipeOpen : GH_AsyncComponent + public class PipeOpen_OBSOLETE2403 : GH_AsyncComponent { - public PipeOpen() : base("FEM-Design.OpenModel", "OpenModel", "Open model in FEM-Design.", CategoryName.Name(), SubCategoryName.Cat8()) + public PipeOpen_OBSOLETE2403() : base("FEM-Design.OpenModel", "OpenModel", "Open model in FEM-Design.", CategoryName.Name(), SubCategoryName.Cat8()) { BaseWorker = new ModelOpenWorker(this); } @@ -31,7 +31,7 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_open; public override Guid ComponentGuid => new Guid("AF4D71BF-693D-48FA-8C63-9F344A54DDAC"); - public override GH_Exposure Exposure => GH_Exposure.primary; + public override GH_Exposure Exposure => GH_Exposure.hidden; } /// diff --git a/FemDesign.Grasshopper/Pipe/PipeReadCaseCombResults.cs b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeReadCaseCombResults_OBSOLETE2403.cs similarity index 95% rename from FemDesign.Grasshopper/Pipe/PipeReadCaseCombResults.cs rename to FemDesign.Grasshopper/Pipe/OBSOLETE/PipeReadCaseCombResults_OBSOLETE2403.cs index e516a7c37..12938dc86 100644 --- a/FemDesign.Grasshopper/Pipe/PipeReadCaseCombResults.cs +++ b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeReadCaseCombResults_OBSOLETE2403.cs @@ -14,9 +14,9 @@ namespace FemDesign.Grasshopper { - public class PipeReadResults : GH_AsyncComponent + public class PipeReadResults_OBSOLETE2403 : GH_AsyncComponent { - public PipeReadResults() : base(" FEM-Design.GetCaseCombResults", "CaseCombResults", "Read load cases and load combinations results from a model. .csv list files are saved in the same work directory as StruxmlPath.\nDO NOT USE THE COMPONENT IF YOU WANT TO PERFORM ITERATIVE ANALYSIS (i.e. Galapos)", CategoryName.Name(), SubCategoryName.Cat8()) + public PipeReadResults_OBSOLETE2403() : base(" FEM-Design.GetCaseCombResults", "CaseCombResults", "Read load cases and load combinations results from a model. .csv list files are saved in the same work directory as StruxmlPath.\nDO NOT USE THE COMPONENT IF YOU WANT TO PERFORM ITERATIVE ANALYSIS (i.e. Galapos)", CategoryName.Name(), SubCategoryName.Cat8()) { BaseWorker = new ApplicationReadResultWorker(this); } @@ -48,7 +48,7 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_readresult; public override Guid ComponentGuid => new Guid("{169E5FC3-469F-499C-96DF-D12E042C1FD0}"); - public override GH_Exposure Exposure => GH_Exposure.tertiary; + public override GH_Exposure Exposure => GH_Exposure.hidden; private class ApplicationReadResultWorker : WorkerInstance { public dynamic _getResults(Type resultType, Results.UnitResults units = null, Options options = null, List elements = null) diff --git a/FemDesign.Grasshopper/Pipe/PipeResultFromBsc.cs b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeResultFromBsc_OBSOLETE2403.cs similarity index 94% rename from FemDesign.Grasshopper/Pipe/PipeResultFromBsc.cs rename to FemDesign.Grasshopper/Pipe/OBSOLETE/PipeResultFromBsc_OBSOLETE2403.cs index dddbb5e32..34a4f5dc3 100644 --- a/FemDesign.Grasshopper/Pipe/PipeResultFromBsc.cs +++ b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeResultFromBsc_OBSOLETE2403.cs @@ -14,9 +14,9 @@ namespace FemDesign.Grasshopper { - public class PipeResultFromBsc : GH_AsyncComponent + public class PipeResultFromBsc_OBSOLETE2403 : GH_AsyncComponent { - public PipeResultFromBsc() : base(" FEM-Design.GetResultFromBsc", "ResultFromBsc", "Extract results from a model with a .bsc file", CategoryName.Name(), SubCategoryName.Cat8()) + public PipeResultFromBsc_OBSOLETE2403() : base(" FEM-Design.GetResultFromBsc", "ResultFromBsc", "Extract results from a model with a .bsc file", CategoryName.Name(), SubCategoryName.Cat8()) { BaseWorker = new ApplicationResultFromBsc(this); } @@ -41,7 +41,7 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_readresult; public override Guid ComponentGuid => new Guid("{6A88FF5F-BC25-45D2-8140-385A652D30FE}"); - public override GH_Exposure Exposure => GH_Exposure.tertiary; + public override GH_Exposure Exposure => GH_Exposure.hidden; private class ApplicationResultFromBsc : WorkerInstance { public FemDesignConnection _connection = null; diff --git a/FemDesign.Grasshopper/Pipe/PipeRunAnalysis.cs b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeRunAnalysis_OBSOLETE2403.cs similarity index 92% rename from FemDesign.Grasshopper/Pipe/PipeRunAnalysis.cs rename to FemDesign.Grasshopper/Pipe/OBSOLETE/PipeRunAnalysis_OBSOLETE2403.cs index 35cac56a2..7d6241026 100644 --- a/FemDesign.Grasshopper/Pipe/PipeRunAnalysis.cs +++ b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeRunAnalysis_OBSOLETE2403.cs @@ -12,9 +12,9 @@ namespace FemDesign.Grasshopper { - public class PipeRunAnalysis : GH_AsyncComponent + public class PipeRunAnalysis_OBSOLETE2403 : GH_AsyncComponent { - public PipeRunAnalysis() : base("FEM-Design.RunAnalysis", "RunAnalysis", "Run analysis of model.\nDO NOT USE THE COMPONENT IF YOU WANT TO PERFORM ITERATIVE ANALYSIS (i.e. Galapos)", CategoryName.Name(), SubCategoryName.Cat8()) + public PipeRunAnalysis_OBSOLETE2403() : base("FEM-Design.RunAnalysis", "RunAnalysis", "Run analysis of model.\nDO NOT USE THE COMPONENT IF YOU WANT TO PERFORM ITERATIVE ANALYSIS (i.e. Galapos)", CategoryName.Name(), SubCategoryName.Cat8()) { BaseWorker = new ApplicationRunAnalysisWorker(this); } @@ -36,7 +36,7 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_RunAnalysis; public override Guid ComponentGuid => new Guid("{C8DF0C6F-4A9E-4AEF-A114-6932C3AB7820}"); - public override GH_Exposure Exposure => GH_Exposure.secondary; + public override GH_Exposure Exposure => GH_Exposure.hidden; private class ApplicationRunAnalysisWorker : WorkerInstance { diff --git a/FemDesign.Grasshopper/Pipe/PipeRunDesign.cs b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeRunDesign_OBSOLETE2403.cs similarity index 93% rename from FemDesign.Grasshopper/Pipe/PipeRunDesign.cs rename to FemDesign.Grasshopper/Pipe/OBSOLETE/PipeRunDesign_OBSOLETE2403.cs index b1bf8feb4..2535c5623 100644 --- a/FemDesign.Grasshopper/Pipe/PipeRunDesign.cs +++ b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeRunDesign_OBSOLETE2403.cs @@ -6,9 +6,9 @@ namespace FemDesign.Grasshopper { - public class PipeRunDesign : GH_AsyncComponent + public class PipeRunDesign_OBSOLETE2403 : GH_AsyncComponent { - public PipeRunDesign() : base("FEM-Design.RunDesign", "RunDesign", "Run design of model.\nDO NOT USE THE COMPONENT IF YOU WANT TO PERFORM ITERATIVE ANALYSIS (i.e. Galapos)", CategoryName.Name(), SubCategoryName.Cat8()) + public PipeRunDesign_OBSOLETE2403() : base("FEM-Design.RunDesign", "RunDesign", "Run design of model.\nDO NOT USE THE COMPONENT IF YOU WANT TO PERFORM ITERATIVE ANALYSIS (i.e. Galapos)", CategoryName.Name(), SubCategoryName.Cat8()) { BaseWorker = new ApplicationRunDesignWorker(this); } @@ -31,7 +31,7 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_RunDesign; public override Guid ComponentGuid => new Guid("{DF2E8AA9-EF06-4E93-83EA-685E17F0FF61}"); - public override GH_Exposure Exposure => GH_Exposure.secondary; + public override GH_Exposure Exposure => GH_Exposure.hidden; private class ApplicationRunDesignWorker : WorkerInstance { /* INPUT/OUTPUT */ diff --git a/FemDesign.Grasshopper/Pipe/PipeSaveAs.cs b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeSaveAs_OBSOLETE2403.cs similarity index 94% rename from FemDesign.Grasshopper/Pipe/PipeSaveAs.cs rename to FemDesign.Grasshopper/Pipe/OBSOLETE/PipeSaveAs_OBSOLETE2403.cs index 6849d86bd..13836f7e4 100644 --- a/FemDesign.Grasshopper/Pipe/PipeSaveAs.cs +++ b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeSaveAs_OBSOLETE2403.cs @@ -12,9 +12,9 @@ namespace FemDesign.Grasshopper { - public class PipSave : GH_AsyncComponent + public class PipeSaveAs_OBSOLETE2403 : GH_AsyncComponent { - public PipSave() : base("FEM-Design.Save", "Save", "Save a model.", CategoryName.Name(), SubCategoryName.Cat8()) + public PipeSaveAs_OBSOLETE2403() : base("FEM-Design.Save", "Save", "Save a model.", CategoryName.Name(), SubCategoryName.Cat8()) { BaseWorker = new ApplicationSaveAs(this); } @@ -33,7 +33,7 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_SaveAs; public override Guid ComponentGuid => new Guid("{473C29D5-4021-4D26-8397-56035D3EBC95}"); - public override GH_Exposure Exposure => GH_Exposure.primary; + public override GH_Exposure Exposure => GH_Exposure.hidden; } public class ApplicationSaveAs : WorkerInstance diff --git a/FemDesign.Grasshopper/Pipe/PipeSaveDocumentation.cs b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeSaveDocumentation_OBSOLETE2403.cs similarity index 93% rename from FemDesign.Grasshopper/Pipe/PipeSaveDocumentation.cs rename to FemDesign.Grasshopper/Pipe/OBSOLETE/PipeSaveDocumentation_OBSOLETE2403.cs index 3474dcc48..06cd96540 100644 --- a/FemDesign.Grasshopper/Pipe/PipeSaveDocumentation.cs +++ b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeSaveDocumentation_OBSOLETE2403.cs @@ -12,9 +12,9 @@ namespace FemDesign.Grasshopper { - public class PipeDocx : GH_AsyncComponent + public class PipeSaveDocumentation_OBSOLETE2403 : GH_AsyncComponent { - public PipeDocx() : base("FEM-Design.Documentation", "SaveDocx", "Save documentation of a model.", CategoryName.Name(), SubCategoryName.Cat8()) + public PipeSaveDocumentation_OBSOLETE2403() : base("FEM-Design.Documentation", "SaveDocx", "Save documentation of a model.", CategoryName.Name(), SubCategoryName.Cat8()) { BaseWorker = new ApplicationSaveDocxWorker(this); } @@ -35,7 +35,7 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.Docx; public override Guid ComponentGuid => new Guid("{48633F87-356E-4E10-AC86-189DAD5AD0B0}"); - public override GH_Exposure Exposure => GH_Exposure.primary; + public override GH_Exposure Exposure => GH_Exposure.hidden; } public class ApplicationSaveDocxWorker : WorkerInstance diff --git a/FemDesign.Grasshopper/Pipe/PipeSetCfg.cs b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeSetCfg_OBSOLETE2403.cs similarity index 93% rename from FemDesign.Grasshopper/Pipe/PipeSetCfg.cs rename to FemDesign.Grasshopper/Pipe/OBSOLETE/PipeSetCfg_OBSOLETE2403.cs index 74352a15e..856fe7f67 100644 --- a/FemDesign.Grasshopper/Pipe/PipeSetCfg.cs +++ b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeSetCfg_OBSOLETE2403.cs @@ -13,9 +13,9 @@ namespace FemDesign.Grasshopper { - public class PipeSetCfg : GH_AsyncComponent + public class PipeSetCfg_OBSOLETE2403 : GH_AsyncComponent { - public PipeSetCfg() : base("FEM-Design.SetConfigurations", "SetCfg", "Set design settings for a FEM-Design model using a configuration file.", CategoryName.Name(), SubCategoryName.Cat8()) + public PipeSetCfg_OBSOLETE2403() : base("FEM-Design.SetConfigurations", "SetCfg", "Set design settings for a FEM-Design model using a configuration file.", CategoryName.Name(), SubCategoryName.Cat8()) { BaseWorker = new ApplicationSetCfgWorker(this); } @@ -35,7 +35,7 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_Config; public override Guid ComponentGuid => new Guid("{AADEF422-856D-4798-9936-125B614F1D8C}"); - public override GH_Exposure Exposure => GH_Exposure.obscure; + public override GH_Exposure Exposure => GH_Exposure.hidden; } public class ApplicationSetCfgWorker : WorkerInstance diff --git a/FemDesign.Grasshopper/Pipe/PipeSetGlobalCfg.cs b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeSetGlobalCfg_OBSOLETE2403.cs similarity index 91% rename from FemDesign.Grasshopper/Pipe/PipeSetGlobalCfg.cs rename to FemDesign.Grasshopper/Pipe/OBSOLETE/PipeSetGlobalCfg_OBSOLETE2403.cs index 73c36df67..e606223a3 100644 --- a/FemDesign.Grasshopper/Pipe/PipeSetGlobalCfg.cs +++ b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeSetGlobalCfg_OBSOLETE2403.cs @@ -12,9 +12,9 @@ namespace FemDesign.Grasshopper { - public class PipeSetGlobalCfg : GH_AsyncComponent + public class PipeSetGlobalCfg_OBSOLETE2403 : GH_AsyncComponent { - public PipeSetGlobalCfg() : base("FEM-Design.SetGlobalConfigurations", "SetGlobalCfg", "Set global settings for a FEM-Design model using a global configuration file. It defines the calculation settings that will instruct FEM-Design in operation like creating the finite element mesh.", CategoryName.Name(), SubCategoryName.Cat8()) + public PipeSetGlobalCfg_OBSOLETE2403() : base("FEM-Design.SetGlobalConfigurations", "SetGlobalCfg", "Set global settings for a FEM-Design model using a global configuration file. It defines the calculation settings that will instruct FEM-Design in operation like creating the finite element mesh.", CategoryName.Name(), SubCategoryName.Cat8()) { BaseWorker = new ApplicationSetGlobalCfgWorker(this); } @@ -34,7 +34,7 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_Config; public override Guid ComponentGuid => new Guid("{FDEDD8F7-99CC-48F0-8FF8-2946921DC9F6}"); - public override GH_Exposure Exposure => GH_Exposure.obscure; + public override GH_Exposure Exposure => GH_Exposure.hidden; } public class ApplicationSetGlobalCfgWorker : WorkerInstance From fdab292caf0777a8cc8b8cbd740c8aa8646aeb14 Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Wed, 26 Nov 2025 16:42:41 +0100 Subject: [PATCH 22/54] =?UTF-8?q?=F0=9F=9A=A7=20new=20refactored=20connect?= =?UTF-8?q?ion=20gh=20components?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Pipe/FemDesignCreateResPoints.cs | 90 ++++ .../Pipe/FemDesignGetCaseCombResults.cs | 2 +- .../Pipe/FemDesignGetEigenfrequencyResults.cs | 133 ++++++ .../Pipe/FemDesignGetFeaModel.cs | 78 ++++ .../Pipe/FemDesignGetStabilityResults.cs | 293 +++++++++++++ ...PipeEigenFrequencyResults_OBSOLETE2403.cs} | 8 +- .../PipeGetFeaModel_OBSOLETE2403.cs} | 6 +- .../PipeResultPoints_OBSOLETE2403.cs} | 6 +- .../PipeStabilityResults_OBSOLETE2403.cs} | 6 +- .../Pipe/WIP_PipeReadStabilityResults.cs | 413 ------------------ 10 files changed, 607 insertions(+), 428 deletions(-) create mode 100644 FemDesign.Grasshopper/Pipe/FemDesignCreateResPoints.cs create mode 100644 FemDesign.Grasshopper/Pipe/FemDesignGetEigenfrequencyResults.cs create mode 100644 FemDesign.Grasshopper/Pipe/FemDesignGetFeaModel.cs create mode 100644 FemDesign.Grasshopper/Pipe/FemDesignGetStabilityResults.cs rename FemDesign.Grasshopper/Pipe/{PipeReadEigenFrequencyResults.cs => OBSOLETE/PipeEigenFrequencyResults_OBSOLETE2403.cs} (93%) rename FemDesign.Grasshopper/Pipe/{PipeGetFEA.cs => OBSOLETE/PipeGetFeaModel_OBSOLETE2403.cs} (93%) rename FemDesign.Grasshopper/Pipe/{PipeCreateResPoint.cs => OBSOLETE/PipeResultPoints_OBSOLETE2403.cs} (92%) rename FemDesign.Grasshopper/Pipe/{PipeReadStabilityResults.cs => OBSOLETE/PipeStabilityResults_OBSOLETE2403.cs} (96%) delete mode 100644 FemDesign.Grasshopper/Pipe/WIP_PipeReadStabilityResults.cs diff --git a/FemDesign.Grasshopper/Pipe/FemDesignCreateResPoints.cs b/FemDesign.Grasshopper/Pipe/FemDesignCreateResPoints.cs new file mode 100644 index 000000000..85928b805 --- /dev/null +++ b/FemDesign.Grasshopper/Pipe/FemDesignCreateResPoints.cs @@ -0,0 +1,90 @@ +// https://strusoft.com/ +using System; +using System.Collections.Generic; +using System.Linq; +using Grasshopper.Kernel; +using Grasshopper.Kernel.Data; + +using FemDesign.AuxiliaryResults; +using FemDesign.Calculate; + +namespace FemDesign.Grasshopper +{ + /// + /// Create result points using the shared hub connection (standard GH_Component, UI-blocking). + /// Mirrors PipeResultPoints behavior without the async workaround. + /// + public class FemDesignCreateResPoints : FEM_Design_API_Component + { + public FemDesignCreateResPoints() : base("FEM-Design.CreateResPoints", "CreateResPoints", "Create result points using the shared FEM-Design connection.", CategoryName.Name(), SubCategoryName.Cat8()) + { + } + + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddGenericParameter("ResultPoints", "ResultPoints", "ResultPoints.", GH_ParamAccess.list); + } + + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddTextParameter("Log", "Log", "Operation log.", GH_ParamAccess.list); + pManager.AddBooleanParameter("Success", "Success", "True if operation succeeded.", GH_ParamAccess.item); + } + + protected override void SolveInstance(IGH_DataAccess DA) + { + FemDesignHubHandle handle = null; + DA.GetData("Connection", ref handle); + + var resultPoints = new List(); + DA.GetDataList("ResultPoints", resultPoints); + + var log = new List(); + bool success = false; + + // check inputs + if (!resultPoints.Any()) + throw new Exception("ResultPoints is empty."); + + try + { + if (handle == null) + throw new Exception("Connection handle is null."); + + FemDesignConnectionHub.InvokeAsync(handle.Id, connection => + { + void onOutput(string s) { log.Add(s); } + connection.OnOutput += onOutput; + try + { + var resPoints = resultPoints.Select(x => (CmdResultPoint)x).ToList(); + connection.CreateResultPoint(resPoints); + } + finally + { + connection.OnOutput -= onOutput; + } + }).GetAwaiter().GetResult(); + + success = true; + } + catch (Exception ex) + { + log.Add(ex.Message); + success = false; + } + + DA.SetData("Connection", handle); + DA.SetDataList("Log", log); + DA.SetData("Success", success); + } + + protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_readresult; + public override Guid ComponentGuid => new Guid("{54EB08E8-69E7-41CB-9152-404245D5B7D6}"); + public override GH_Exposure Exposure => GH_Exposure.tertiary; + } +} + + diff --git a/FemDesign.Grasshopper/Pipe/FemDesignGetCaseCombResults.cs b/FemDesign.Grasshopper/Pipe/FemDesignGetCaseCombResults.cs index 10de52278..d46d830b4 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignGetCaseCombResults.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignGetCaseCombResults.cs @@ -6,8 +6,8 @@ using Grasshopper; using Grasshopper.Kernel; using Grasshopper.Kernel.Data; + using FemDesign.Calculate; -using FemDesign.Results; namespace FemDesign.Grasshopper { diff --git a/FemDesign.Grasshopper/Pipe/FemDesignGetEigenfrequencyResults.cs b/FemDesign.Grasshopper/Pipe/FemDesignGetEigenfrequencyResults.cs new file mode 100644 index 000000000..aabae12ad --- /dev/null +++ b/FemDesign.Grasshopper/Pipe/FemDesignGetEigenfrequencyResults.cs @@ -0,0 +1,133 @@ +// https://strusoft.com/ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; + +using Grasshopper; +using Grasshopper.Kernel; +using Grasshopper.Kernel.Data; + +using FemDesign.Calculate; +using FemDesign.Results; +using FemDesign.Results.Utils; + +namespace FemDesign.Grasshopper +{ + /// + /// Read eigenfrequency results using the shared hub connection (standard GH_Component, UI-blocking). + /// Mirrors PipeEigenFrequencyResults behavior without the async workaround. + /// + public class FemDesignGetEigenfrequencyResults : FEM_Design_API_Component + { + public FemDesignGetEigenfrequencyResults() : base("FEM-Design.GetEigenfrequencyResults", "EigenfrequencyResults", "Read eigenfrequency results from current model using shared connection. Result files (.csv) are saved into the output directory.", CategoryName.Name(), SubCategoryName.Cat8()) + { + } + + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddIntegerParameter("ShapeId", "ShapeId", "Vibration shape identifier must be greater or equal to 1. Optional parameter. If not defined, all shapes will be listed.", GH_ParamAccess.list); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddGenericParameter("Options", "Options", "Settings for output location. Default is 'ByStep' and 'Vertices'.", GH_ParamAccess.item); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddGenericParameter("Units", "Units", "Specify the Result Units for some specific type.\nDefault Units are: Length.m, Angle.deg, SectionalData.m, Force.kN, Mass.kg, Displacement.m, Stress.Pa", GH_ParamAccess.item); + pManager[pManager.ParamCount - 1].Optional = true; + } + + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddGenericParameter("VibrationShapes", "Shapes", "Vibration shape results.", GH_ParamAccess.tree); + pManager.AddGenericParameter("Eigenfrequencies", "Eigenfrequencies", "Eigenfrequency results.", GH_ParamAccess.tree); + pManager.AddBooleanParameter("Success", "Success", "True if operation succeeded.", GH_ParamAccess.item); + pManager.AddTextParameter("Log", "Log", "Operation log.", GH_ParamAccess.list); + } + + protected override void SolveInstance(IGH_DataAccess DA) + { + FemDesignHubHandle handle = null; + DA.GetData("Connection", ref handle); + + var shapeIds = new List(); + DA.GetDataList("ShapeId", shapeIds); + + Options options = null; + DA.GetData("Options", ref options); + + Results.UnitResults units = null; + DA.GetData("Units", ref units); + + var log = new List(); + bool success = false; + + var vibrationTree = new DataTree(); + var frequencyTree = new DataTree(); + + // check inputs + if (handle == null) + throw new Exception("Connection handle is null."); + + try + { + FemDesignConnectionHub.InvokeAsync(handle.Id, connection => + { + void onOutput(string s) { log.Add(s); } + connection.OnOutput += onOutput; + try + { + // helper to invoke private generic _getResults + List InvokeGetResults(Type resultType) + { + string methodName = nameof(FemDesign.FemDesignConnection._getResults); + MethodInfo genericMethod = connection.GetType().GetMethod(methodName, BindingFlags.Instance | BindingFlags.NonPublic).MakeGenericMethod(resultType); + var res = (IEnumerable)genericMethod.Invoke(connection, new object[] { units, options, null, false }); + return res.ToList(); + } + + var vibrationRes = InvokeGetResults(typeof(NodalVibration)).Cast().ToList(); + var frequencyRes = InvokeGetResults(typeof(EigenFrequencies)).Cast().ToList(); + + if (vibrationRes.Count == 0 && frequencyRes.Count == 0) + throw new Exception("Eigenfrequencies results have not been found. Have you run the eigenfrequencies analysis?"); + + string vibPropName = nameof(NodalVibration.ShapeId); + string freqPropName = nameof(EigenFrequencies.ShapeId); + + if (shapeIds.Any()) + { + vibrationRes = vibrationRes.FilterResultsByShapeId(vibPropName, shapeIds); + frequencyRes = frequencyRes.FilterResultsByShapeId(freqPropName, shapeIds); + } + + vibrationTree = vibrationRes.CreateResultTree(vibPropName); + frequencyTree = frequencyRes.CreateResultTree(freqPropName); + } + finally + { + connection.OnOutput -= onOutput; + } + }).GetAwaiter().GetResult(); + + success = true; + } + catch (Exception ex) + { + log.Add(ex.Message); + success = false; + } + + DA.SetData("Connection", handle); + DA.SetDataTree(1, vibrationTree); + DA.SetDataTree(2, frequencyTree); + DA.SetData("Success", success); + DA.SetDataList("Log", log); + } + + protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_readresult; + public override Guid ComponentGuid => new Guid("{23905992-55CC-473E-9825-02D565522219}"); + public override GH_Exposure Exposure => GH_Exposure.tertiary; + } +} + + diff --git a/FemDesign.Grasshopper/Pipe/FemDesignGetFeaModel.cs b/FemDesign.Grasshopper/Pipe/FemDesignGetFeaModel.cs new file mode 100644 index 000000000..e6c9db12f --- /dev/null +++ b/FemDesign.Grasshopper/Pipe/FemDesignGetFeaModel.cs @@ -0,0 +1,78 @@ +// https://strusoft.com/ +using System; +using System.Collections.Generic; +using Grasshopper.Kernel; + +using FemDesign.Results; + +namespace FemDesign.Grasshopper +{ + /// + /// Read the finite element model using the shared hub connection (standard GH_Component, UI-blocking). + /// Mirrors PipeGetFeaModel behavior without the async workaround. + /// + public class FemDesignGetFeaModel : FEM_Design_API_Component + { + public FemDesignGetFeaModel() : base("FEM-Design.GetFeModel", "GetFeModel", "Read the finite element data using the shared FEM-Design connection.", CategoryName.Name(), SubCategoryName.Cat8()) + { + } + + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddGenericParameter("Units", "Units", "Specify the Result Units for some specific type.\nDefault Units are: Length.m, Angle.deg, SectionalData.m, Force.kN, Mass.kg, Displacement.m, Stress.Pa", GH_ParamAccess.item); + pManager[pManager.ParamCount - 1].Optional = true; + } + + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddGenericParameter("FiniteElement", "FiniteElement", "FEM-Design finite element model.", GH_ParamAccess.item); + pManager.AddBooleanParameter("Success", "Success", "True if operation succeeded.", GH_ParamAccess.item); + } + + protected override void SolveInstance(IGH_DataAccess DA) + { + FemDesignHubHandle handle = null; + DA.GetData("Connection", ref handle); + + Results.UnitResults units = null; + DA.GetData("Units", ref units); + + bool success = false; + FiniteElement feModel = null; + + try + { + if (handle == null) + throw new Exception("Connection handle is null."); + + if (units == null) + units = Results.UnitResults.Default(); + + FemDesignConnectionHub.InvokeAsync(handle.Id, connection => + { + connection.GenerateFeaModel(); + feModel = connection.GetFeaModel(units.Length); + }).GetAwaiter().GetResult(); + + success = true; + } + catch (Exception ex) + { + this.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, ex.Message); + success = false; + } + + DA.SetData("Connection", handle); + DA.SetData("FiniteElement", feModel); + DA.SetData("Success", success); + } + + protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_GetMesh; + public override Guid ComponentGuid => new Guid("{49306D49-2DB5-449D-B6BA-CDE870DD204D}"); + public override GH_Exposure Exposure => GH_Exposure.tertiary; + } +} + + diff --git a/FemDesign.Grasshopper/Pipe/FemDesignGetStabilityResults.cs b/FemDesign.Grasshopper/Pipe/FemDesignGetStabilityResults.cs new file mode 100644 index 000000000..819df78dd --- /dev/null +++ b/FemDesign.Grasshopper/Pipe/FemDesignGetStabilityResults.cs @@ -0,0 +1,293 @@ +// https://strusoft.com/ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; + +using Grasshopper; +using Grasshopper.Kernel; +using Grasshopper.Kernel.Data; + +using FemDesign.Calculate; +using FemDesign.Results; +using FemDesign.Results.Utils; + +namespace FemDesign.Grasshopper +{ + /// + /// Read stability results using the shared hub connection (standard GH_Component, UI-blocking). + /// Mirrors PipeStabilityResults behavior without the async workaround. + /// + public class FemDesignGetStabilityResults : FEM_Design_API_Component + { + public FemDesignGetStabilityResults() : base("FEM-Design.GetStabilityResults", "StabilityResults", "Read stability results from current model using shared connection. Result files (.csv) are saved into the output directory.", CategoryName.Name(), SubCategoryName.Cat8()) + { + } + + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddTextParameter("Combination Name", "Combo Name", "Optional parameter. If not defined, all load combinations will be listed.", GH_ParamAccess.list); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddIntegerParameter("ShapeId", "ShapeId", "Buckling shape identifier must be greater or equal to 1. Optional parameter. If not defined, all shapes will be listed.", GH_ParamAccess.list); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddGenericParameter("Options", "Options", "Settings for output location. Default is 'ByStep' and 'Vertices'.", GH_ParamAccess.item); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddGenericParameter("Units", "Units", "Specify the Result Units for some specific type.\nDefault Units are: Length.m, Angle.deg, SectionalData.m, Force.kN, Mass.kg, Displacement.m, Stress.Pa", GH_ParamAccess.item); + pManager[pManager.ParamCount - 1].Optional = true; + } + + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.AddGenericParameter("Connection", "Connection", "Shared FEM-Design connection handle.", GH_ParamAccess.item); + pManager.AddGenericParameter("BucklingShapes", "Shapes", "Buckling shape results.", GH_ParamAccess.tree); + pManager.AddGenericParameter("CriticalParameter", "CritParam", "Critical parameters.", GH_ParamAccess.tree); + pManager.AddBooleanParameter("Success", "Success", "True if operation succeeded.", GH_ParamAccess.item); + pManager.AddTextParameter("Log", "Log", "Operation log.", GH_ParamAccess.list); + } + + protected override void SolveInstance(IGH_DataAccess DA) + { + FemDesignHubHandle handle = null; + DA.GetData("Connection", ref handle); + + var combos = new List(); + DA.GetDataList("Combination Name", combos); + + var shapeIds = new List(); + DA.GetDataList("ShapeId", shapeIds); + + Options options = null; + DA.GetData("Options", ref options); + + Results.UnitResults units = null; + DA.GetData("Units", ref units); + + var log = new List(); + bool success = false; + + var bucklingTree = new DataTree(); + var critParameterTree = new DataTree(); + + try + { + if (handle == null) + throw new Exception("Connection handle is null."); + + FemDesignConnectionHub.InvokeAsync(handle.Id, connection => + { + void onOutput(string s) { log.Add(s); } + connection.OnOutput += onOutput; + try + { + // helper to invoke private generic _getStabilityResults + List InvokeStabilityResults(Type resultType, string loadCombination = null, int? shapeId = null) + { + string methodName = nameof(FemDesign.FemDesignConnection._getStabilityResults); + MethodInfo genericMethod = connection.GetType().GetMethod(methodName, BindingFlags.Instance | BindingFlags.NonPublic).MakeGenericMethod(resultType); + var shapeList = shapeId.HasValue ? new List { shapeId.Value } : null; + var combList = loadCombination != null ? new List { loadCombination } : null; + var res = (IEnumerable)genericMethod.Invoke(connection, new object[] { combList, shapeList, units, options, false }); + return res.ToList(); + } + + // read full result sets + var bucklingRes = InvokeStabilityResults(typeof(NodalBucklingShape)).Cast().ToList(); + var critParamRes = InvokeStabilityResults(typeof(CriticalParameter)).Cast().ToList(); + + if (bucklingRes.Count == 0) + throw new Exception("Stability results have not been found. Have you run the Stability analysis?"); + + // validate filters + ValidateCombos(bucklingRes, combos); + ValidateShapes(bucklingRes, shapeIds); + + // build trees and filter + var rawBucklingTree = CreateBucklingTree(bucklingRes); + bucklingTree = FilterBucklingTree(rawBucklingTree, combos, shapeIds); + + string critParamPropName = nameof(CriticalParameter.CaseIdentifier); + var rawCritTree = critParamRes.CreateResultTree(critParamPropName); + critParameterTree = FilterCriticalTree(rawCritTree, combos, shapeIds); + } + finally + { + connection.OnOutput -= onOutput; + } + }).GetAwaiter().GetResult(); + + success = true; + } + catch (Exception ex) + { + log.Add(ex.Message); + success = false; + } + + DA.SetData("Connection", handle); + DA.SetDataTree(1, bucklingTree); + DA.SetDataTree(2, critParameterTree); + DA.SetData("Success", success); + DA.SetDataList("Log", log); + } + + private static void ValidateCombos(List results, List combos) + { + if (!combos.Any()) + return; + + var caseIds = results.Select(x => x.CaseIdentifier).Distinct().ToList(); + foreach (var comb in combos) + { + if (!caseIds.Contains(comb, StringComparer.OrdinalIgnoreCase)) + throw new ArgumentException($"Incorrect or unknown load combination name: {comb}."); + } + } + + private static void ValidateShapes(List results, List shapes) + { + if (!shapes.Any()) + return; + + var shapeIds = results.Select(x => x.Shape).Distinct().ToList(); + foreach (var shape in shapes) + { + if (!shapeIds.Contains(shape)) + throw new ArgumentException($"ShapeId {shape} is out of range."); + } + } + + private static DataTree CreateBucklingTree(List results) + { + var uniqueCaseId = results.Select(x => x.CaseIdentifier).Distinct().ToList(); + var uniqueShape = results.Select(x => x.Shape).Distinct().ToList(); + var resultsTree = new DataTree(); + + for (int i = 0; i < uniqueCaseId.Count; i++) + { + var allResultsByCaseId = results.Where(r => r.CaseIdentifier == uniqueCaseId[i]).ToList(); + + for (int j = 0; j < uniqueShape.Count; j++) + { + var pathData = allResultsByCaseId.Where(s => s.Shape == uniqueShape[j]).ToList(); + resultsTree.AddRange(pathData, new GH_Path(i, j)); + } + } + + // remove empty branches + var emptyPath = new List(); + for (int i = 0; i < resultsTree.BranchCount; i++) + { + var path = resultsTree.Paths[i]; + var branch = resultsTree.Branches[i]; + if (!branch.Any()) + emptyPath.Add(path); + } + + foreach (var item in emptyPath) + resultsTree.RemovePath(item); + + return resultsTree; + } + + private static DataTree FilterBucklingTree(DataTree tree, List loadCombinations, List shapeIds) + { + var removable = new List(); + var filteredTree = tree; + + for (int i = 0; i < filteredTree.BranchCount; i++) + { + var path = filteredTree.Paths[i]; + var branch = filteredTree.Branches[i].ToList(); + + if (loadCombinations.Any() && !loadCombinations.Contains(branch[0].CaseIdentifier, StringComparer.OrdinalIgnoreCase)) + removable.Add(path); + + if (shapeIds.Any() && !shapeIds.Contains(branch[0].Shape)) + removable.Add(path); + } + + foreach (var item in removable) + filteredTree.RemovePath(item); + + if (removable.Any()) + filteredTree = RenumberBucklingTree(filteredTree); + + return filteredTree; + } + + private static DataTree FilterCriticalTree(DataTree tree, List loadCombinations, List shapeIds) + { + var removable = new List(); + var filteredTree = tree; + + for (int i = 0; i < filteredTree.BranchCount; i++) + { + var path = filteredTree.Paths[i]; + var branch = filteredTree.Branches[i].ToList(); + + if (loadCombinations.Any() && !loadCombinations.Contains(branch[0].CaseIdentifier, StringComparer.OrdinalIgnoreCase)) + { + removable.Add(path); + continue; + } + + if (shapeIds.Any()) + { + for (int j = branch.Count - 1; j >= 0; j--) + { + if (!shapeIds.Contains(branch[j].Shape)) + filteredTree.Branches[i].RemoveAt(j); + } + } + } + + foreach (var item in removable) + filteredTree.RemovePath(item); + + if (removable.Any()) + filteredTree.RenumberPaths(); + + return filteredTree; + } + + private static DataTree RenumberBucklingTree(DataTree tree) + { + var orderedTree = new DataTree(); + if (tree.BranchCount == 0) + return orderedTree; + + int i = 0; + int j = 0; + + orderedTree.AddRange(tree.Branches[0], new GH_Path(0, 0)); + + for (int b = 1; b < tree.Branches.Count; b++) + { + var currentBranch = tree.Branches[b]; + var previousBranch = tree.Branches[b - 1]; + + if (currentBranch[0].CaseIdentifier != previousBranch[0].CaseIdentifier) + { + i++; + j = 0; + } + else if (currentBranch[0].Shape != previousBranch[0].Shape) + { + j++; + } + + var path = new GH_Path(i, j); + orderedTree.AddRange(currentBranch, path); + } + + return orderedTree; + } + + protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_readresult; + public override Guid ComponentGuid => new Guid("{8A0E7239-F4F1-4FC7-AE79-FB4D7F2EC9DD}"); + public override GH_Exposure Exposure => GH_Exposure.tertiary; + } +} + + diff --git a/FemDesign.Grasshopper/Pipe/PipeReadEigenFrequencyResults.cs b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeEigenFrequencyResults_OBSOLETE2403.cs similarity index 93% rename from FemDesign.Grasshopper/Pipe/PipeReadEigenFrequencyResults.cs rename to FemDesign.Grasshopper/Pipe/OBSOLETE/PipeEigenFrequencyResults_OBSOLETE2403.cs index 58c3edb99..239c4036f 100644 --- a/FemDesign.Grasshopper/Pipe/PipeReadEigenFrequencyResults.cs +++ b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeEigenFrequencyResults_OBSOLETE2403.cs @@ -2,11 +2,9 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Windows.Forms; using System.Reflection; using Grasshopper; using Grasshopper.Kernel; -using Grasshopper.Kernel.Data; using GrasshopperAsyncComponent; using FemDesign.Calculate; @@ -15,9 +13,9 @@ namespace FemDesign.Grasshopper { - public class PipeEigenFrequencyResults : GH_AsyncComponent + public class PipeEigenFrequencyResults_OBSOLETE2403 : GH_AsyncComponent { - public PipeEigenFrequencyResults() : base("FEM-Design.GetEigenfrequencyResults", "EigenfrequencyResults", "Read the eigenfrequency results from a model. .csv list files are saved in the same work directory as StruxmlPath.\nDO NOT USE THE COMPONENT IF YOU WANT TO PERFORM ITERATIVE ANALYSIS (i.e. Galapos)", CategoryName.Name(), SubCategoryName.Cat8()) + public PipeEigenFrequencyResults_OBSOLETE2403() : base("FEM-Design.GetEigenfrequencyResults", "EigenfrequencyResults", "Read the eigenfrequency results from a model. .csv list files are saved in the same work directory as StruxmlPath.\nDO NOT USE THE COMPONENT IF YOU WANT TO PERFORM ITERATIVE ANALYSIS (i.e. Galapos)", CategoryName.Name(), SubCategoryName.Cat8()) { BaseWorker = new ApplicationReadEigenFrequencyResultWorker(this); } @@ -46,7 +44,7 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_readresult; public override Guid ComponentGuid => new Guid("{285AA531-CFCF-43A7-95DC-6101D5F674B4}"); - public override GH_Exposure Exposure => GH_Exposure.tertiary; + public override GH_Exposure Exposure => GH_Exposure.hidden; } public class ApplicationReadEigenFrequencyResultWorker : WorkerInstance diff --git a/FemDesign.Grasshopper/Pipe/PipeGetFEA.cs b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeGetFeaModel_OBSOLETE2403.cs similarity index 93% rename from FemDesign.Grasshopper/Pipe/PipeGetFEA.cs rename to FemDesign.Grasshopper/Pipe/OBSOLETE/PipeGetFeaModel_OBSOLETE2403.cs index d4715c008..fe2bb6f9e 100644 --- a/FemDesign.Grasshopper/Pipe/PipeGetFEA.cs +++ b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeGetFeaModel_OBSOLETE2403.cs @@ -11,9 +11,9 @@ namespace FemDesign.Grasshopper { - public class PipeGetFeaModel : GH_AsyncComponent + public class PipeGetFeaModel_OBSOLETE2403 : GH_AsyncComponent { - public PipeGetFeaModel() : base("FEM-Design.GetFeModel", "GetFeModel", "Read the finite element data.", CategoryName.Name(), SubCategoryName.Cat8()) + public PipeGetFeaModel_OBSOLETE2403() : base("FEM-Design.GetFeModel", "GetFeModel", "Read the finite element data.", CategoryName.Name(), SubCategoryName.Cat8()) { BaseWorker = new ApplicationGetFeaModelWorker(this); @@ -38,7 +38,7 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_GetMesh; public override Guid ComponentGuid => new Guid("{6231B7A4-936A-4BA2-8302-D3BB4CA1594F}"); - public override GH_Exposure Exposure => GH_Exposure.tertiary; + public override GH_Exposure Exposure => GH_Exposure.hidden; } public class ApplicationGetFeaModelWorker : WorkerInstance diff --git a/FemDesign.Grasshopper/Pipe/PipeCreateResPoint.cs b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeResultPoints_OBSOLETE2403.cs similarity index 92% rename from FemDesign.Grasshopper/Pipe/PipeCreateResPoint.cs rename to FemDesign.Grasshopper/Pipe/OBSOLETE/PipeResultPoints_OBSOLETE2403.cs index eb76642df..a36f1776f 100644 --- a/FemDesign.Grasshopper/Pipe/PipeCreateResPoint.cs +++ b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeResultPoints_OBSOLETE2403.cs @@ -12,9 +12,9 @@ namespace FemDesign.Grasshopper { - public class PipeResultPoints : GH_AsyncComponent + public class PipeResultPoints_OBSOLETE2403 : GH_AsyncComponent { - public PipeResultPoints() : base("FEM-Design.CreateResPoints", "CreateResPoints", "Create result points.\nDO NOT USE THE COMPONENT IF YOU WANT TO PERFORM ITERATIVE ANALYSIS (i.e. Galapos)", CategoryName.Name(), SubCategoryName.Cat8()) + public PipeResultPoints_OBSOLETE2403() : base("FEM-Design.CreateResPoints", "CreateResPoints", "Create result points.\nDO NOT USE THE COMPONENT IF YOU WANT TO PERFORM ITERATIVE ANALYSIS (i.e. Galapos)", CategoryName.Name(), SubCategoryName.Cat8()) { BaseWorker = new ApplicationCreateResultPoints(this); } @@ -35,7 +35,7 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_readresult; public override Guid ComponentGuid => new Guid("{6D03BF35-92DB-4207-99EA-91372E9E7A70}"); - public override GH_Exposure Exposure => GH_Exposure.tertiary; + public override GH_Exposure Exposure => GH_Exposure.hidden; private class ApplicationCreateResultPoints : WorkerInstance { diff --git a/FemDesign.Grasshopper/Pipe/PipeReadStabilityResults.cs b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeStabilityResults_OBSOLETE2403.cs similarity index 96% rename from FemDesign.Grasshopper/Pipe/PipeReadStabilityResults.cs rename to FemDesign.Grasshopper/Pipe/OBSOLETE/PipeStabilityResults_OBSOLETE2403.cs index e82d8e618..7a772682f 100644 --- a/FemDesign.Grasshopper/Pipe/PipeReadStabilityResults.cs +++ b/FemDesign.Grasshopper/Pipe/OBSOLETE/PipeStabilityResults_OBSOLETE2403.cs @@ -15,9 +15,9 @@ namespace FemDesign.Grasshopper { - public class PipeStabilityResults : GH_AsyncComponent + public class PipeStabilityResults_OBSOLETE2403 : GH_AsyncComponent { - public PipeStabilityResults() : base("FEM-Design.GetStabilityResults", "StabilityResults", "Read the stability results from a model. .csv list files are saved in the same work directory as StruxmlPath.\nDO NOT USE THE COMPONENT IF YOU WANT TO PERFORM ITERATIVE ANALYSIS (i.e. Galapos)", CategoryName.Name(), SubCategoryName.Cat8()) + public PipeStabilityResults_OBSOLETE2403() : base("FEM-Design.GetStabilityResults", "StabilityResults", "Read the stability results from a model. .csv list files are saved in the same work directory as StruxmlPath.\nDO NOT USE THE COMPONENT IF YOU WANT TO PERFORM ITERATIVE ANALYSIS (i.e. Galapos)", CategoryName.Name(), SubCategoryName.Cat8()) { BaseWorker = new ApplicationReadStabilityResultWorker(this); } @@ -47,7 +47,7 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_readresult; public override Guid ComponentGuid => new Guid("{D0BEDA49-8BF8-49AB-8784-CCD0F6422E88}"); - public override GH_Exposure Exposure => GH_Exposure.tertiary; + public override GH_Exposure Exposure => GH_Exposure.hidden; } public class ApplicationReadStabilityResultWorker : WorkerInstance diff --git a/FemDesign.Grasshopper/Pipe/WIP_PipeReadStabilityResults.cs b/FemDesign.Grasshopper/Pipe/WIP_PipeReadStabilityResults.cs deleted file mode 100644 index 70fc397e8..000000000 --- a/FemDesign.Grasshopper/Pipe/WIP_PipeReadStabilityResults.cs +++ /dev/null @@ -1,413 +0,0 @@ -//// https://strusoft.com/ -//using System; -//using System.Collections.Generic; -//using System.Linq; -//using System.Windows.Forms; -//using System.Reflection; - -//using Grasshopper; -//using Grasshopper.Kernel; -//using Grasshopper.Kernel.Data; -//using GrasshopperAsyncComponent; - -//using FemDesign.Calculate; -//using FemDesign.Results.Utils; - - -//namespace FemDesign.Grasshopper -//{ -// public class PipeStabilityResults : GH_AsyncComponent -// { -// public PipeStabilityResults() : base("FEM-Design.GetStabilityResults", "StabilityResults", "Read the stability results from a model. .csv list files are saved in the same work directory as StruxmlPath.\nDO NOT USE THE COMPONENT IF YOU WANT TO PERFORM ITERATIVE ANALYSIS (i.e. Galapos)", CategoryName.Name(), SubCategoryName.Cat8()) -// { -// BaseWorker = new ApplicationReadStabilityResultWorker(this); -// } -// protected override void RegisterInputParams(GH_InputParamManager pManager) -// { -// pManager.AddGenericParameter("Connection", "Connection", "FEM-Design connection.", GH_ParamAccess.item); -// pManager.AddTextParameter("Combination Name", "Combo Name", "Optional parameter. If not defined, all load combinations will be listed.", GH_ParamAccess.list); -// pManager[pManager.ParamCount - 1].Optional = true; -// pManager.AddIntegerParameter("ShapeId", "ShapeId", "Buckling shape identifier must be greater or equal to 1. Optional parameter. If not defined, all shapes will be listed.", GH_ParamAccess.list); -// pManager[pManager.ParamCount - 1].Optional = true; -// pManager.AddGenericParameter("Elements", "Elements", "Elements for which the results will be return. Default will return the values for all elements.", GH_ParamAccess.list); -// pManager[pManager.ParamCount - 1].Optional = true; -// pManager.AddGenericParameter("Options", "Options", "Settings for output location. Default is 'ByStep' and 'Vertices'", GH_ParamAccess.item); -// pManager[pManager.ParamCount - 1].Optional = true; -// pManager.AddGenericParameter("Units", "Units", "Specify the Result Units for some specific type. \n" + -// "Default Units are: Length.m, Angle.deg, SectionalData.m, Force.kN, Mass.kg, Displacement.m, Stress.Pa", GH_ParamAccess.item); -// pManager[pManager.ParamCount - 1].Optional = true; -// pManager.AddBooleanParameter("RunNode", "RunNode", "If true node will execute. If false node will not execute.", GH_ParamAccess.item, true); -// pManager[pManager.ParamCount - 1].Optional = true; -// } -// protected override void RegisterOutputParams(GH_OutputParamManager pManager) -// { -// pManager.AddGenericParameter("Connection", "Connection", "FEM-Design connection.", GH_ParamAccess.item); -// pManager.AddGenericParameter("BucklingShapes", "Shapes", "Buckling shape results.", GH_ParamAccess.tree); -// pManager.AddGenericParameter("CriticalParameter", "CritParam", "Critical parameters.", GH_ParamAccess.tree); -// pManager.AddBooleanParameter("Success", "Success", "True if session has exited. False if session is open or was closed manually.", GH_ParamAccess.item); -// } - -// protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_readresult; - -// public override Guid ComponentGuid => new Guid("{3D04EE79-E067-431B-94BF-8289809410F1}"); -// public override GH_Exposure Exposure => GH_Exposure.tertiary; -// } - -// public class ApplicationReadStabilityResultWorker : WorkerInstance -// { -// /* METHODS */ - -// public dynamic _getStabilityResults(Type resultType, string loadCombination = null, int? shapeId = null, Results.UnitResults units = null, Options options = null) -// { -// var methodName = nameof(FemDesignConnection.GetStabilityResults); -// MethodInfo genericMethod = _connection.GetType().GetMethod(methodName).MakeGenericMethod(resultType); -// dynamic results = genericMethod.Invoke(_connection, new object[] { loadCombination, shapeId, units, options }); - -// return results; -// } -// public dynamic _getEigenResults(Type resultType, List loadCombination, List shapeId, List elements, Results.UnitResults units = null, Options options = null) -// { -// var methodName = nameof(FemDesignConnection.GetEigenResults); -// MethodInfo genericMethod = _connection.GetType().GetMethod(methodName).MakeGenericMethod(resultType); -// dynamic results = genericMethod.Invoke(_connection, new object[] { loadCombination, shapeId, elements, units, options }); - -// return results; -// } - -// private DataTree CreateResultTree(List results) -// { -// // create 2D data tree -// var uniqueCaseId = results.Select(x => x.CaseIdentifier).Distinct().ToList(); -// var uniqueShape = results.Select(x => x.Shape).Distinct().ToList(); -// DataTree resultsTree = new DataTree(); - -// for (int i = 0; i < uniqueCaseId.Count; i++) -// { -// var allResultsByCaseId = results.Where(r => r.CaseIdentifier == uniqueCaseId[i]).ToList(); - -// for (int j = 0; j < uniqueShape.Count; j++) -// { -// var pathData = allResultsByCaseId.Where(s => s.Shape == uniqueShape[j]).ToList(); -// resultsTree.AddRange(pathData, new GH_Path(i, j)); -// } -// } - -// // sort and remove empty branches -// var emptyPath = new List(); -// for (int i = 0; i < resultsTree.BranchCount; i++) -// { -// var path = resultsTree.Paths[i]; -// var branch = resultsTree.Branches[i]; - -// if (!branch.Any()) -// { -// emptyPath.Add(path); -// } -// } -// foreach (var item in emptyPath) -// { -// resultsTree.RemovePath(item); -// } - -// return resultsTree; -// } - -// private DataTree FilterTree(DataTree tree, List loadCombinations = null, List shapeIds = null) -// { -// var removable = new List(); -// DataTree filteredTree = tree; - -// // sort and remove unnecessary branches -// for (int i = 0; i < filteredTree.BranchCount; i++) -// { -// var path = filteredTree.Paths[i]; -// var branch = filteredTree.Branches[i].ToList(); - -// if ((loadCombinations.Any()) && (!loadCombinations.Contains(branch[0].CaseIdentifier, StringComparer.OrdinalIgnoreCase))) -// { -// removable.Add(path); -// } -// if ((shapeIds.Any()) && (!shapeIds.Contains(branch[0].Shape))) -// { -// removable.Add(path); -// } -// } -// foreach (var item in removable) -// { -// filteredTree.RemovePath(item); -// } - -// // renumber tree path -// if (removable.Any()) -// { -// filteredTree = ReNumberTree(filteredTree); -// } - -// return filteredTree; -// } - -// private DataTree FilterTree(DataTree tree, List loadCombinations = null, List shapeIds = null) -// { -// var removable = new List(); -// DataTree filteredTree = tree; - -// // sort and remove unnecessary branches -// for (int i = 0; i < filteredTree.BranchCount; i++) -// { -// var path = filteredTree.Paths[i]; -// var branch = filteredTree.Branches[i].ToList(); - -// if ((loadCombinations.Any()) && (!loadCombinations.Contains(branch[0].CaseIdentifier, StringComparer.OrdinalIgnoreCase))) -// { -// removable.Add(path); -// } -// if (shapeIds.Any()) -// { -// for(int j = branch.Count - 1; j >= 0; j--) -// { -// if (!shapeIds.Contains(branch[j].Shape)) -// { -// filteredTree.Branches[i].RemoveAt(j); -// } -// } -// } -// } -// foreach (var item in removable) -// { -// filteredTree.RemovePath(item); -// } - -// // renumber tree path -// if (removable.Any()) -// filteredTree.RenumberPaths(); - -// return filteredTree; -// } - -// private DataTree ReNumberTree(DataTree tree) -// { -// DataTree orderedTree = new DataTree(); -// int i = 0; -// int j = 0; - -// orderedTree.AddRange(tree.Branches[0], new GH_Path(0,0)); - -// for (int b=1; b results, List combos) -// { -// var caseIds = results.Select(x => x.CaseIdentifier).Distinct().ToList(); -// foreach (var comb in combos) -// { -// if (!caseIds.Contains(comb, StringComparer.OrdinalIgnoreCase)) -// throw new ArgumentException($"Incorrect or unknown load combination name: {comb}."); -// } -// return true; -// } - -// private bool ShapeIdIsValid(List results, List shapes) -// { -// var shapeIds = results.Select(x => x.Shape).Distinct().ToList(); -// foreach (var shape in shapes) -// { -// if (!shapeIds.Contains(shape)) -// throw new ArgumentException($"ShapeId {shape} is out of range."); -// } -// return true; -// } - -// private IEnumerable CheckInput(IEnumerable input, IEnumerable comparer) -// { -// if (input.Any()) -// { -// IEnumerable validItems; -// IEnumerable invalidItems; -// string message; - -// //if (input.GetType() == typeof(string)) -// if (typeof(T) == typeof(string)) -// { -// validItems = (IEnumerable)Enumerable.Intersect((IEnumerable)input, (IEnumerable)comparer, StringComparer.OrdinalIgnoreCase); -// invalidItems = (IEnumerable)Enumerable.Except((IEnumerable)input, (IEnumerable)comparer, StringComparer.OrdinalIgnoreCase); -// message = $"Stability results are not available for the following load combinations: {string.Join(", ", invalidItems)}."; -// } -// else -// { -// validItems = input.Intersect(comparer); -// invalidItems = input.Except(comparer); -// message = $"Stability results are not available for the following shape identifiers: {string.Join(", ", invalidItems)}."; -// } - -// if(validItems.Count() == 0) -// { -// throw new ArgumentException("Stability results are not available for the specified load combinations."); -// } -// if(invalidItems.Any()) -// { -// RuntimeMessages.Add((GH_RuntimeMessageLevel.Warning, message)); -// } - -// return validItems; -// } -// else -// { -// return comparer; -// } -// } - - -// /* INPUT/OUTPUT */ -// public FemDesignConnection _connection = null; -// private List _combos = new List(); -// private List _shapeIds = new List(); -// private List _elements = new List(); -// private Results.UnitResults _units = null; -// private Calculate.Options _options = null; -// private bool _runNode = true; - -// private DataTree _bucklingTree = new DataTree(); -// private DataTree _critParameterResults = new DataTree(); -// private bool _success = false; - -// private Type _resultType = typeof(FemDesign.Results.NodalBucklingShape); -// private Type _critParamType = typeof(FemDesign.Results.CriticalParameter); -// private Verbosity _verbosity = Verbosity.Normal; - - -// public ApplicationReadStabilityResultWorker(GH_Component component) : base(component) { } - -// public override void DoWork(Action ReportProgress, Action Done) -// { -// try -// { -// if (_runNode == false) -// { -// _success = false; -// _connection = null; -// RuntimeMessages.Add((GH_RuntimeMessageLevel.Warning, "Run node set to false.")); -// Done(); -// return; -// } - -// if (_connection == null) -// { -// RuntimeMessages.Add((GH_RuntimeMessageLevel.Warning, "Connection is null.")); -// Done(); -// return; -// } - -// if (_connection.IsDisconnected) -// { -// _success = false; -// _connection = null; -// throw new Exception("Connection to FEM-Design have been lost."); -// } - -// if (_connection.HasExited) -// { -// _success = false; -// _connection = null; -// throw new Exception("FEM-Design have been closed."); -// } - -// ReportProgress("", ""); -// _success = true; - - -// // get CriticalParameter results -// List critParamRes = _getStabilityResults(_critParamType, null, null, _units, _options); - -// // check if results are null -// if (critParamRes.Count == 0) -// { -// RuntimeMessages.Add((GH_RuntimeMessageLevel.Warning, "Stability results have not been found. Have you run the Stability analysis?")); -// _success = false; -// _connection = null; -// Done(); -// return; -// } - -// // get load combinations & shape numbers that have been run for stability analysis. -// List combsFromCalc; -// List shapeNumbersByComb; - -// string loadCombPropertyName = nameof(Results.CriticalParameter.CaseIdentifier); -// string shapeIdPropertyName = nameof(Results.CriticalParameter.Shape); -// (combsFromCalc, shapeNumbersByComb) = critParamRes.GetCombosAndShapes(loadCombPropertyName, shapeIdPropertyName); - - -// // check inputs -// int maxIdFromCalc = shapeNumbersByComb.Max(); -// List idRange = Enumerable.Range(1, maxIdFromCalc).ToList(); - -// var comboList = CheckInput(_combos, combsFromCalc).ToList(); -// var shapeList = CheckInput(_shapeIds, idRange).ToList(); - -// // create DataTree from CriticalParameter results; order by load combination name -// string critParamPropName = nameof(FemDesign.Results.CriticalParameter.CaseIdentifier); -// var critParamTree = critParamRes.CreateResultTree(critParamPropName); -// _critParameterResults = FilterTree(critParamTree, _combos, _shapeIds); - -// // Get NodalBucklingShape results -// List bucklingRes = _getEigenResults(_resultType, comboList, shapeList, _elements, _units, _options); - -// // create DataTree from NodalBucklingShape results; order by load combination name and shape identifier -// _bucklingTree = CreateResultTree(bucklingRes); - -// } -// catch (Exception ex) -// { -// RuntimeMessages.Add((GH_RuntimeMessageLevel.Error, ex.Message)); -// _success = false; -// _connection = null; -// } - -// Done(); -// } -// public override WorkerInstance Duplicate() => new ApplicationReadStabilityResultWorker(Parent); - -// public override void GetData(IGH_DataAccess DA, GH_ComponentParamServer Params) -// { -// if (!DA.GetData(0, ref _connection)) return; -// DA.GetDataList(1, _combos); -// DA.GetDataList(2, _shapeIds); -// DA.GetDataList(3, _elements); -// DA.GetData(4, ref _options); -// DA.GetData(5, ref _units); -// DA.GetData(6, ref _runNode); -// } - -// public override void SetData(IGH_DataAccess DA) -// { -// foreach (var (level, message) in RuntimeMessages) -// { -// Parent.AddRuntimeMessage(level, message); -// } - -// DA.SetData(0, _connection); -// DA.SetDataTree(1, _bucklingTree); -// DA.SetDataTree(2, _critParameterResults); -// DA.SetData(3, _success); -// } -// } -//} \ No newline at end of file From 1a0ab9f151efcbe14f8fc639d5e21218a55f46ca Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Wed, 26 Nov 2025 16:47:18 +0100 Subject: [PATCH 23/54] Update FemDesign.Grasshopper.csproj --- FemDesign.Grasshopper/FemDesign.Grasshopper.csproj | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj index ea0e74859..f658f435a 100644 --- a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj +++ b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj @@ -76,6 +76,10 @@ + + + + @@ -227,16 +231,15 @@ + + + - - - - @@ -249,7 +252,6 @@ - @@ -294,6 +296,7 @@ + True True From 5a7da7f8334b116b3aaf041f1a776da5933889fd Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Wed, 26 Nov 2025 16:59:42 +0100 Subject: [PATCH 24/54] :bug: fix reference issues --- .../Pipe/FemDesignGetEigenfrequencyResults.cs | 12 +++++----- .../Pipe/FemDesignGetStabilityResults.cs | 24 +++++++++---------- .../Pipe/FemDesignRunDesign.cs | 2 +- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/FemDesign.Grasshopper/Pipe/FemDesignGetEigenfrequencyResults.cs b/FemDesign.Grasshopper/Pipe/FemDesignGetEigenfrequencyResults.cs index aabae12ad..93963f855 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignGetEigenfrequencyResults.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignGetEigenfrequencyResults.cs @@ -61,8 +61,8 @@ protected override void SolveInstance(IGH_DataAccess DA) var log = new List(); bool success = false; - var vibrationTree = new DataTree(); - var frequencyTree = new DataTree(); + var vibrationTree = new DataTree(); + var frequencyTree = new DataTree(); // check inputs if (handle == null) @@ -85,14 +85,14 @@ List InvokeGetResults(Type resultType) return res.ToList(); } - var vibrationRes = InvokeGetResults(typeof(NodalVibration)).Cast().ToList(); - var frequencyRes = InvokeGetResults(typeof(EigenFrequencies)).Cast().ToList(); + var vibrationRes = InvokeGetResults(typeof(FemDesign.Results.NodalVibration)).Cast().ToList(); + var frequencyRes = InvokeGetResults(typeof(FemDesign.Results.EigenFrequencies)).Cast().ToList(); if (vibrationRes.Count == 0 && frequencyRes.Count == 0) throw new Exception("Eigenfrequencies results have not been found. Have you run the eigenfrequencies analysis?"); - string vibPropName = nameof(NodalVibration.ShapeId); - string freqPropName = nameof(EigenFrequencies.ShapeId); + string vibPropName = nameof(FemDesign.Results.NodalVibration.ShapeId); + string freqPropName = nameof(FemDesign.Results.EigenFrequencies.ShapeId); if (shapeIds.Any()) { diff --git a/FemDesign.Grasshopper/Pipe/FemDesignGetStabilityResults.cs b/FemDesign.Grasshopper/Pipe/FemDesignGetStabilityResults.cs index 819df78dd..c34be26c5 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignGetStabilityResults.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignGetStabilityResults.cs @@ -66,8 +66,8 @@ protected override void SolveInstance(IGH_DataAccess DA) var log = new List(); bool success = false; - var bucklingTree = new DataTree(); - var critParameterTree = new DataTree(); + var bucklingTree = new DataTree(); + var critParameterTree = new DataTree(); try { @@ -92,8 +92,8 @@ List InvokeStabilityResults(Type resultType, string loadCombination = n } // read full result sets - var bucklingRes = InvokeStabilityResults(typeof(NodalBucklingShape)).Cast().ToList(); - var critParamRes = InvokeStabilityResults(typeof(CriticalParameter)).Cast().ToList(); + var bucklingRes = InvokeStabilityResults(typeof(FemDesign.Results.NodalBucklingShape)).Cast().ToList(); + var critParamRes = InvokeStabilityResults(typeof(FemDesign.Results.CriticalParameter)).Cast().ToList(); if (bucklingRes.Count == 0) throw new Exception("Stability results have not been found. Have you run the Stability analysis?"); @@ -131,7 +131,7 @@ List InvokeStabilityResults(Type resultType, string loadCombination = n DA.SetDataList("Log", log); } - private static void ValidateCombos(List results, List combos) + private static void ValidateCombos(List results, List combos) { if (!combos.Any()) return; @@ -144,7 +144,7 @@ private static void ValidateCombos(List results, List results, List shapes) + private static void ValidateShapes(List results, List shapes) { if (!shapes.Any()) return; @@ -157,11 +157,11 @@ private static void ValidateShapes(List results, List s } } - private static DataTree CreateBucklingTree(List results) + private static DataTree CreateBucklingTree(List results) { var uniqueCaseId = results.Select(x => x.CaseIdentifier).Distinct().ToList(); var uniqueShape = results.Select(x => x.Shape).Distinct().ToList(); - var resultsTree = new DataTree(); + var resultsTree = new DataTree(); for (int i = 0; i < uniqueCaseId.Count; i++) { @@ -190,7 +190,7 @@ private static DataTree CreateBucklingTree(List FilterBucklingTree(DataTree tree, List loadCombinations, List shapeIds) + private static DataTree FilterBucklingTree(DataTree tree, List loadCombinations, List shapeIds) { var removable = new List(); var filteredTree = tree; @@ -216,7 +216,7 @@ private static DataTree FilterBucklingTree(DataTree FilterCriticalTree(DataTree tree, List loadCombinations, List shapeIds) + private static DataTree FilterCriticalTree(DataTree tree, List loadCombinations, List shapeIds) { var removable = new List(); var filteredTree = tree; @@ -251,9 +251,9 @@ private static DataTree FilterCriticalTree(DataTree RenumberBucklingTree(DataTree tree) + private static DataTree RenumberBucklingTree(DataTree tree) { - var orderedTree = new DataTree(); + var orderedTree = new DataTree(); if (tree.BranchCount == 0) return orderedTree; diff --git a/FemDesign.Grasshopper/Pipe/FemDesignRunDesign.cs b/FemDesign.Grasshopper/Pipe/FemDesignRunDesign.cs index 55473312b..3ca347f82 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignRunDesign.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignRunDesign.cs @@ -11,7 +11,7 @@ namespace FemDesign.Grasshopper /// public class FemDesignRunDesign : FEM_Design_API_Component { - public FemDesignRunDesign() : base("FEM-Design.RunDesign", "RunDesign", "Run design on current/open model using shared connection.", CategoryName.Name(), SubCategoryName.CatHub()) + public FemDesignRunDesign() : base("FEM-Design.RunDesign", "RunDesign", "Run design on current/open model using shared connection.", CategoryName.Name(), SubCategoryName.Cat8()) { } From ccf7c0e33961ae113c39266381ea815ee634eb3b Mon Sep 17 00:00:00 2001 From: MP Date: Thu, 27 Nov 2025 14:21:17 +0100 Subject: [PATCH 25/54] =?UTF-8?q?=F0=9F=90=9B=20Case=20in=20load=20case=20?= =?UTF-8?q?name=20was=20failing=20to=20parse?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FemDesign.Core/Results/Equilibrium.cs | 2 +- .../App.config | 6 + .../Practical example - Read results.csproj | 68 + .../Program.cs | 33 + .../Properties/AssemblyInfo.cs | 33 + .../model.struxml | 9906 +++++++++++++++++ .../model_mix.struxml | 9804 ++++++++++++++++ .../model_mod.struxml | 9906 +++++++++++++++++ femdesign-api.sln | 7 + 9 files changed, 29764 insertions(+), 1 deletion(-) create mode 100644 FemDesign.Examples/C#/Practical example - Read results/App.config create mode 100644 FemDesign.Examples/C#/Practical example - Read results/Practical example - Read results.csproj create mode 100644 FemDesign.Examples/C#/Practical example - Read results/Program.cs create mode 100644 FemDesign.Examples/C#/Practical example - Read results/Properties/AssemblyInfo.cs create mode 100644 FemDesign.Examples/C#/Practical example - Read results/model.struxml create mode 100644 FemDesign.Examples/C#/Practical example - Read results/model_mix.struxml create mode 100644 FemDesign.Examples/C#/Practical example - Read results/model_mod.struxml diff --git a/FemDesign.Core/Results/Equilibrium.cs b/FemDesign.Core/Results/Equilibrium.cs index c06e19396..a473aeffe 100644 --- a/FemDesign.Core/Results/Equilibrium.cs +++ b/FemDesign.Core/Results/Equilibrium.cs @@ -50,7 +50,7 @@ internal static Regex HeaderExpression { get { - return new Regex(@"(?'type'Equilibrium)|(Load comb|Case)|\[.*\]"); + return new Regex(@"(?'type'Equilibrium)|(Load comb\tComp.\tLoads\tReactions\tError|Case\tComponent\tLoads\tReactions\tError)|\[.*\]"); } } diff --git a/FemDesign.Examples/C#/Practical example - Read results/App.config b/FemDesign.Examples/C#/Practical example - Read results/App.config new file mode 100644 index 000000000..193aecc67 --- /dev/null +++ b/FemDesign.Examples/C#/Practical example - Read results/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/FemDesign.Examples/C#/Practical example - Read results/Practical example - Read results.csproj b/FemDesign.Examples/C#/Practical example - Read results/Practical example - Read results.csproj new file mode 100644 index 000000000..a7a881315 --- /dev/null +++ b/FemDesign.Examples/C#/Practical example - Read results/Practical example - Read results.csproj @@ -0,0 +1,68 @@ + + + + + Debug + AnyCPU + {9DB9DAB0-8C7C-4263-B3DD-64047C37CECE} + Exe + Practical_example___Read_results + Practical_example___Read_results + v4.8 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + Always + + + Always + + + Always + + + + + {1d91ebf4-a473-4c5b-a171-ab2da1b7017b} + FemDesign.Core + + + + \ No newline at end of file diff --git a/FemDesign.Examples/C#/Practical example - Read results/Program.cs b/FemDesign.Examples/C#/Practical example - Read results/Program.cs new file mode 100644 index 000000000..04653b8b7 --- /dev/null +++ b/FemDesign.Examples/C#/Practical example - Read results/Program.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +using FemDesign; +using FemDesign.Calculate; + +namespace FemDesign.Examples +{ + internal class Program + { + static void Main(string[] args) + { + + var connection = new FemDesignConnection(); + connection.Open("model_mix.struxml"); + + var analysis = Analysis.StaticAnalysis(); + connection.RunAnalysis(analysis); + + + var ndLoadCase = connection.GetLoadCaseResults(); + var ndLoadComb = connection.GetLoadCombinationResults(); + + Console.WriteLine("Done!"); + + + + } + } +} diff --git a/FemDesign.Examples/C#/Practical example - Read results/Properties/AssemblyInfo.cs b/FemDesign.Examples/C#/Practical example - Read results/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..b756951b1 --- /dev/null +++ b/FemDesign.Examples/C#/Practical example - Read results/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Practical example - Read results")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Practical example - Read results")] +[assembly: AssemblyCopyright("Copyright © 2025")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("9db9dab0-8c7c-4263-b3dd-64047c37cece")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/FemDesign.Examples/C#/Practical example - Read results/model.struxml b/FemDesign.Examples/C#/Practical example - Read results/model.struxml new file mode 100644 index 000000000..caab3ae2e --- /dev/null +++ b/FemDesign.Examples/C#/Practical example - Read results/model.struxml @@ -0,0 +1,9906 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/FemDesign.Examples/C#/Practical example - Read results/model_mix.struxml b/FemDesign.Examples/C#/Practical example - Read results/model_mix.struxml new file mode 100644 index 000000000..400b24c84 --- /dev/null +++ b/FemDesign.Examples/C#/Practical example - Read results/model_mix.struxml @@ -0,0 +1,9804 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/FemDesign.Examples/C#/Practical example - Read results/model_mod.struxml b/FemDesign.Examples/C#/Practical example - Read results/model_mod.struxml new file mode 100644 index 000000000..caab3ae2e --- /dev/null +++ b/FemDesign.Examples/C#/Practical example - Read results/model_mod.struxml @@ -0,0 +1,9906 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+ +
+ + +
+
+ + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/femdesign-api.sln b/femdesign-api.sln index 289885d32..e2a47071a 100644 --- a/femdesign-api.sln +++ b/femdesign-api.sln @@ -67,6 +67,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Practical example - Stiffne EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Practical example - Connection forces to Load", "FemDesign.Examples\C#\Practical example - Connection forces to Load\Practical example - Connection forces to Load.csproj", "{EFC66E0C-A112-4BA0-B4BC-6703C3564547}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Practical example - Read results", "FemDesign.Examples\C#\Practical example - Read results\Practical example - Read results.csproj", "{9DB9DAB0-8C7C-4263-B3DD-64047C37CECE}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -152,6 +154,10 @@ Global {EFC66E0C-A112-4BA0-B4BC-6703C3564547}.Debug|Any CPU.Build.0 = Debug|Any CPU {EFC66E0C-A112-4BA0-B4BC-6703C3564547}.Release|Any CPU.ActiveCfg = Release|Any CPU {EFC66E0C-A112-4BA0-B4BC-6703C3564547}.Release|Any CPU.Build.0 = Release|Any CPU + {9DB9DAB0-8C7C-4263-B3DD-64047C37CECE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9DB9DAB0-8C7C-4263-B3DD-64047C37CECE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9DB9DAB0-8C7C-4263-B3DD-64047C37CECE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9DB9DAB0-8C7C-4263-B3DD-64047C37CECE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -179,6 +185,7 @@ Global {BEC4FB61-E232-4680-8B90-F154BF3C5884} = {C68FA42C-7B20-4FE3-AED6-8B6619EE5410} {AB041DB5-8D9B-4D67-BF48-10D90E88BBB6} = {C68FA42C-7B20-4FE3-AED6-8B6619EE5410} {EFC66E0C-A112-4BA0-B4BC-6703C3564547} = {C68FA42C-7B20-4FE3-AED6-8B6619EE5410} + {9DB9DAB0-8C7C-4263-B3DD-64047C37CECE} = {C68FA42C-7B20-4FE3-AED6-8B6619EE5410} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {DDF9D949-F79B-4EA6-A766-976B0BE0BC79} From 069efd26bdca838f0717be7536b6f2addf6dcc6b Mon Sep 17 00:00:00 2001 From: MP Date: Thu, 4 Dec 2025 16:04:29 +0100 Subject: [PATCH 26/54] =?UTF-8?q?=F0=9F=86=99=20reduce=20compression=20enu?= =?UTF-8?q?m=20type=20msssing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit EN_1992_1_1_2023 --- FemDesign.Core/Materials/Concrete.cs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/FemDesign.Core/Materials/Concrete.cs b/FemDesign.Core/Materials/Concrete.cs index 6b1d3bb0c..42bfb2ad0 100644 --- a/FemDesign.Core/Materials/Concrete.cs +++ b/FemDesign.Core/Materials/Concrete.cs @@ -112,7 +112,7 @@ internal void SetPlasticity(bool plastic = true, bool hardening = true, Crushing else { plasticity.Concrete_crushing = true; - plasticity.Concrete_crushing_option = (Cc_type)crushing; + plasticity.Concrete_crushing_option = (StruSoft.Interop_24.Cc_type)crushing; } plasticity.Tension_strength = tensionStrength; @@ -124,7 +124,7 @@ internal void SetPlasticity(bool plastic = true, bool hardening = true, Crushing else { plasticity.Tension_stiffening = true; - plasticity.Tension_stiffening_option = (Ts_type)tensionStiffening; + plasticity.Tension_stiffening_option = (StruSoft.Interop_24.Ts_type)tensionStiffening; if(tensionStiffening == TensionStiffening.Hinton) plasticity.Tension_stiffening_param = 0.5; @@ -143,10 +143,12 @@ internal void SetPlasticity(bool plastic = true, bool hardening = true, Crushing else { plasticity.Reduced_compression_strength = true; - plasticity.Reduced_compression_strength_option = (Rcsm_type) reducedCompression; + plasticity.Reduced_compression_strength_option = (StruSoft.Interop_24.Rcsm_type) reducedCompression; if(reducedCompression == ReducedCompression.Cervera) plasticity.Reduced_compression_strength_param = 0.550; + else if(reducedCompression == ReducedCompression.EN_1992_1_1_2023) + plasticity.Reduced_compression_strength_param = 110; } @@ -196,10 +198,15 @@ public enum ReducedCompression [System.Xml.Serialization.XmlEnumAttribute("Vecchio 2")] Vecchio2, + [System.Xml.Serialization.XmlEnumAttribute("Cervera")] Cervera, + [System.Xml.Serialization.XmlEnumAttribute("EN 1992-1-1:2023")] + EN_1992_1_1_2023, + [System.Xml.Serialization.XmlEnumAttribute("Model Code 2010")] ModelCode2010, + None, } } \ No newline at end of file From a28ae4acdcc8182ecafe1475636435b2ff68e39c Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Thu, 4 Dec 2025 20:34:48 +0100 Subject: [PATCH 27/54] :bug: fix FemDesignRunAnalysis Exposure class --- FemDesign.Grasshopper/Pipe/FemDesignRunAnalysis.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FemDesign.Grasshopper/Pipe/FemDesignRunAnalysis.cs b/FemDesign.Grasshopper/Pipe/FemDesignRunAnalysis.cs index e65f34b55..07cd539fc 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignRunAnalysis.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignRunAnalysis.cs @@ -74,7 +74,7 @@ protected override void SolveInstance(IGH_DataAccess DA) protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_RunAnalysis; public override Guid ComponentGuid => new Guid("{166B94CD-DCE9-467A-B693-01405D22D20E}"); - public override GH_Exposure Exposure => GH_Exposure.primary; + public override GH_Exposure Exposure => GH_Exposure.secondary; } } From 184772bea6e13ebd6b69ac58e4ab7685db61812c Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Thu, 4 Dec 2025 20:36:01 +0100 Subject: [PATCH 28/54] add KeepOpen() to Dispose --- .../Helpers/FemDesignConnectionHub.cs | 42 ++++++++++++++++--- 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/FemDesign.Grasshopper/Helpers/FemDesignConnectionHub.cs b/FemDesign.Grasshopper/Helpers/FemDesignConnectionHub.cs index e75f4c1b2..792797c51 100644 --- a/FemDesign.Grasshopper/Helpers/FemDesignConnectionHub.cs +++ b/FemDesign.Grasshopper/Helpers/FemDesignConnectionHub.cs @@ -37,16 +37,22 @@ public static Guid Create(string fdDir, bool minimized, string outputDir = null, catch { /* Swallow here; exceptions are delivered via TaskCompletionSource */ } } }); + inst.WorkerThread.IsBackground = true; inst.WorkerThread.Name = $"FemDesignConnectionHub-Worker-{id}"; - if (!_instances.TryAdd(id, inst)) throw new InvalidOperationException("Failed to create FemDesign connection instance."); + + if (!_instances.TryAdd(id, inst)) + throw new InvalidOperationException("Failed to create FemDesign connection instance."); + inst.WorkerThread.Start(); return id; } private static Instance Require(Guid id) { - if (!_instances.TryGetValue(id, out var inst)) throw new InvalidOperationException("Invalid or disposed FemDesign connection handle."); + if (!_instances.TryGetValue(id, out var inst)) + throw new InvalidOperationException("Invalid or disposed FemDesign connection handle."); + return inst; } @@ -54,11 +60,13 @@ public static Task InvokeAsync(Guid id, Func(); + inst.Queue.Add(() => { try { tcs.SetResult(func(inst.Connection)); } catch (Exception ex) { tcs.SetException(ex); } }); + return tcs.Task; } @@ -66,28 +74,50 @@ public static Task InvokeAsync(Guid id, Action ac { var inst = Require(id); var tcs = new TaskCompletionSource(); + inst.Queue.Add(() => { - try { action(inst.Connection); tcs.SetResult(true); } + try + { + action(inst.Connection); + tcs.SetResult(true); + } catch (Exception ex) { tcs.SetException(ex); } }); + return tcs.Task; } - public static Task DisposeAsync(Guid id) + public static Task DisposeAsync(Guid id) => DisposeAsync(id, false); + + public static Task DisposeAsync(Guid id, bool detach) { var tcs = new TaskCompletionSource(); - if (!_instances.TryGetValue(id, out var inst)) { tcs.SetResult(true); return tcs.Task; } + if (!_instances.TryGetValue(id, out var inst)) + { + tcs.SetResult(true); + + return tcs.Task; + } inst.Queue.Add(() => { - try { inst.Connection?.Dispose(); inst.Connection = null; } + try + { + if(detach) + { + inst.Connection?.KeepOpen(); + } + inst.Connection?.Dispose(); + inst.Connection = null; + } catch { /* ignore */ } finally { tcs.SetResult(true); } }); inst.Queue.CompleteAdding(); _instances.TryRemove(id, out _); + return tcs.Task; } } From 608ea32cdb464d247067fe4fb3d82e95a968d114 Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Thu, 4 Dec 2025 20:37:22 +0100 Subject: [PATCH 29/54] =?UTF-8?q?=F0=9F=92=84=20making=20ToString()=20more?= =?UTF-8?q?=20meaningful?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FemDesign.Grasshopper/Helpers/FemDesignHubHandle.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FemDesign.Grasshopper/Helpers/FemDesignHubHandle.cs b/FemDesign.Grasshopper/Helpers/FemDesignHubHandle.cs index 85232b02c..8edc32e09 100644 --- a/FemDesign.Grasshopper/Helpers/FemDesignHubHandle.cs +++ b/FemDesign.Grasshopper/Helpers/FemDesignHubHandle.cs @@ -17,7 +17,7 @@ public FemDesignHubHandle(Guid id) public override string ToString() { - return $"FemDesignHubHandle: {Id}"; + return $"Connection ID: {Id}"; } } } \ No newline at end of file From 79e55c0e4bec4c553fc23b59907bc5e142c83940 Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Thu, 4 Dec 2025 20:39:48 +0100 Subject: [PATCH 30/54] set `_keepOpen` to true in Disconnect & remove `Connection` output --- FemDesign.Grasshopper/Pipe/FemDesignDisconnect.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/FemDesign.Grasshopper/Pipe/FemDesignDisconnect.cs b/FemDesign.Grasshopper/Pipe/FemDesignDisconnect.cs index 5deab0d41..184a204cc 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignDisconnect.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignDisconnect.cs @@ -10,7 +10,7 @@ namespace FemDesign.Grasshopper ///
public class FemDesignDisconnect : FEM_Design_API_Component { - public FemDesignDisconnect() : base("FEM-Design.Disconnect", "Disconnect", "Detach the connection, but keeps open FEM-Design.", CategoryName.Name(), SubCategoryName.Cat8()) + public FemDesignDisconnect() : base("FEM-Design.Disconnect", "Disconnect", "Detach and close the connection, but keeps open FEM-Design.", CategoryName.Name(), SubCategoryName.Cat8()) { } @@ -21,7 +21,6 @@ protected override void RegisterInputParams(GH_InputParamManager pManager) protected override void RegisterOutputParams(GH_OutputParamManager pManager) { - pManager.AddGenericParameter("Connection", "Connection", "Same handle (now disposed).", GH_ParamAccess.item); pManager.AddBooleanParameter("Success", "Success", "True if disconnect succeeded.", GH_ParamAccess.item); pManager.AddTextParameter("Log", "Log", "Operation log.", GH_ParamAccess.list); } @@ -36,8 +35,10 @@ protected override void SolveInstance(IGH_DataAccess DA) try { - if (handle == null) throw new Exception("'Connection' handle is null."); - FemDesignConnectionHub.DisposeAsync(handle.Id).GetAwaiter().GetResult(); + if (handle == null) + throw new Exception("'Connection' handle is null."); + + FemDesignConnectionHub.DisposeAsync(handle.Id, true).GetAwaiter().GetResult(); success = true; } catch (Exception ex) @@ -46,14 +47,13 @@ protected override void SolveInstance(IGH_DataAccess DA) success = false; } - DA.SetData("Connection", handle); DA.SetData("Success", success); DA.SetDataList("Log", log); } protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_Connection; public override Guid ComponentGuid => new Guid("{5A52243F-4136-48F0-9279-3E7E3DF82D2E}"); - public override GH_Exposure Exposure => GH_Exposure.secondary; + public override GH_Exposure Exposure => GH_Exposure.primary; } } From 021a3a5bd2f5e076b1fcfa991f118535e1658a8c Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Thu, 4 Dec 2025 20:41:41 +0100 Subject: [PATCH 31/54] implementing `Enabled` event sensitivity --- .../Pipe/FemDesignConnectionComponent.cs | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/FemDesign.Grasshopper/Pipe/FemDesignConnectionComponent.cs b/FemDesign.Grasshopper/Pipe/FemDesignConnectionComponent.cs index d35f0e141..9ef4f0fce 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignConnectionComponent.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignConnectionComponent.cs @@ -15,6 +15,15 @@ public class FemDesignConnectionComponent: FEM_Design_API_Component public FemDesignConnectionComponent() : base("FEM-Design.Connection", "Connection", "Create or configure a shared FEM-Design connection. Use it to specify the 'Connection' for the LiveLink components.\n\n" + "Note: Removing this component will automatically close the FEM-Design window. To keep FEM-Design open after closing the connection, use the 'Disconnect' component.", CategoryName.Name(), SubCategoryName.Cat8()) { + ObjectChanged += FemDesignConnectionComponent_ObjectChanged; + } + + private void FemDesignConnectionComponent_ObjectChanged(object sender, GH_ObjectChangedEventArgs e) + { + if (e.Type is GH_ObjectEventType.Enabled) + { + CloseConnection(); + } } protected override void RegisterInputParams(GH_InputParamManager pManager) @@ -22,7 +31,7 @@ protected override void RegisterInputParams(GH_InputParamManager pManager) pManager.AddTextParameter("FEM-Design dir", "FEM-Design dir", "Path to the FEM-Design installation directory.", GH_ParamAccess.item, @"C:\\Program Files\\StruSoft\\FEM-Design 24\\"); pManager[pManager.ParamCount - 1].Optional = true; - pManager.AddBooleanParameter("Minimized", "Minimized", "If true, FEM-Design window will open in a minimised mode.", GH_ParamAccess.item, true); + pManager.AddBooleanParameter("Minimized", "Minimized", "If true, FEM-Design window will open in a minimised mode.", GH_ParamAccess.item, false); pManager[pManager.ParamCount - 1].Optional = true; pManager.AddTextParameter("OutputDir", "OutputDir", "The directory where the script, log and result files will be saved. By default, the files will be written to the same directory as your .gh script.", GH_ParamAccess.item); @@ -42,7 +51,7 @@ protected override void SolveInstance(IGH_DataAccess DA) string fdDir = @"C:\\Program Files\\StruSoft\\FEM-Design 24\\"; DA.GetData("FEM-Design dir", ref fdDir); - bool minimized = true; + bool minimized = false; DA.GetData("Minimized", ref minimized); string outputDir = null; @@ -74,15 +83,20 @@ protected override void SolveInstance(IGH_DataAccess DA) DA.SetData("Connection", new FemDesign.Grasshopper.FemDesignHubHandle(_handle)); } + private void CloseConnection() + { + if (_handle != Guid.Empty) + { + FemDesignConnectionHub.DisposeAsync(_handle).GetAwaiter().GetResult(); + _handle = Guid.Empty; + } + } + public override void RemovedFromDocument(GH_Document document) { try { - if (_handle != Guid.Empty) - { - FemDesignConnectionHub.DisposeAsync(_handle).GetAwaiter().GetResult(); - _handle = Guid.Empty; - } + CloseConnection(); } catch { } From 99395c4546e72555e5ed3b87c98931f583e91061 Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Thu, 4 Dec 2025 21:42:21 +0100 Subject: [PATCH 32/54] add missing error handling --- FemDesign.Grasshopper/Helpers/FemDesignConnectionHub.cs | 2 +- FemDesign.Grasshopper/Pipe/FemDesignCreateResPoints.cs | 1 + FemDesign.Grasshopper/Pipe/FemDesignGetCaseCombResults.cs | 1 + .../Pipe/FemDesignGetEigenfrequencyResults.cs | 1 + FemDesign.Grasshopper/Pipe/FemDesignGetModel.cs | 3 ++- FemDesign.Grasshopper/Pipe/FemDesignGetQuantities.cs | 3 ++- FemDesign.Grasshopper/Pipe/FemDesignGetStabilityResults.cs | 1 + FemDesign.Grasshopper/Pipe/FemDesignOpen.cs | 1 + FemDesign.Grasshopper/Pipe/FemDesignResultFromBsc.cs | 3 ++- FemDesign.Grasshopper/Pipe/FemDesignRunAnalysis.cs | 1 + FemDesign.Grasshopper/Pipe/FemDesignRunDesign.cs | 3 ++- FemDesign.Grasshopper/Pipe/FemDesignSaveAs.cs | 3 ++- FemDesign.Grasshopper/Pipe/FemDesignSaveDocumentation.cs | 3 ++- FemDesign.Grasshopper/Pipe/FemDesignSetCfg.cs | 3 ++- FemDesign.Grasshopper/Pipe/FemDesignSetGlobalCfg.cs | 3 ++- 15 files changed, 23 insertions(+), 9 deletions(-) diff --git a/FemDesign.Grasshopper/Helpers/FemDesignConnectionHub.cs b/FemDesign.Grasshopper/Helpers/FemDesignConnectionHub.cs index 792797c51..a2683bde4 100644 --- a/FemDesign.Grasshopper/Helpers/FemDesignConnectionHub.cs +++ b/FemDesign.Grasshopper/Helpers/FemDesignConnectionHub.cs @@ -51,7 +51,7 @@ public static Guid Create(string fdDir, bool minimized, string outputDir = null, private static Instance Require(Guid id) { if (!_instances.TryGetValue(id, out var inst)) - throw new InvalidOperationException("Invalid or disposed FemDesign connection handle."); + throw new InvalidOperationException("Invalid or disposed FemDesign connection."); return inst; } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignCreateResPoints.cs b/FemDesign.Grasshopper/Pipe/FemDesignCreateResPoints.cs index 85928b805..2bab0fafe 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignCreateResPoints.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignCreateResPoints.cs @@ -72,6 +72,7 @@ protected override void SolveInstance(IGH_DataAccess DA) } catch (Exception ex) { + this.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, ex.Message); log.Add(ex.Message); success = false; } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignGetCaseCombResults.cs b/FemDesign.Grasshopper/Pipe/FemDesignGetCaseCombResults.cs index d46d830b4..a26e29d68 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignGetCaseCombResults.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignGetCaseCombResults.cs @@ -139,6 +139,7 @@ protected override void SolveInstance(IGH_DataAccess DA) } catch (Exception ex) { + this.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, ex.Message); log.Add(ex.InnerException?.Message ?? ex.Message); success = false; } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignGetEigenfrequencyResults.cs b/FemDesign.Grasshopper/Pipe/FemDesignGetEigenfrequencyResults.cs index 93963f855..21ffebe3b 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignGetEigenfrequencyResults.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignGetEigenfrequencyResults.cs @@ -113,6 +113,7 @@ List InvokeGetResults(Type resultType) } catch (Exception ex) { + this.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, ex.Message); log.Add(ex.Message); success = false; } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignGetModel.cs b/FemDesign.Grasshopper/Pipe/FemDesignGetModel.cs index 57c39296c..0098d5941 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignGetModel.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignGetModel.cs @@ -56,7 +56,8 @@ protected override void SolveInstance(IGH_DataAccess DA) } catch (Exception ex) { - log.Add(ex.Message); + this.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, ex.Message); + log.Add(ex.Message); success = false; } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignGetQuantities.cs b/FemDesign.Grasshopper/Pipe/FemDesignGetQuantities.cs index be1983e5f..984f8bc9e 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignGetQuantities.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignGetQuantities.cs @@ -90,7 +90,8 @@ protected override void SolveInstance(IGH_DataAccess DA) } catch (Exception ex) { - log.Add(ex.Message); + this.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, ex.Message); + log.Add(ex.Message); success = false; } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignGetStabilityResults.cs b/FemDesign.Grasshopper/Pipe/FemDesignGetStabilityResults.cs index c34be26c5..5eeb15526 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignGetStabilityResults.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignGetStabilityResults.cs @@ -120,6 +120,7 @@ List InvokeStabilityResults(Type resultType, string loadCombination = n } catch (Exception ex) { + this.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, ex.Message); log.Add(ex.Message); success = false; } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignOpen.cs b/FemDesign.Grasshopper/Pipe/FemDesignOpen.cs index 8e8cc03a3..95398b0fa 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignOpen.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignOpen.cs @@ -84,6 +84,7 @@ protected override void SolveInstance(IGH_DataAccess DA) } catch (Exception ex) { + this.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, ex.Message); log.Add(ex.Message); success = false; } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignResultFromBsc.cs b/FemDesign.Grasshopper/Pipe/FemDesignResultFromBsc.cs index 0fdfeef2a..53a235ef1 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignResultFromBsc.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignResultFromBsc.cs @@ -84,7 +84,8 @@ protected override void SolveInstance(IGH_DataAccess DA) } catch (Exception ex) { - log.Add(ex.Message); + this.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, ex.Message); + log.Add(ex.Message); success = false; } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignRunAnalysis.cs b/FemDesign.Grasshopper/Pipe/FemDesignRunAnalysis.cs index 07cd539fc..5b010d6a0 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignRunAnalysis.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignRunAnalysis.cs @@ -63,6 +63,7 @@ protected override void SolveInstance(IGH_DataAccess DA) } catch (Exception ex) { + this.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, ex.Message); log.Add(ex.Message); success = false; } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignRunDesign.cs b/FemDesign.Grasshopper/Pipe/FemDesignRunDesign.cs index 3ca347f82..adf7d47e4 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignRunDesign.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignRunDesign.cs @@ -69,7 +69,8 @@ protected override void SolveInstance(IGH_DataAccess DA) } catch (Exception ex) { - log.Add(ex.Message); + this.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, ex.Message); + log.Add(ex.Message); success = false; } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignSaveAs.cs b/FemDesign.Grasshopper/Pipe/FemDesignSaveAs.cs index d54ca8a00..47a3bd850 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignSaveAs.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignSaveAs.cs @@ -62,7 +62,8 @@ protected override void SolveInstance(IGH_DataAccess DA) } catch (Exception ex) { - log.Add(ex.Message); + this.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, ex.Message); + log.Add(ex.Message); success = false; } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignSaveDocumentation.cs b/FemDesign.Grasshopper/Pipe/FemDesignSaveDocumentation.cs index a2a0b3011..2dc993758 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignSaveDocumentation.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignSaveDocumentation.cs @@ -67,7 +67,8 @@ protected override void SolveInstance(IGH_DataAccess DA) } catch (Exception ex) { - log.Add(ex.Message); + this.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, ex.Message); + log.Add(ex.Message); success = false; } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignSetCfg.cs b/FemDesign.Grasshopper/Pipe/FemDesignSetCfg.cs index 87342b51f..7e7e8a7cf 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignSetCfg.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignSetCfg.cs @@ -90,7 +90,8 @@ protected override void SolveInstance(IGH_DataAccess DA) } catch (Exception ex) { - log.Add(ex.Message); + this.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, ex.Message); + log.Add(ex.Message); success = false; } diff --git a/FemDesign.Grasshopper/Pipe/FemDesignSetGlobalCfg.cs b/FemDesign.Grasshopper/Pipe/FemDesignSetGlobalCfg.cs index 6f2f42bb5..bb17284cd 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignSetGlobalCfg.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignSetGlobalCfg.cs @@ -90,7 +90,8 @@ protected override void SolveInstance(IGH_DataAccess DA) } catch (Exception ex) { - log.Add(ex.Message); + this.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, ex.Message); + log.Add(ex.Message); success = false; } From c5c6798b4157c3f50f8c7d911b1fbea8407df1e3 Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Thu, 4 Dec 2025 21:51:03 +0100 Subject: [PATCH 33/54] Update FemDesign.Grasshopper.csproj --- FemDesign.Grasshopper/FemDesign.Grasshopper.csproj | 2 -- 1 file changed, 2 deletions(-) diff --git a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj index 389ddb5f5..ce27dd04e 100644 --- a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj +++ b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj @@ -77,8 +77,6 @@ - - From 80445975702cf4c9237979daa6c35ee309676a8e Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Tue, 9 Dec 2025 09:07:46 +0100 Subject: [PATCH 34/54] =?UTF-8?q?=E2=9C=A8=20implement=20DiaphragmType?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #1168 --- FemDesign.Core/Calculate/Analysis.cs | 43 ++--- FemDesign.Core/Calculate/DiaphragmType.cs | 15 ++ FemDesign.Core/FemDesign.Core.csproj | 1 + .../CalculationParametersAnalysisDefine.cs | 149 +++++------------- 4 files changed, 77 insertions(+), 131 deletions(-) create mode 100644 FemDesign.Core/Calculate/DiaphragmType.cs diff --git a/FemDesign.Core/Calculate/Analysis.cs b/FemDesign.Core/Calculate/Analysis.cs index ee1806db2..4b8e25903 100644 --- a/FemDesign.Core/Calculate/Analysis.cs +++ b/FemDesign.Core/Calculate/Analysis.cs @@ -1,9 +1,10 @@ // https://strusoft.com/ +using FemDesign.Shells; using System; using System.Collections.Generic; -using System.Xml.Serialization; +using System.ComponentModel; using System.Linq; -using FemDesign.Shells; +using System.Xml.Serialization; namespace FemDesign.Calculate @@ -296,22 +297,19 @@ public bool ElemFine this._elemFine = Convert.ToInt32(value); } } - + [XmlAttribute("diaphragm")] public int _diaphragm; [XmlIgnore] - public int Diaphragm + public DiaphragmType Diaphragm { get { - return this._diaphragm; + return (DiaphragmType)this._diaphragm; } set { - if (value < 0 || value > 2) - throw new ArgumentException($"Diaphragm is set to {value}. Value must be '0'= None , '1'= Rigid membrane or '2'= Fully rigid."); - - this._diaphragm = value; + this._diaphragm = (int)value; } } @@ -337,7 +335,14 @@ private Analysis() { } - public Analysis(Calculate.Stage stage = null, Stability stability = null, Imperfection imperfection = null, Comb comb = null, Freq freq = null, Footfall footfall = null, Bedding bedding = null, GroundAcc groundAcc = null, ExcitationForce exForce = null, PeriodicExcitation periodicEx = null, bool calcCase = false, bool calcCStage = false, bool calcImpf = false, bool calcComb = false, bool calcGMax = false, bool calcStab = false, bool calcFreq = false, bool calcSeis = false, bool calcFootfall = false, bool calcBedding = false, bool calcGroundAcc = false, bool calcExForce = false, bool calcPeriodicEx = false, bool calcDesign = false, bool elemFine = true, int diaphragm = 0, bool peakSmoothing = false) + [Obsolete("Use Analysis(..., DiaphragmType diaphragm, ...) instead. This constructor will be removed in the next version.")] + [EditorBrowsable(EditorBrowsableState.Never)] + public Analysis(Calculate.Stage stage = null, Stability stability = null, Imperfection imperfection = null, Comb comb = null, Freq freq = null, Footfall footfall = null, Bedding bedding = null, GroundAcc groundAcc = null, ExcitationForce exForce = null, PeriodicExcitation periodicEx = null, bool calcCase = false, bool calcCStage = false, bool calcImpf = false, bool calcComb = false, bool calcGMax = false, bool calcStab = false, bool calcFreq = false, bool calcSeis = false, bool calcFootfall = false, bool calcBedding = false, bool calcGroundAcc = false, bool calcExForce = false, bool calcPeriodicEx = false, bool calcDesign = false, bool elemFine = true, int diaphragm = 0, bool peakSmoothing = false) + : this(stage, stability, imperfection, comb, freq, footfall, bedding, groundAcc, exForce, periodicEx, calcCase, calcCStage, calcImpf, calcComb, calcGMax, calcStab, calcFreq, calcSeis, calcFootfall, calcBedding, calcGroundAcc, calcExForce, calcPeriodicEx, calcDesign, elemFine, (DiaphragmType)diaphragm, peakSmoothing) + { + } + + public Analysis(Calculate.Stage stage = null, Stability stability = null, Imperfection imperfection = null, Comb comb = null, Freq freq = null, Footfall footfall = null, Bedding bedding = null, GroundAcc groundAcc = null, ExcitationForce exForce = null, PeriodicExcitation periodicEx = null, bool calcCase = false, bool calcCStage = false, bool calcImpf = false, bool calcComb = false, bool calcGMax = false, bool calcStab = false, bool calcFreq = false, bool calcSeis = false, bool calcFootfall = false, bool calcBedding = false, bool calcGroundAcc = false, bool calcExForce = false, bool calcPeriodicEx = false, bool calcDesign = false, bool elemFine = true, DiaphragmType diaphragm = DiaphragmType.None, bool peakSmoothing = false) { this.Stage = stage; this.Comb = comb; @@ -411,7 +416,7 @@ private void _validateAnalysisSettings() public static Analysis StaticAnalysis(Comb comb = null, bool calcCase = true, bool calccomb = true) { comb = comb ?? Comb.Default(); - return new Analysis(comb: comb, calcCase: calcCase, calcComb: calccomb); + return new Analysis(comb: comb, calcCase: calcCase, calcComb: calccomb, diaphragm: DiaphragmType.None); } @@ -428,7 +433,7 @@ public static Analysis StaticAnalysis(Comb comb = null, bool calcCase = true, bo public static Analysis Eigenfrequencies(int numShapes = 3, int maxSturm = 0, bool x = true, bool y = true, bool z = true, double top = -0.01) { var freqSettings = new Freq(numShapes, maxSturm, x, y, z, top); - return new Analysis(freq: freqSettings, calcFreq: true); + return new Analysis(freq: freqSettings, calcFreq: true, diaphragm: DiaphragmType.None); } /// @@ -446,7 +451,7 @@ public static Analysis Eigenfrequencies(int numShapes = 3, int maxSturm = 0, boo public static Analysis Eigenfrequencies(int numShapes = 3, int autoIteration = 0, ShapeNormalisation shapeNormalisation = ShapeNormalisation.Unit, int maxSturm = 0, bool x = true, bool y = true, bool z = true, double top = -0.01) { var freqSettings = new Freq(numShapes, autoIteration, shapeNormalisation, x, y, z, maxSturm, top); - return new Analysis(freq: freqSettings, calcFreq: true); + return new Analysis(freq: freqSettings, calcFreq: true, diaphragm: DiaphragmType.None); } /// @@ -456,7 +461,7 @@ public static Analysis Eigenfrequencies(int numShapes = 3, int autoIteration = 0 /// public static Analysis Eigenfrequencies(Freq freqSettings) { - return new Analysis(freq: freqSettings, calcFreq: true); + return new Analysis(freq: freqSettings, calcFreq: true, diaphragm: DiaphragmType.None); } /// @@ -477,7 +482,7 @@ public static Analysis Eigenfrequencies(Freq freqSettings) public static Analysis GroundAcceleration(bool levelAccSpectra = true, double deltaT = 0.2, double tEnd = 5.0, double q = 1.0, bool timeHistory = true, int step = 5, double lastMoment = 20.0, IntegrationSchemeMethod method = IntegrationSchemeMethod.Newmark, double alpha = 0.5, double beta = 0.25, double dmpFactor = 5.0) { GroundAcc grAccSettings = new GroundAcc(levelAccSpectra, deltaT, tEnd, q, timeHistory, step, lastMoment, method, alpha, beta, dmpFactor); - return new Analysis(groundAcc: grAccSettings, calcGroundAcc: true); + return new Analysis(groundAcc: grAccSettings, calcGroundAcc: true, diaphragm: DiaphragmType.None); } /// @@ -493,7 +498,7 @@ public static Analysis GroundAcceleration(bool levelAccSpectra = true, double de public static Analysis ExcitationForce(int step = 5, double lastMoment = 20.0, IntegrationSchemeMethod method = IntegrationSchemeMethod.Newmark, double alpha = 0.5, double beta = 0.25, double dmpFactor = 5.0) { ExcitationForce grAccSettings = new ExcitationForce(step, lastMoment, method, alpha, beta, dmpFactor); - return new Analysis(exForce: grAccSettings, calcExForce: true); + return new Analysis(exForce: grAccSettings, calcExForce: true, diaphragm: DiaphragmType.None); } /// @@ -509,7 +514,7 @@ public static Analysis ExcitationForce(int step = 5, double lastMoment = 20.0, I public static Analysis PeriodicExcitation(double deltaT = 0.01, double timeEnd = 5.0, DampingType dmpType = DampingType.Rayleigh, double alpha = 0.5, double beta = 0.25, double dmpFactor = 5.0) { PeriodicExcitation perExSettings = new PeriodicExcitation(deltaT, timeEnd, dmpType, alpha, beta, dmpFactor); - return new Analysis(periodicEx: perExSettings, calcPeriodicEx: true); + return new Analysis(periodicEx: perExSettings, calcPeriodicEx: true, diaphragm: DiaphragmType.None); } /// @@ -521,13 +526,13 @@ public static Analysis PeriodicExcitation(double deltaT = 0.01, double timeEnd = public static Analysis ConstructionStages(bool ghost = false) { var stage = ghost ? Stage.GhostMethod() : Stage.TrackingMethod(); - return new Analysis(stage: stage, calcCStage: true); + return new Analysis(stage: stage, calcCStage: true, diaphragm: DiaphragmType.None); } // TODO (missing calculation parameters in .fdscript) private static Analysis FootFall(Footfall footfall) { - var analisys = new Analysis(footfall: footfall, calcFootfall: true); + var analisys = new Analysis(footfall: footfall, calcFootfall: true, diaphragm: DiaphragmType.None); throw new NotImplementedException(); } diff --git a/FemDesign.Core/Calculate/DiaphragmType.cs b/FemDesign.Core/Calculate/DiaphragmType.cs new file mode 100644 index 000000000..14e5b181d --- /dev/null +++ b/FemDesign.Core/Calculate/DiaphragmType.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FemDesign.Calculate +{ + public enum DiaphragmType + { + None = 0, + RigidMembrane = 1, + FullyRigid = 2 + } +} diff --git a/FemDesign.Core/FemDesign.Core.csproj b/FemDesign.Core/FemDesign.Core.csproj index e3e50631b..99ceda4ca 100644 --- a/FemDesign.Core/FemDesign.Core.csproj +++ b/FemDesign.Core/FemDesign.Core.csproj @@ -77,6 +77,7 @@ + diff --git a/FemDesign.Grasshopper/Calculate/CalculationParametersAnalysisDefine.cs b/FemDesign.Grasshopper/Calculate/CalculationParametersAnalysisDefine.cs index 6611ab657..a1ad85aba 100644 --- a/FemDesign.Grasshopper/Calculate/CalculationParametersAnalysisDefine.cs +++ b/FemDesign.Grasshopper/Calculate/CalculationParametersAnalysisDefine.cs @@ -77,173 +77,98 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) } protected override void BeforeSolveInstance() { - ValueListUtils.UpdateValueLists(this, 17, new List { "None", "Rigid membrane", "Fully rigid" }, new List { 0, 1, 2 }, GH_ValueListMode.DropDown); + ValueListUtils.UpdateValueLists(this, 25, new List { "None", "Rigid membrane", "Fully rigid" }, new List { 0, 1, 2 }, GH_ValueListMode.DropDown); } protected override void SolveInstance(IGH_DataAccess DA) { + // get inputs FemDesign.Calculate.Stage stage = null; - if (!DA.GetData("StageSetting", ref stage)) - { - // pass - } + DA.GetData("StageSetting", ref stage); FemDesign.Calculate.Comb _comb = null; - if (!DA.GetData("Comb", ref _comb)) - { - // pass - } + DA.GetData("Comb", ref _comb); FemDesign.Calculate.Stability _stability = null; - if (!DA.GetData("Stability", ref _stability)) - { - // pass - } + DA.GetData("Stability", ref _stability); FemDesign.Calculate.Imperfection _imperfection = null; - if (!DA.GetData("Imperfection", ref _imperfection)) - { - //pass - } + DA.GetData("Imperfection", ref _imperfection); FemDesign.Calculate.Bedding _bedding = null; - if (!DA.GetData("Bedding", ref _bedding)) - { - //pass - } + DA.GetData("Bedding", ref _bedding); FemDesign.Calculate.Freq _freq = null; - if (!DA.GetData("Freq", ref _freq)) - { - // pass - } + DA.GetData("Freq", ref _freq); FemDesign.Calculate.Footfall _footfall = null; - if (!DA.GetData("Footfall", ref _footfall)) - { - // pass - } + DA.GetData("Footfall", ref _footfall); FemDesign.Calculate.GroundAcc _groundAcc = null; - if (!DA.GetData("GroundAcc", ref _groundAcc)) - { - // pass - } + DA.GetData("GroundAcc", ref _groundAcc); FemDesign.Calculate.ExcitationForce _exForce = null; - if (!DA.GetData("ExForce", ref _exForce)) - { - // pass - } + DA.GetData("ExForce", ref _exForce); FemDesign.Calculate.PeriodicExcitation _periodicExcitation = null; - if (!DA.GetData("PeriodicEx", ref _periodicExcitation)) - { - // pass - } + DA.GetData("PeriodicEx", ref _periodicExcitation); bool calcCase = true; - if (!DA.GetData("calcCase", ref calcCase)) - { - // pass - } + DA.GetData("calcCase", ref calcCase); bool calcComb = true; - if (!DA.GetData("calcComb", ref calcComb)) - { - // pass - } + DA.GetData("calcComb", ref calcComb); bool calcCstage = false; - if (!DA.GetData("calcCstage", ref calcCstage)) - { - // pass - } + DA.GetData("calcCstage", ref calcCstage); bool calcImpf = false; - if (!DA.GetData("calcImpf", ref calcImpf)) - { - // pass - } - + DA.GetData("calcImpf", ref calcImpf); bool calcGMax = false; - if (!DA.GetData("calcGmax", ref calcGMax)) - { - // pass - } + DA.GetData("calcGmax", ref calcGMax); bool calcStab = false; - if (!DA.GetData("calcStab", ref calcStab)) - { - // pass - } + DA.GetData("calcStab", ref calcStab); bool calcFreq = false; - if (!DA.GetData("calcFreq", ref calcFreq)) - { - // pass - } + DA.GetData("calcFreq", ref calcFreq); bool calcSeis = false; // not implemented - if (!DA.GetData("calcSeis", ref calcSeis)) - { - // pass - } + DA.GetData("calcSeis", ref calcSeis); bool calcFootfall = false; - if (!DA.GetData("calcFootfall", ref calcFootfall)) - { - // pass - } + DA.GetData("calcFootfall", ref calcFootfall); bool calcBedding = false; - if (!DA.GetData("calcBedding", ref calcBedding)) - { - // pass - } + DA.GetData("calcBedding", ref calcBedding); bool calcGroundAcc = false; - if (!DA.GetData("calcGroundAcc", ref calcGroundAcc)) - { - // pass - } + DA.GetData("calcGroundAcc", ref calcGroundAcc); bool calcExForce = false; - if (!DA.GetData("calcExForce", ref calcExForce)) - { - // pass - } + DA.GetData("calcExForce", ref calcExForce); bool calcPeriodicEx = false; - if (!DA.GetData("calcPeriodicEx", ref calcPeriodicEx)) - { - // pass - } + DA.GetData("calcPeriodicEx", ref calcPeriodicEx); bool calcDesign = true; - if (!DA.GetData("calcDesign", ref calcDesign)) - { - // pass - } + DA.GetData("calcDesign", ref calcDesign); bool elemFine = true; - if (!DA.GetData("elemfine", ref elemFine)) - { - // pass - } + DA.GetData("elemfine", ref elemFine); - int diaphragm = 0; - if (!DA.GetData("diaphragm", ref diaphragm)) - { - // pass - } + int _diaphragm = 0; + DA.GetData("diaphragm", ref _diaphragm); bool peakSmoothing = false; - if (!DA.GetData("peakSmoothing", ref peakSmoothing)) - { - // pass - } - + DA.GetData("peakSmoothing", ref peakSmoothing); + + // check inputs + if (_diaphragm < 0 || _diaphragm > 2) + throw new ArgumentException($"Diaphragm is set to {_diaphragm}. Value must be '0'= None , '1'= Rigid membrane or '2'= Fully rigid.\n" + + $"To access the available options, connect `ValueList`."); + + FemDesign.Calculate.DiaphragmType diaphragm = (FemDesign.Calculate.DiaphragmType)_diaphragm; // Create Analysis FemDesign.Calculate.Analysis obj = new FemDesign.Calculate.Analysis(stage: stage, stability: _stability.DeepClone(), imperfection: _imperfection.DeepClone(), comb: _comb.DeepClone(), freq: _freq.DeepClone(), footfall: _footfall.DeepClone(), bedding: _bedding.DeepClone(), groundAcc: _groundAcc.DeepClone(), exForce: _exForce.DeepClone(), periodicEx: _periodicExcitation.DeepClone(), calcCase: calcCase, calcCStage: calcCstage, calcImpf: calcImpf, calcComb: calcComb, calcGMax: calcGMax, calcStab: calcStab, calcFreq: calcFreq, calcSeis: calcSeis, calcFootfall: calcFootfall, calcBedding: calcBedding, calcGroundAcc: calcGroundAcc, calcExForce: calcExForce, calcPeriodicEx: calcPeriodicEx, calcDesign: calcDesign, elemFine: elemFine, diaphragm: diaphragm, peakSmoothing: peakSmoothing); From 2c159098b4d5d5a9d577ee6b90f707a4444d3789 Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Tue, 9 Dec 2025 09:48:26 +0100 Subject: [PATCH 35/54] =?UTF-8?q?=E2=9C=A8=20LoadCaseType.Ordinary=20added?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #1165 --- .../Loads/Load cases/LoadCaseTypeEnum.cs | 18 ++++++++++++++---- .../C#/Example - Dynamic Loads/Program.cs | 2 +- .../C#/Example 1 - Simple beam/Program.cs | 2 +- .../C#/Example 2 - Simple slab/Program.cs | 2 +- .../Example10 - ConstructionStages/Program.cs | 4 ++-- .../Program.cs | 2 +- .../Practical example - Load groups/Program.cs | 4 ++-- .../Loads/Load cases/LoadCaseConstruct.cs | 4 +++- FemDesign.Tests/Loads/LoadCaseTests.cs | 4 ++-- FemDesign.Tests/Loads/LoadCombinationTests.cs | 2 +- 10 files changed, 28 insertions(+), 16 deletions(-) diff --git a/FemDesign.Core/Loads/Load cases/LoadCaseTypeEnum.cs b/FemDesign.Core/Loads/Load cases/LoadCaseTypeEnum.cs index 9889b68f4..524000b89 100644 --- a/FemDesign.Core/Loads/Load cases/LoadCaseTypeEnum.cs +++ b/FemDesign.Core/Loads/Load cases/LoadCaseTypeEnum.cs @@ -1,10 +1,11 @@ -using System; +using FemDesign.GenericClasses; +using System; using System.Collections.Generic; +using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Serialization; -using FemDesign.GenericClasses; namespace FemDesign.Loads { @@ -16,10 +17,19 @@ public enum LoadCaseType /// /// "Ordinary" load type /// + [Obsolete("Use Ordinary instead. Will be removed in the next version.")] + [EditorBrowsable(EditorBrowsableState.Never)] [Parseable("Ordinary", "ordinary", "ORDINARY", "static", "Static", "STATIC")] [XmlEnum("static")] Static, + /// + /// "Ordinary" load type + /// + [Parseable("Ordinary", "ordinary", "ORDINARY")] + [XmlEnum("static")] + Ordinary, + /// /// "Struc. dead load" load type /// @@ -37,14 +47,14 @@ public enum LoadCaseType /// /// "Shrinkage" load type /// - [Parseable("shrinkage", "Shrinkage", "SHRINKAGE")] + [Parseable("+Shrinkage", "shrinkage", "Shrinkage", "SHRINKAGE")] [XmlEnum("shrinkage")] Shrinkage, /// /// "Camber sim." load type /// - [Parseable("+Shrinkage", "prestressing", "Prestressing", "PRESTRESSING", "camber_sim", "Camber_sim", "CAMBER_SIM")] + [Parseable("+Camber sim.", "prestressing", "Prestressing", "PRESTRESSING", "camber_sim", "Camber_sim", "CAMBER_SIM")] [XmlEnum("prestressing")] Prestressing, diff --git a/FemDesign.Examples/C#/Example - Dynamic Loads/Program.cs b/FemDesign.Examples/C#/Example - Dynamic Loads/Program.cs index 647ebfd9d..211807fda 100644 --- a/FemDesign.Examples/C#/Example - Dynamic Loads/Program.cs +++ b/FemDesign.Examples/C#/Example - Dynamic Loads/Program.cs @@ -47,7 +47,7 @@ static void Main() // create load cases var dl = new LoadCase("DL", LoadCaseType.DeadLoad, LoadCaseDuration.Permanent); - var ll = new LoadCase("LL", LoadCaseType.Static, LoadCaseDuration.Permanent); + var ll = new LoadCase("LL", LoadCaseType.Ordinary, LoadCaseDuration.Permanent); model.AddLoadCases(dl, ll); diff --git a/FemDesign.Examples/C#/Example 1 - Simple beam/Program.cs b/FemDesign.Examples/C#/Example 1 - Simple beam/Program.cs index 342299fa2..b25df0ae5 100644 --- a/FemDesign.Examples/C#/Example 1 - Simple beam/Program.cs +++ b/FemDesign.Examples/C#/Example 1 - Simple beam/Program.cs @@ -59,7 +59,7 @@ static void Main() // Create load cases var deadload = new Loads.LoadCase("Deadload", Loads.LoadCaseType.DeadLoad, Loads.LoadCaseDuration.Permanent); - var liveload = new Loads.LoadCase("Liveload", Loads.LoadCaseType.Static, Loads.LoadCaseDuration.Permanent); + var liveload = new Loads.LoadCase("Liveload", Loads.LoadCaseType.Ordinary, Loads.LoadCaseDuration.Permanent); var loadcases = new List() { deadload, liveload }; diff --git a/FemDesign.Examples/C#/Example 2 - Simple slab/Program.cs b/FemDesign.Examples/C#/Example 2 - Simple slab/Program.cs index e08385d01..1864fd98a 100644 --- a/FemDesign.Examples/C#/Example 2 - Simple slab/Program.cs +++ b/FemDesign.Examples/C#/Example 2 - Simple slab/Program.cs @@ -47,7 +47,7 @@ static void Main() // Define load cases var loadCaseDL = new LoadCase("DL", LoadCaseType.DeadLoad, LoadCaseDuration.Permanent); - var loadCaseLL = new LoadCase("LL", LoadCaseType.Static, LoadCaseDuration.Permanent); + var loadCaseLL = new LoadCase("LL", LoadCaseType.Ordinary, LoadCaseDuration.Permanent); var loadCases = new List { loadCaseDL, loadCaseLL }; // Define load combination diff --git a/FemDesign.Examples/C#/Example10 - ConstructionStages/Program.cs b/FemDesign.Examples/C#/Example10 - ConstructionStages/Program.cs index 0e21521ec..e664e584e 100644 --- a/FemDesign.Examples/C#/Example10 - ConstructionStages/Program.cs +++ b/FemDesign.Examples/C#/Example10 - ConstructionStages/Program.cs @@ -87,8 +87,8 @@ static void Main(string[] args) // Create Load Cases var deadLoadCase = new Loads.LoadCase("DL", Loads.LoadCaseType.DeadLoad, Loads.LoadCaseDuration.Permanent); - var windCase = new Loads.LoadCase("WIND", Loads.LoadCaseType.Static, Loads.LoadCaseDuration.Permanent); - var imposedCase = new Loads.LoadCase("IMPOSED", Loads.LoadCaseType.Static, Loads.LoadCaseDuration.Permanent); + var windCase = new Loads.LoadCase("WIND", Loads.LoadCaseType.Ordinary, Loads.LoadCaseDuration.Permanent); + var imposedCase = new Loads.LoadCase("IMPOSED", Loads.LoadCaseType.Ordinary, Loads.LoadCaseDuration.Permanent); var loadcases = new List() { deadLoadCase, windCase, imposedCase }; // Create loads diff --git a/FemDesign.Examples/C#/Practical example - Connection forces to Load/Program.cs b/FemDesign.Examples/C#/Practical example - Connection forces to Load/Program.cs index 657543ce9..ace046245 100644 --- a/FemDesign.Examples/C#/Practical example - Connection forces to Load/Program.cs +++ b/FemDesign.Examples/C#/Practical example - Connection forces to Load/Program.cs @@ -40,7 +40,7 @@ static void Main(string[] args) var caseCombs = new List(); foreach(var caseComb in loadCaseComb) { - var loadCase = new LoadCase(caseComb, LoadCaseType.Static, LoadCaseDuration.Permanent); + var loadCase = new LoadCase(caseComb, LoadCaseType.Ordinary, LoadCaseDuration.Permanent); caseCombs.Add(loadCase); } var combDictionary = caseCombs.ToDictionary(x => x.Name); diff --git a/FemDesign.Examples/C#/Practical example - Load groups/Program.cs b/FemDesign.Examples/C#/Practical example - Load groups/Program.cs index f78ca390f..dfe25267a 100644 --- a/FemDesign.Examples/C#/Practical example - Load groups/Program.cs +++ b/FemDesign.Examples/C#/Practical example - Load groups/Program.cs @@ -23,8 +23,8 @@ static void Main() // CREATING LOAD CASES LoadCase deadLoad1 = new LoadCase("Deadload1", LoadCaseType.DeadLoad, LoadCaseDuration.Permanent); LoadCase deadLoad2 = new LoadCase("Deadload2", LoadCaseType.DeadLoad, LoadCaseDuration.Permanent); - LoadCase liveLoad1 = new LoadCase("Liveload1", LoadCaseType.Static, LoadCaseDuration.Permanent); - LoadCase liveLoad2 = new LoadCase("Liveload2", LoadCaseType.Static, LoadCaseDuration.Permanent); + LoadCase liveLoad1 = new LoadCase("Liveload1", LoadCaseType.Ordinary, LoadCaseDuration.Permanent); + LoadCase liveLoad2 = new LoadCase("Liveload2", LoadCaseType.Ordinary, LoadCaseDuration.Permanent); List loadCasesDeadLoads = new List() { deadLoad1, deadLoad2 }; List loadCaseLiveLoads = new List() { liveLoad1, liveLoad2 }; diff --git a/FemDesign.Grasshopper/Loads/Load cases/LoadCaseConstruct.cs b/FemDesign.Grasshopper/Loads/Load cases/LoadCaseConstruct.cs index 3afadbccb..9de3b37cd 100644 --- a/FemDesign.Grasshopper/Loads/Load cases/LoadCaseConstruct.cs +++ b/FemDesign.Grasshopper/Loads/Load cases/LoadCaseConstruct.cs @@ -67,7 +67,9 @@ public override Guid ComponentGuid protected override void BeforeSolveInstance() { - ValueListUtils.UpdateValueLists(this, 1, Enum.GetNames(typeof(LoadCaseType)).ToList(), null, GH_ValueListMode.DropDown); + var lcTypes = Enum.GetNames(typeof(LoadCaseType)).ToList(); + lcTypes = lcTypes.Where(t => t != LoadCaseType.Static.ToString()).ToList(); + ValueListUtils.UpdateValueLists(this, 1, lcTypes, null, GH_ValueListMode.DropDown); ValueListUtils.UpdateValueLists(this, 2, Enum.GetNames(typeof(LoadCaseDuration)).ToList(), null, GH_ValueListMode.DropDown); diff --git a/FemDesign.Tests/Loads/LoadCaseTests.cs b/FemDesign.Tests/Loads/LoadCaseTests.cs index 1f89d307d..20b0787b0 100644 --- a/FemDesign.Tests/Loads/LoadCaseTests.cs +++ b/FemDesign.Tests/Loads/LoadCaseTests.cs @@ -39,11 +39,11 @@ public void LoadCaseName() foreach (var text in raiseErrorText) - Assert.ThrowsException(() => new LoadCase(text, LoadCaseType.Static, LoadCaseDuration.Permanent)); + Assert.ThrowsException(() => new LoadCase(text, LoadCaseType.Ordinary, LoadCaseDuration.Permanent)); foreach (var text in validText) - new LoadCase(text, LoadCaseType.Static, LoadCaseDuration.Permanent); + new LoadCase(text, LoadCaseType.Ordinary, LoadCaseDuration.Permanent); } } diff --git a/FemDesign.Tests/Loads/LoadCombinationTests.cs b/FemDesign.Tests/Loads/LoadCombinationTests.cs index cfb7e722e..261fee10d 100644 --- a/FemDesign.Tests/Loads/LoadCombinationTests.cs +++ b/FemDesign.Tests/Loads/LoadCombinationTests.cs @@ -125,7 +125,7 @@ public void LoadCombinationTest3() [TestMethod("Combination Name")] public void LoadCombinationName() { - var loadCase = new LoadCase("loadcase", LoadCaseType.Static, LoadCaseDuration.Permanent); + var loadCase = new LoadCase("loadcase", LoadCaseType.Ordinary, LoadCaseDuration.Permanent); var raiseErrorText = new List { From 425e1dacd0632fcf7fdefbd349ce5a658947cb3b Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Tue, 9 Dec 2025 09:57:09 +0100 Subject: [PATCH 36/54] :bug: fix failing tests --- .../Program.cs | 2 +- FemDesign.Tests/Calculate/Stability.cs | 4 ++-- FemDesign.Tests/Results/Utils/Read.cs | 5 +++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/FemDesign.Examples/C#/Practical example - Parametric study - Reactions/Program.cs b/FemDesign.Examples/C#/Practical example - Parametric study - Reactions/Program.cs index 8a1f0e80f..db8da3514 100644 --- a/FemDesign.Examples/C#/Practical example - Parametric study - Reactions/Program.cs +++ b/FemDesign.Examples/C#/Practical example - Parametric study - Reactions/Program.cs @@ -34,7 +34,7 @@ static void Main() double Ecm = double.Parse(material.Concrete.Ecm); // ITERATION & ANALYSIS PROCESS - Analysis analysis = new Analysis(calcCase: true); + Analysis analysis = new Analysis(calcCase: true, diaphragm: DiaphragmType.None); using (var femDesign = new FemDesignConnection(minimized: true)) for (int i = 1; i < 6; i++) diff --git a/FemDesign.Tests/Calculate/Stability.cs b/FemDesign.Tests/Calculate/Stability.cs index 5eb2be58d..8ef520eb8 100644 --- a/FemDesign.Tests/Calculate/Stability.cs +++ b/FemDesign.Tests/Calculate/Stability.cs @@ -74,7 +74,7 @@ private static FemDesign.Calculate.Stability Stability_2() [TestMethod("Stability_2")] public void TestMethod2() { - var stability = new Analysis(stability: Stability_2(), calcStab: true); + var stability = new Analysis(stability: Stability_2(), calcStab: true, diaphragm: DiaphragmType.None); var loadCombination = GetLoadCombinationsTests(); stability._setStabilityAnalysis(loadCombination.Values.ToList()); @@ -103,7 +103,7 @@ public void TestMethod2() [TestMethod("Stability_1")] public void TestMethod1() { - var stability = new Analysis(stability: Stability_1(), calcStab: true); + var stability = new Analysis(stability: Stability_1(), calcStab: true, diaphragm: DiaphragmType.None); //stability.Comb.CombItem.Clear(); var loadCombination = GetLoadCombinationsTests(); diff --git a/FemDesign.Tests/Results/Utils/Read.cs b/FemDesign.Tests/Results/Utils/Read.cs index c3a44d19c..ace5977ce 100644 --- a/FemDesign.Tests/Results/Utils/Read.cs +++ b/FemDesign.Tests/Results/Utils/Read.cs @@ -1,4 +1,5 @@ -using FemDesign.Sections; +using FemDesign.Calculate; +using FemDesign.Sections; using Microsoft.VisualStudio.TestTools.UnitTesting; using System; using System.Collections.Generic; @@ -138,7 +139,7 @@ public void TestGetStabilityResults() Model model = Model.DeserializeFromFilePath(struxmlPath); var stability = new Calculate.Stability(new List { "LC2ULS" }, new List { 10 }, false, 5); - FemDesign.Calculate.Analysis analysis = new FemDesign.Calculate.Analysis(stability: stability, calcComb: true, calcStab: true); + FemDesign.Calculate.Analysis analysis = new FemDesign.Calculate.Analysis(stability: stability, calcComb: true, calcStab: true, diaphragm: DiaphragmType.None); using (var femDesign = new FemDesignConnection(fdInstallationDir: @"C:\Program Files\StruSoft\FEM-Design 24\", outputDir: "My analyzed model", keepOpen: false)) From c0c9356cea7665997bfa79106584d271875f4acd Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Tue, 9 Dec 2025 11:54:15 +0100 Subject: [PATCH 37/54] :bug: fix failing build --- .../C#/Example 3 - Analyse struxml/Program.cs | 3 ++- .../C#/Practical example - Run analysis/Program.cs | 12 ++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/FemDesign.Examples/C#/Example 3 - Analyse struxml/Program.cs b/FemDesign.Examples/C#/Example 3 - Analyse struxml/Program.cs index 2f5c539a6..d77ba6576 100644 --- a/FemDesign.Examples/C#/Example 3 - Analyse struxml/Program.cs +++ b/FemDesign.Examples/C#/Example 3 - Analyse struxml/Program.cs @@ -29,7 +29,8 @@ static void Main(string[] args) // CHOOSING WHAT ANALYSIS TO RUN FemDesign.Calculate.Analysis analysis = new FemDesign.Calculate.Analysis( calcCase: true, - calcComb: true + calcComb: true, + diaphragm: DiaphragmType.None ); diff --git a/FemDesign.Examples/C#/Practical example - Run analysis/Program.cs b/FemDesign.Examples/C#/Practical example - Run analysis/Program.cs index a8a821b81..b420a9bbb 100644 --- a/FemDesign.Examples/C#/Practical example - Run analysis/Program.cs +++ b/FemDesign.Examples/C#/Practical example - Run analysis/Program.cs @@ -241,26 +241,26 @@ static void Main() { connection.Open(filePath); - analysis = new Analysis(comb: comb, calcCase: true, calcComb: true); + analysis = new Analysis(comb: comb, calcCase: true, calcComb: true, diaphragm: DiaphragmType.None); connection.RunAnalysis(analysis); - analysis = new Analysis(comb: combWithName, calcCase: true, calcComb: true); + analysis = new Analysis(comb: combWithName, calcCase: true, calcComb: true, diaphragm: DiaphragmType.None); connection.RunAnalysis(analysis); - analysis = new Analysis(comb: noComb, calcCase: true, calcComb: true); + analysis = new Analysis(comb: noComb, calcCase: true, calcComb: true, diaphragm: DiaphragmType.None); connection.RunAnalysis(analysis); - analysis = new Analysis(comb: combDefault, calcCase: true, calcComb: true); + analysis = new Analysis(comb: combDefault, calcCase: true, calcComb: true, diaphragm: DiaphragmType.None); connection.RunAnalysis(analysis); - analysis = new Analysis(freq: freqSettings, calcFreq: true); + analysis = new Analysis(freq: freqSettings, calcFreq: true, diaphragm: DiaphragmType.None); connection.RunAnalysis(analysis); //analysis = new Analysis(stability: stabilitySettings, calcStab: true); //connection.RunAnalysis(analysis); - analysis = new Analysis(imperfection: imperfectionSettings, calcImpf: true); + analysis = new Analysis(imperfection: imperfectionSettings, calcImpf: true, diaphragm: DiaphragmType.None); connection.RunAnalysis(analysis); } } From ac0ae4c3bf0ac95c5ea18a97c90eea14603a0248 Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Tue, 9 Dec 2025 12:14:48 +0100 Subject: [PATCH 38/54] Update MainWindow.xaml.cs --- .../MainWindow.xaml.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FemDesign.Examples/C#/Practical example - Windows Presentation Foundation (WPF)/MainWindow.xaml.cs b/FemDesign.Examples/C#/Practical example - Windows Presentation Foundation (WPF)/MainWindow.xaml.cs index 4e76c21ba..dd3bf68c5 100644 --- a/FemDesign.Examples/C#/Practical example - Windows Presentation Foundation (WPF)/MainWindow.xaml.cs +++ b/FemDesign.Examples/C#/Practical example - Windows Presentation Foundation (WPF)/MainWindow.xaml.cs @@ -74,7 +74,7 @@ await Task.Factory.StartNew(() => } connection.Open(model); - var analysis = new Analysis(comb: Comb, calcCase: true, calcComb: true); + var analysis = new Analysis(comb: Comb, calcCase: true, calcComb: true, diaphragm: DiaphragmType.None); connection.RunAnalysis(analysis); var quantities = connection.GetQuantities(); @@ -101,7 +101,7 @@ await Task.Factory.StartNew(() => // slab.UpdateThickness(i * thickness / 1000); // } // connection.Open(model); - // var analysis = new Analysis(comb: Comb, calcCase: true, calcComb: true); + // var analysis = new Analysis(comb: Comb, calcCase: true, calcComb: true, diaphragm: DiaphragmType.None); // connection.RunAnalysis(analysis); // var quantities = connection.GetQuantities(); From 4ec7212cd06207866ba7c337c9664c6aff0b0c8d Mon Sep 17 00:00:00 2001 From: MP Date: Tue, 9 Dec 2025 12:51:26 +0100 Subject: [PATCH 39/54] Update FemDesignConnectionComponent.cs #1186 --- FemDesign.Grasshopper/Pipe/FemDesignConnectionComponent.cs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/FemDesign.Grasshopper/Pipe/FemDesignConnectionComponent.cs b/FemDesign.Grasshopper/Pipe/FemDesignConnectionComponent.cs index 9ef4f0fce..318707df3 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignConnectionComponent.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignConnectionComponent.cs @@ -74,10 +74,8 @@ protected override void SolveInstance(IGH_DataAccess DA) System.IO.Directory.SetCurrentDirectory(currentDir); } - if (_handle == Guid.Empty) - { - _handle = FemDesignConnectionHub.Create(fdDir, minimized, outputDir, deleteOutput); - } + CloseConnection(); + _handle = FemDesignConnectionHub.Create(fdDir, minimized, outputDir, deleteOutput); // Emit a handle object to wire downstream DA.SetData("Connection", new FemDesign.Grasshopper.FemDesignHubHandle(_handle)); From 4e2414f8b5e24d6e2124614213772f9c4ac61f64 Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Mon, 15 Dec 2025 07:53:08 +0100 Subject: [PATCH 40/54] :bug: fix parse issue --- FemDesign.Core/Loads/Load cases/LoadCaseTypeEnum.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/FemDesign.Core/Loads/Load cases/LoadCaseTypeEnum.cs b/FemDesign.Core/Loads/Load cases/LoadCaseTypeEnum.cs index 524000b89..47a4df97b 100644 --- a/FemDesign.Core/Loads/Load cases/LoadCaseTypeEnum.cs +++ b/FemDesign.Core/Loads/Load cases/LoadCaseTypeEnum.cs @@ -19,14 +19,13 @@ public enum LoadCaseType /// [Obsolete("Use Ordinary instead. Will be removed in the next version.")] [EditorBrowsable(EditorBrowsableState.Never)] - [Parseable("Ordinary", "ordinary", "ORDINARY", "static", "Static", "STATIC")] [XmlEnum("static")] Static, /// /// "Ordinary" load type /// - [Parseable("Ordinary", "ordinary", "ORDINARY")] + [Parseable("Ordinary", "ordinary", "ORDINARY", "static", "Static", "STATIC")] [XmlEnum("static")] Ordinary, From 859b9fb2cd58cc894a6dc80ac301ec9895e94952 Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Mon, 15 Dec 2025 08:13:31 +0100 Subject: [PATCH 41/54] LoadMainMenu template from Sx is added --- .../FemDesign.Grasshopper.csproj | 1 + FemDesign.Grasshopper/UI/LoadMainMenu.cs | 160 ++++++++++++++++++ 2 files changed, 161 insertions(+) create mode 100644 FemDesign.Grasshopper/UI/LoadMainMenu.cs diff --git a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj index ce27dd04e..e4fdd32a6 100644 --- a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj +++ b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj @@ -500,6 +500,7 @@ + diff --git a/FemDesign.Grasshopper/UI/LoadMainMenu.cs b/FemDesign.Grasshopper/UI/LoadMainMenu.cs new file mode 100644 index 000000000..3c693f3a0 --- /dev/null +++ b/FemDesign.Grasshopper/UI/LoadMainMenu.cs @@ -0,0 +1,160 @@ +using GH_IO.Serialization; +using Grasshopper.GUI; +using Grasshopper.GUI.Canvas; +using Grasshopper.Kernel; + +using System; +using System.Diagnostics; +using System.Reflection; +using System.Threading; +using System.Windows.Forms; + +namespace FemDesign.Grasshopper.UI +{ + public class MenuLoad + { + private static ToolStripMenuItem simplexMenu; + + internal static void OnStartup(GH_Canvas canvas) + { + simplexMenu = new ToolStripMenuItem("Simplex") + { + Name = "Simplex", + }; + + PopulateSub(simplexMenu); + + GH_DocumentEditor editor = null; + + while (editor == null) + { + editor = Grasshopper.Instances.DocumentEditor; + Thread.Sleep(321); + } + + if (!editor.MainMenuStrip.Items.ContainsKey("Simplex")) + { + editor.MainMenuStrip.Items.Add(simplexMenu); + } + else + { + simplexMenu = (ToolStripMenuItem)editor.MainMenuStrip.Items["Simplex"]; + lock (simplexMenu) + { + simplexMenu.DropDown.Items.Add(new ToolStripSeparator()); + PopulateSub(simplexMenu); + } + } + + Grasshopper.Instances.CanvasCreated -= OnStartup; + } + + private static void PopulateSub(ToolStripMenuItem menuItem) + { + // Add Login + menuItem.DropDown.Items.Add( + "Login", + SimplexGh.Properties.Resources.SimplexIconBlue, + OpenForm); + + menuItem.DropDown.Items.Add(new ToolStripSeparator()); + //---------------------------------------------------- + + // Add Documentation + menuItem.DropDown.Items.Add("Documentation", SimplexGh.Properties.Resources.SimplexIconBlue, + (sender, e) => OpenBrowser(sender, e, "https://simplex-docs.onstrusoft.com/api/grasshopper/get-started")); + + // Add Examples (submenu) + var exampleSubMenu = new ToolStripMenuItem("&Examples"); + + var templateItem = new ToolStripMenuItem( + "&Simplex Foundation template", + SimplexGh.Properties.Resources.SimplexIconBlue, + (sender, e) => OpenExample(sender, e, "SimplexFoundationTemplate", null) + ); + templateItem.ShortcutKeys = Keys.Control | Keys.Shift | Keys.T; + templateItem.ShowShortcutKeys = true; + exampleSubMenu.DropDown.Items.Add(templateItem); + + exampleSubMenu.DropDown.Items.Add( + "Excel & Simplex connection", + SimplexGh.Properties.Resources.SimplexIconBlue, + (sender, e) => OpenExample(sender, e, "ExcelSxConnectionExample", "ExcelSxConnectionExample") + ); + + exampleSubMenu.DropDown.Items.Add( + "FEM-Design & Simplex connection", + SimplexGh.Properties.Resources.SimplexIconBlue, + (sender, e) => OpenExample(sender, e, "FDSxConnectionExample", "FDSxConnectionExample") + ); + + menuItem.DropDown.Items.Add(exampleSubMenu); + + menuItem.DropDown.Items.Add(new ToolStripSeparator()); + //---------------------------------------------------- + + // Add Help + menuItem.DropDown.Items.Add( + "Help", + SimplexGh.Properties.Resources.SimplexIconBlue, + (sender, e) => OpenBrowser(sender, e, "https://strusoft.freshdesk.com/en/support/tickets/new") + ); + } + + // event handler that opens up a sub-window + private static void OpenForm(object sender, System.EventArgs e) + { + new Form1().ShowDialog(); + } + + // event handler that opens up a browser window + private static void OpenBrowser(object sender, System.EventArgs e, string url) + { + Process.Start(new ProcessStartInfo { FileName = url, UseShellExecute = true }); + } + + // event handler that opens up a Grasshopper example document + private static void OpenExample(object sender, EventArgs e, string fileName, string exampleFolder) + { + string assemblyPath = Assembly.GetExecutingAssembly().Location; + string folderAssembly = System.IO.Path.GetDirectoryName(assemblyPath); + string examplesDir = exampleFolder is null + ? System.IO.Path.Combine(folderAssembly, "Files", "Examples") + : System.IO.Path.Combine(folderAssembly, "Files", "Examples", exampleFolder); + + // Make this folder discoverable to GH + Grasshopper.Instances.Settings.SetValue("SIMPLEX_BASEDIR", examplesDir); + Rhino.RhinoDoc.ActiveDoc?.Strings.SetString("SIMPLEX_BASEDIR", examplesDir); + + fileName = fileName + ".gh"; + string exampleFile = System.IO.Path.Combine(examplesDir, fileName); + + PasteGrasshopperFile(exampleFile); + } + + private static void PasteGrasshopperFile(string filePath) + { + GH_Document currentDoc = Grasshopper.Instances.ActiveCanvas.Document; + if (currentDoc == null) + { + MessageBox.Show("No active Grasshopper document found.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + GH_Archive archive = new GH_Archive(); + archive.ReadFromFile(filePath); + + GH_Document newDoc = new GH_Document(); + if (archive.ExtractObject(newDoc, "Definition")) + { + currentDoc.MergeDocument(newDoc); + Grasshopper.Instances.ActiveCanvas.Refresh(); + Grasshopper.Instances.ActiveCanvas.Update(); + } + else + { + MessageBox.Show("Failed to extract the Grasshopper document from the archive.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } +} \ No newline at end of file From c7e194b2119e1dd4e38576af3f3d238f95e2066e Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Mon, 15 Dec 2025 08:47:31 +0100 Subject: [PATCH 42/54] remove sx content and add fd content --- FemDesign.Grasshopper/UI/LoadMainMenu.cs | 90 ++++++++---------------- 1 file changed, 31 insertions(+), 59 deletions(-) diff --git a/FemDesign.Grasshopper/UI/LoadMainMenu.cs b/FemDesign.Grasshopper/UI/LoadMainMenu.cs index 3c693f3a0..472e1f94c 100644 --- a/FemDesign.Grasshopper/UI/LoadMainMenu.cs +++ b/FemDesign.Grasshopper/UI/LoadMainMenu.cs @@ -1,4 +1,5 @@ using GH_IO.Serialization; +using Grasshopper; using Grasshopper.GUI; using Grasshopper.GUI.Canvas; using Grasshopper.Kernel; @@ -13,16 +14,21 @@ namespace FemDesign.Grasshopper.UI { public class MenuLoad { - private static ToolStripMenuItem simplexMenu; + private static string documentationUrl = "https://femdesign-api-docs.onstrusoft.com"; + private static string supportUrl = "https://strusoft.freshdesk.com"; + private static string communityUrl = "https://femdesign.discourse.group/"; + private static string gitHubUrl = "https://github.com/strusoft/femdesign-api"; + + private static ToolStripMenuItem fdMenu; internal static void OnStartup(GH_Canvas canvas) { - simplexMenu = new ToolStripMenuItem("Simplex") + fdMenu = new ToolStripMenuItem("FEM-Design") { - Name = "Simplex", + Name = "FEM-Design", }; - PopulateSub(simplexMenu); + PopulateSub(fdMenu); GH_DocumentEditor editor = null; @@ -32,17 +38,17 @@ internal static void OnStartup(GH_Canvas canvas) Thread.Sleep(321); } - if (!editor.MainMenuStrip.Items.ContainsKey("Simplex")) + if (!editor.MainMenuStrip.Items.ContainsKey("FEM-Design")) { - editor.MainMenuStrip.Items.Add(simplexMenu); + editor.MainMenuStrip.Items.Add(fdMenu); } else { - simplexMenu = (ToolStripMenuItem)editor.MainMenuStrip.Items["Simplex"]; - lock (simplexMenu) + fdMenu = (ToolStripMenuItem)editor.MainMenuStrip.Items["FEM-Design"]; + lock (fdMenu) { - simplexMenu.DropDown.Items.Add(new ToolStripSeparator()); - PopulateSub(simplexMenu); + fdMenu.DropDown.Items.Add(new ToolStripSeparator()); + PopulateSub(fdMenu); } } @@ -51,60 +57,26 @@ internal static void OnStartup(GH_Canvas canvas) private static void PopulateSub(ToolStripMenuItem menuItem) { - // Add Login + menuItem.DropDown.Items.Add("Documentation", Properties.Resources.FEM_Connection, + (sender, e) => OpenBrowser(sender, e, documentationUrl)); + menuItem.DropDown.Items.Add( - "Login", - SimplexGh.Properties.Resources.SimplexIconBlue, - OpenForm); - - menuItem.DropDown.Items.Add(new ToolStripSeparator()); - //---------------------------------------------------- - - // Add Documentation - menuItem.DropDown.Items.Add("Documentation", SimplexGh.Properties.Resources.SimplexIconBlue, - (sender, e) => OpenBrowser(sender, e, "https://simplex-docs.onstrusoft.com/api/grasshopper/get-started")); - - // Add Examples (submenu) - var exampleSubMenu = new ToolStripMenuItem("&Examples"); - - var templateItem = new ToolStripMenuItem( - "&Simplex Foundation template", - SimplexGh.Properties.Resources.SimplexIconBlue, - (sender, e) => OpenExample(sender, e, "SimplexFoundationTemplate", null) - ); - templateItem.ShortcutKeys = Keys.Control | Keys.Shift | Keys.T; - templateItem.ShowShortcutKeys = true; - exampleSubMenu.DropDown.Items.Add(templateItem); - - exampleSubMenu.DropDown.Items.Add( - "Excel & Simplex connection", - SimplexGh.Properties.Resources.SimplexIconBlue, - (sender, e) => OpenExample(sender, e, "ExcelSxConnectionExample", "ExcelSxConnectionExample") - ); - - exampleSubMenu.DropDown.Items.Add( - "FEM-Design & Simplex connection", - SimplexGh.Properties.Resources.SimplexIconBlue, - (sender, e) => OpenExample(sender, e, "FDSxConnectionExample", "FDSxConnectionExample") - ); - - menuItem.DropDown.Items.Add(exampleSubMenu); - - menuItem.DropDown.Items.Add(new ToolStripSeparator()); - //---------------------------------------------------- - - // Add Help + "Community", Properties.Resources.FEM_Connection, + (sender, e) => OpenBrowser(sender, e, communityUrl)); + + menuItem.DropDown.Items.Add( + "Support", Properties.Resources.FEM_Connection, + (sender, e) => OpenBrowser(sender, e, supportUrl)); + menuItem.DropDown.Items.Add( - "Help", - SimplexGh.Properties.Resources.SimplexIconBlue, - (sender, e) => OpenBrowser(sender, e, "https://strusoft.freshdesk.com/en/support/tickets/new") - ); + "GitHub", Properties.Resources.FEM_Connection, + (sender, e) => OpenBrowser(sender, e, gitHubUrl)); } // event handler that opens up a sub-window private static void OpenForm(object sender, System.EventArgs e) { - new Form1().ShowDialog(); + // write content here... } // event handler that opens up a browser window @@ -123,8 +95,8 @@ private static void OpenExample(object sender, EventArgs e, string fileName, str : System.IO.Path.Combine(folderAssembly, "Files", "Examples", exampleFolder); // Make this folder discoverable to GH - Grasshopper.Instances.Settings.SetValue("SIMPLEX_BASEDIR", examplesDir); - Rhino.RhinoDoc.ActiveDoc?.Strings.SetString("SIMPLEX_BASEDIR", examplesDir); + Grasshopper.Instances.Settings.SetValue("FEMDESIGN_BASEDIR", examplesDir); + Rhino.RhinoDoc.ActiveDoc?.Strings.SetString("FEMDESIGN_BASEDIR", examplesDir); fileName = fileName + ".gh"; string exampleFile = System.IO.Path.Combine(examplesDir, fileName); From 59b13c69b4d790303516fc97c89b2151507de6c3 Mon Sep 17 00:00:00 2001 From: MP Date: Mon, 15 Dec 2025 08:58:19 +0100 Subject: [PATCH 43/54] =?UTF-8?q?=F0=9F=90=9B=20temporary=20fix=20for=20Ba?= =?UTF-8?q?rEndReleaseTypes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🐛 --- FemDesign.Core/Model/Model.cs | 4 ++-- .../Strusoft/Interop/Struxml/Data/FEM-Design 24.00.005.cs | 2 +- FemDesign.Tests/Model/ModelTests.cs | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/FemDesign.Core/Model/Model.cs b/FemDesign.Core/Model/Model.cs index 521e96523..8e574b445 100644 --- a/FemDesign.Core/Model/Model.cs +++ b/FemDesign.Core/Model/Model.cs @@ -105,8 +105,8 @@ public partial class Model [XmlElement("bolt_types", Order = 18)] public List BoltTypes { get; set; } - //[XmlElement("bar_end_lib_type", Order = 19)] - //public List BarEndReleaseTypes { get; set; } + [XmlElement("bar_end_lib_type", Order = 19)] + public List BarEndReleaseTypes { get; set; } [XmlElement("geometry", Order = 20)] public StruSoft.Interop.StruXml.Data.DatabaseGeometry Geometry { get; set; } diff --git a/FemDesign.Core/Strusoft/Interop/Struxml/Data/FEM-Design 24.00.005.cs b/FemDesign.Core/Strusoft/Interop/Struxml/Data/FEM-Design 24.00.005.cs index 470115985..684ecbcfb 100644 --- a/FemDesign.Core/Strusoft/Interop/Struxml/Data/FEM-Design 24.00.005.cs +++ b/FemDesign.Core/Strusoft/Interop/Struxml/Data/FEM-Design 24.00.005.cs @@ -31917,7 +31917,7 @@ public partial class Bar_end_lib_type public System.DateTime Last_change { get; set; } [System.Xml.Serialization.XmlAttributeAttribute("action")] - public Modification_type Action { get; set; } + public StruSoft.Interop.StruXml.Data.Modification_type Action { get; set; } [System.Xml.Serialization.XmlIgnoreAttribute()] private string _hash_order_id = "-1"; diff --git a/FemDesign.Tests/Model/ModelTests.cs b/FemDesign.Tests/Model/ModelTests.cs index ca1aa2d8b..3eae5551d 100644 --- a/FemDesign.Tests/Model/ModelTests.cs +++ b/FemDesign.Tests/Model/ModelTests.cs @@ -163,9 +163,9 @@ public void OpenGlobalModel() [TestMethod("DeepClone")] public void DeepClone() { - string input = @"Model/moving.struxml"; + //string input = @"Model/moving.struxml"; - //string input = "Model/global-test-model_MASTER.struxml"; + string input = @"Model/global-test-model_MASTER.struxml"; Model model = Model.DeserializeFromFilePath(input); var database = Load(input); var clone = model.DeepClone(); From 93958de9b67b51e9e3ec3a9fa903c89500a18a1d Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Mon, 15 Dec 2025 09:22:03 +0100 Subject: [PATCH 44/54] =?UTF-8?q?=F0=9F=94=A5=20=E2=9C=A8=20=20Info=20layo?= =?UTF-8?q?ut=20updated,=20links=20are=20removed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FemDesign.Grasshopper/Info/Info.cs | 78 +++---- FemDesign.Grasshopper/UI/LoadMainMenu.cs | 264 +++++++++++------------ 2 files changed, 167 insertions(+), 175 deletions(-) diff --git a/FemDesign.Grasshopper/Info/Info.cs b/FemDesign.Grasshopper/Info/Info.cs index a2e41cf1b..95065e652 100644 --- a/FemDesign.Grasshopper/Info/Info.cs +++ b/FemDesign.Grasshopper/Info/Info.cs @@ -112,10 +112,10 @@ protected override void Layout() // Compute the width of the NickName of the owner (plus some extra padding), // then make sure we have at least 80 pixels. //int width = GH_FontServer.StringWidth(Owner.NickName, GH_FontServer.Standard); - int width = 300; //Math.Max(width + 10, 80); + int width = 220; //Math.Max(width + 10, 80); // The height of our object is always 60 pixels - int height = 220; + int height = 150; // Assign the width and height to the Bounds property. // Also, make sure the Bounds are anchored to the Pivot @@ -194,26 +194,17 @@ protected override void Render(GH_Canvas canvas, Graphics graphics, GH_CanvasCha graphics.DrawImage(image, textRectangle); textRectangle.Y += 40; - graphics.DrawString($"Current version: {currentVersion}", GH_FontServer.StandardItalic, Brushes.Black, textRectangle, format); + string txt1 = $"Current version: {currentVersion}"; + var font = GH_FontServer.StandardItalic; + var layoutRectangle = textRectangle; + layoutRectangle.X = textRectangle.X + (textRectangle.Width - graphics.MeasureString(txt1, font).Width) / 2; + graphics.DrawString(txt1, font, Brushes.Black, layoutRectangle, format); textRectangle.Y += 20; - graphics.DrawString($"Created with: {creationVersion}", GH_FontServer.StandardItalic, Brushes.Black, textRectangle, format); - - textRectangle.Y += 20; - graphics.DrawString(String.Format("Useful links:"), GH_FontServer.StandardItalic, Brushes.Black, textRectangle, format); - - textRectangle.Y += 20; - link1 = textRectangle; - Font linkFont = new Font(GH_FontServer.StandardItalic, FontStyle.Underline); - graphics.DrawString(String.Format("https://femdesign-api-docs.onstrusoft.com"), linkFont, Brushes.Blue, textRectangle, format); - - textRectangle.Y += 20; - link2 = textRectangle; - graphics.DrawString(String.Format("https://strusoft.freshdesk.com", 5), linkFont, Brushes.Blue, textRectangle, format); - - textRectangle.Y += 20; - link3 = textRectangle; - graphics.DrawString(String.Format("https://github.com/strusoft/femdesign-api"), linkFont, Brushes.Blue, textRectangle, format); + string txt2 = $"Created with: {creationVersion}"; + layoutRectangle = textRectangle; + layoutRectangle.X = textRectangle.X + (textRectangle.Width - graphics.MeasureString(txt2, font).Width) / 2; + graphics.DrawString(txt2, font, Brushes.Black, layoutRectangle, format); // Always dispose of any GDI+ object that implement IDisposable. @@ -221,29 +212,30 @@ protected override void Render(GH_Canvas canvas, Graphics graphics, GH_CanvasCha } } - public override GH.GUI.Canvas.GH_ObjectResponse RespondToMouseUp(GH.GUI.Canvas.GH_Canvas sender, GH.GUI.GH_CanvasMouseEvent e) - { - if (e.Button != System.Windows.Forms.MouseButtons.Left) - return base.RespondToMouseUp(sender, e); - - // Left mouse button up - if (link1.Contains(e.CanvasLocation)) - { - System.Diagnostics.Process.Start("https://femdesign-api-docs.onstrusoft.com"); - return GH.GUI.Canvas.GH_ObjectResponse.Handled; - } - else if (link2.Contains(e.CanvasLocation)) - { - System.Diagnostics.Process.Start("https://strusoft.freshdesk.com"); - return GH.GUI.Canvas.GH_ObjectResponse.Handled; - } - else if (link3.Contains(e.CanvasLocation)) - { - System.Diagnostics.Process.Start("https://github.com/strusoft/femdesign-api"); - return GH.GUI.Canvas.GH_ObjectResponse.Handled; - } - return GH.GUI.Canvas.GH_ObjectResponse.Ignore; - } + // this method can be removed >> + //public override GH.GUI.Canvas.GH_ObjectResponse RespondToMouseUp(GH.GUI.Canvas.GH_Canvas sender, GH.GUI.GH_CanvasMouseEvent e) + //{ + // if (e.Button != System.Windows.Forms.MouseButtons.Left) + // return base.RespondToMouseUp(sender, e); + + // // Left mouse button up + // if (link1.Contains(e.CanvasLocation)) + // { + // System.Diagnostics.Process.Start("https://femdesign-api-docs.onstrusoft.com"); + // return GH.GUI.Canvas.GH_ObjectResponse.Handled; + // } + // else if (link2.Contains(e.CanvasLocation)) + // { + // System.Diagnostics.Process.Start("https://strusoft.freshdesk.com"); + // return GH.GUI.Canvas.GH_ObjectResponse.Handled; + // } + // else if (link3.Contains(e.CanvasLocation)) + // { + // System.Diagnostics.Process.Start("https://github.com/strusoft/femdesign-api"); + // return GH.GUI.Canvas.GH_ObjectResponse.Handled; + // } + // return GH.GUI.Canvas.GH_ObjectResponse.Ignore; + //} } } diff --git a/FemDesign.Grasshopper/UI/LoadMainMenu.cs b/FemDesign.Grasshopper/UI/LoadMainMenu.cs index 472e1f94c..fc69c6c9a 100644 --- a/FemDesign.Grasshopper/UI/LoadMainMenu.cs +++ b/FemDesign.Grasshopper/UI/LoadMainMenu.cs @@ -1,132 +1,132 @@ -using GH_IO.Serialization; -using Grasshopper; -using Grasshopper.GUI; -using Grasshopper.GUI.Canvas; -using Grasshopper.Kernel; - -using System; -using System.Diagnostics; -using System.Reflection; -using System.Threading; -using System.Windows.Forms; - -namespace FemDesign.Grasshopper.UI -{ - public class MenuLoad - { - private static string documentationUrl = "https://femdesign-api-docs.onstrusoft.com"; - private static string supportUrl = "https://strusoft.freshdesk.com"; - private static string communityUrl = "https://femdesign.discourse.group/"; - private static string gitHubUrl = "https://github.com/strusoft/femdesign-api"; - - private static ToolStripMenuItem fdMenu; - - internal static void OnStartup(GH_Canvas canvas) - { - fdMenu = new ToolStripMenuItem("FEM-Design") - { - Name = "FEM-Design", - }; - - PopulateSub(fdMenu); - - GH_DocumentEditor editor = null; - - while (editor == null) - { - editor = Grasshopper.Instances.DocumentEditor; - Thread.Sleep(321); - } - - if (!editor.MainMenuStrip.Items.ContainsKey("FEM-Design")) - { - editor.MainMenuStrip.Items.Add(fdMenu); - } - else - { - fdMenu = (ToolStripMenuItem)editor.MainMenuStrip.Items["FEM-Design"]; - lock (fdMenu) - { - fdMenu.DropDown.Items.Add(new ToolStripSeparator()); - PopulateSub(fdMenu); - } - } - - Grasshopper.Instances.CanvasCreated -= OnStartup; - } - - private static void PopulateSub(ToolStripMenuItem menuItem) - { - menuItem.DropDown.Items.Add("Documentation", Properties.Resources.FEM_Connection, - (sender, e) => OpenBrowser(sender, e, documentationUrl)); - - menuItem.DropDown.Items.Add( - "Community", Properties.Resources.FEM_Connection, - (sender, e) => OpenBrowser(sender, e, communityUrl)); - - menuItem.DropDown.Items.Add( - "Support", Properties.Resources.FEM_Connection, - (sender, e) => OpenBrowser(sender, e, supportUrl)); - - menuItem.DropDown.Items.Add( - "GitHub", Properties.Resources.FEM_Connection, - (sender, e) => OpenBrowser(sender, e, gitHubUrl)); - } - - // event handler that opens up a sub-window - private static void OpenForm(object sender, System.EventArgs e) - { - // write content here... - } - - // event handler that opens up a browser window - private static void OpenBrowser(object sender, System.EventArgs e, string url) - { - Process.Start(new ProcessStartInfo { FileName = url, UseShellExecute = true }); - } - - // event handler that opens up a Grasshopper example document - private static void OpenExample(object sender, EventArgs e, string fileName, string exampleFolder) - { - string assemblyPath = Assembly.GetExecutingAssembly().Location; - string folderAssembly = System.IO.Path.GetDirectoryName(assemblyPath); - string examplesDir = exampleFolder is null - ? System.IO.Path.Combine(folderAssembly, "Files", "Examples") - : System.IO.Path.Combine(folderAssembly, "Files", "Examples", exampleFolder); - - // Make this folder discoverable to GH - Grasshopper.Instances.Settings.SetValue("FEMDESIGN_BASEDIR", examplesDir); - Rhino.RhinoDoc.ActiveDoc?.Strings.SetString("FEMDESIGN_BASEDIR", examplesDir); - - fileName = fileName + ".gh"; - string exampleFile = System.IO.Path.Combine(examplesDir, fileName); - - PasteGrasshopperFile(exampleFile); - } - - private static void PasteGrasshopperFile(string filePath) - { - GH_Document currentDoc = Grasshopper.Instances.ActiveCanvas.Document; - if (currentDoc == null) - { - MessageBox.Show("No active Grasshopper document found.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - - GH_Archive archive = new GH_Archive(); - archive.ReadFromFile(filePath); - - GH_Document newDoc = new GH_Document(); - if (archive.ExtractObject(newDoc, "Definition")) - { - currentDoc.MergeDocument(newDoc); - Grasshopper.Instances.ActiveCanvas.Refresh(); - Grasshopper.Instances.ActiveCanvas.Update(); - } - else - { - MessageBox.Show("Failed to extract the Grasshopper document from the archive.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - } -} \ No newline at end of file +//using GH_IO.Serialization; +//using Grasshopper; +//using Grasshopper.GUI; +//using Grasshopper.GUI.Canvas; +//using Grasshopper.Kernel; + +//using System; +//using System.Diagnostics; +//using System.Reflection; +//using System.Threading; +//using System.Windows.Forms; + +//namespace FemDesign.Grasshopper.UI +//{ +// public class MenuLoad +// { +// private static string documentationUrl = "https://femdesign-api-docs.onstrusoft.com"; +// private static string supportUrl = "https://strusoft.freshdesk.com"; +// private static string communityUrl = "https://femdesign.discourse.group/"; +// private static string gitHubUrl = "https://github.com/strusoft/femdesign-api"; + +// private static ToolStripMenuItem fdMenu; + +// internal static void OnStartup(GH_Canvas canvas) +// { +// fdMenu = new ToolStripMenuItem("FEM-Design") +// { +// Name = "FEM-Design", +// }; + +// PopulateSub(fdMenu); + +// GH_DocumentEditor editor = null; + +// while (editor == null) +// { +// editor = Grasshopper.Instances.DocumentEditor; +// Thread.Sleep(321); +// } + +// if (!editor.MainMenuStrip.Items.ContainsKey("FEM-Design")) +// { +// editor.MainMenuStrip.Items.Add(fdMenu); +// } +// else +// { +// fdMenu = (ToolStripMenuItem)editor.MainMenuStrip.Items["FEM-Design"]; +// lock (fdMenu) +// { +// fdMenu.DropDown.Items.Add(new ToolStripSeparator()); +// PopulateSub(fdMenu); +// } +// } + +// Grasshopper.Instances.CanvasCreated -= OnStartup; +// } + +// private static void PopulateSub(ToolStripMenuItem menuItem) +// { +// menuItem.DropDown.Items.Add("Documentation", Properties.Resources.FEM_Connection, +// (sender, e) => OpenBrowser(sender, e, documentationUrl)); + +// menuItem.DropDown.Items.Add( +// "Community", Properties.Resources.FEM_Connection, +// (sender, e) => OpenBrowser(sender, e, communityUrl)); + +// menuItem.DropDown.Items.Add( +// "Support", Properties.Resources.FEM_Connection, +// (sender, e) => OpenBrowser(sender, e, supportUrl)); + +// menuItem.DropDown.Items.Add( +// "GitHub", Properties.Resources.FEM_Connection, +// (sender, e) => OpenBrowser(sender, e, gitHubUrl)); +// } + +// // event handler that opens up a sub-window +// private static void OpenForm(object sender, System.EventArgs e) +// { +// // write content here... +// } + +// // event handler that opens up a browser window +// private static void OpenBrowser(object sender, System.EventArgs e, string url) +// { +// Process.Start(new ProcessStartInfo { FileName = url, UseShellExecute = true }); +// } + +// // event handler that opens up a Grasshopper example document +// private static void OpenExample(object sender, EventArgs e, string fileName, string exampleFolder) +// { +// string assemblyPath = Assembly.GetExecutingAssembly().Location; +// string folderAssembly = System.IO.Path.GetDirectoryName(assemblyPath); +// string examplesDir = exampleFolder is null +// ? System.IO.Path.Combine(folderAssembly, "Files", "Examples") +// : System.IO.Path.Combine(folderAssembly, "Files", "Examples", exampleFolder); + +// // Make this folder discoverable to GH +// Grasshopper.Instances.Settings.SetValue("FEMDESIGN_BASEDIR", examplesDir); +// Rhino.RhinoDoc.ActiveDoc?.Strings.SetString("FEMDESIGN_BASEDIR", examplesDir); + +// fileName = fileName + ".gh"; +// string exampleFile = System.IO.Path.Combine(examplesDir, fileName); + +// PasteGrasshopperFile(exampleFile); +// } + +// private static void PasteGrasshopperFile(string filePath) +// { +// GH_Document currentDoc = Grasshopper.Instances.ActiveCanvas.Document; +// if (currentDoc == null) +// { +// MessageBox.Show("No active Grasshopper document found.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); +// return; +// } + +// GH_Archive archive = new GH_Archive(); +// archive.ReadFromFile(filePath); + +// GH_Document newDoc = new GH_Document(); +// if (archive.ExtractObject(newDoc, "Definition")) +// { +// currentDoc.MergeDocument(newDoc); +// Grasshopper.Instances.ActiveCanvas.Refresh(); +// Grasshopper.Instances.ActiveCanvas.Update(); +// } +// else +// { +// MessageBox.Show("Failed to extract the Grasshopper document from the archive.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); +// } +// } +// } +//} \ No newline at end of file From 2ca86c94ce4c5a088daef48bff14e1051466200e Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Mon, 15 Dec 2025 13:04:37 +0100 Subject: [PATCH 45/54] =?UTF-8?q?=F0=9F=86=99=20update=20GH=20SDK=20refere?= =?UTF-8?q?nces?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FemDesign.Grasshopper.csproj | 26 +++++++++---------- FemDesign.Grasshopper/packages.config | 4 +-- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj index e4fdd32a6..59669b59c 100644 --- a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj +++ b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj @@ -41,20 +41,20 @@ - ..\packages\RhinoCommon.7.36.23346.16351\lib\net48\Eto.dll + ..\packages\RhinoCommon.7.38.24338.17001\lib\net48\Eto.dll - - ..\packages\Grasshopper.7.36.23346.16351\lib\net48\GH_IO.dll + + ..\packages\Grasshopper.7.38.24338.17001\lib\net48\GH_IO.dll - - ..\packages\Grasshopper.7.36.23346.16351\lib\net48\Grasshopper.dll + + ..\packages\Grasshopper.7.38.24338.17001\lib\net48\Grasshopper.dll - - ..\packages\RhinoCommon.7.36.23346.16351\lib\net48\Rhino.UI.dll + + ..\packages\RhinoCommon.7.38.24338.17001\lib\net48\Rhino.UI.dll - - ..\packages\RhinoCommon.7.36.23346.16351\lib\net48\RhinoCommon.dll + + ..\packages\RhinoCommon.7.38.24338.17001\lib\net48\RhinoCommon.dll @@ -1155,13 +1155,13 @@ - + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/FemDesign.Grasshopper/packages.config b/FemDesign.Grasshopper/packages.config index f3f79b651..8f67b3d0e 100644 --- a/FemDesign.Grasshopper/packages.config +++ b/FemDesign.Grasshopper/packages.config @@ -1,6 +1,6 @@  - + - + \ No newline at end of file From b792175ff747dd2a81ebd73096b1b9551f07c6c4 Mon Sep 17 00:00:00 2001 From: MP Date: Mon, 15 Dec 2025 15:39:58 +0100 Subject: [PATCH 46/54] =?UTF-8?q?=F0=9F=92=84=20icon=20for=20disconnect?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FemDesign.Grasshopper.csproj | 1 + .../Pipe/FemDesignDisconnect.cs | 2 +- .../Properties/Resources.Designer.cs | 10 ++++++++++ FemDesign.Grasshopper/Properties/Resources.resx | 3 +++ .../Resources/icons/FEM_Disconnect.png | Bin 0 -> 1517 bytes 5 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 FemDesign.Grasshopper/Resources/icons/FEM_Disconnect.png diff --git a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj index ce27dd04e..b0975ceff 100644 --- a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj +++ b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj @@ -1006,6 +1006,7 @@ + diff --git a/FemDesign.Grasshopper/Pipe/FemDesignDisconnect.cs b/FemDesign.Grasshopper/Pipe/FemDesignDisconnect.cs index 184a204cc..6fdf5430d 100644 --- a/FemDesign.Grasshopper/Pipe/FemDesignDisconnect.cs +++ b/FemDesign.Grasshopper/Pipe/FemDesignDisconnect.cs @@ -51,7 +51,7 @@ protected override void SolveInstance(IGH_DataAccess DA) DA.SetDataList("Log", log); } - protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_Connection; + protected override System.Drawing.Bitmap Icon => FemDesign.Properties.Resources.FEM_Disconnect; public override Guid ComponentGuid => new Guid("{5A52243F-4136-48F0-9279-3E7E3DF82D2E}"); public override GH_Exposure Exposure => GH_Exposure.primary; } diff --git a/FemDesign.Grasshopper/Properties/Resources.Designer.cs b/FemDesign.Grasshopper/Properties/Resources.Designer.cs index ef513eac6..7a5e6f402 100644 --- a/FemDesign.Grasshopper/Properties/Resources.Designer.cs +++ b/FemDesign.Grasshopper/Properties/Resources.Designer.cs @@ -660,6 +660,16 @@ internal static System.Drawing.Bitmap FEM_Connection { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap FEM_Disconnect { + get { + object obj = ResourceManager.GetObject("FEM_Disconnect", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/FemDesign.Grasshopper/Properties/Resources.resx b/FemDesign.Grasshopper/Properties/Resources.resx index ba56fd75e..bffea8987 100644 --- a/FemDesign.Grasshopper/Properties/Resources.resx +++ b/FemDesign.Grasshopper/Properties/Resources.resx @@ -7438,4 +7438,7 @@ ..\Resources\icons\StudRailPeiko.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\icons\FEM_Disconnect.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/FemDesign.Grasshopper/Resources/icons/FEM_Disconnect.png b/FemDesign.Grasshopper/Resources/icons/FEM_Disconnect.png new file mode 100644 index 0000000000000000000000000000000000000000..eede14bf598b5b381c532bb9377339430008a406 GIT binary patch literal 1517 zcmVEX>4Tx04R}tkv&MmKpe$iQ>8^J9qb_DkfFM07Zq_VRV;#q(pG5I!Q|2}Xws0R zxHt-~1qVMCs}3&Cx;nTDg5U>;yWphgA|?JWDYS_3;J6>}?mh0_0YaW2pGX{Mx?vG-5YKK} zI_G`j2&+g6@j3CNK^G)`<4==ICRY`V z91EyJh2;3b|KNAGW@&oLO$sG|{ukT+7y|;kK)Y$%-^aGyJ^}pCz?IhZ*IU5cC+W?u z7Ci#O+rY(jSCjXE%N=0&NtX=Ck^D4;QVDoJqi-qzL$|=dn%i4vAEysMj=EaD0S*p< z@iJwvd%Qc?+uOfqI{p0szZ-JJvbjii00006VoOIv0G1`1Z$Z`sZlEOP;3kLcJ6mvbf%V4<)KSYa+B|#^PTfQ-+99SbQ6;KnD?yi ziRj1A=c3J;`gV%3TvU<1yC;L`)&;& z)BPdHSf!MIz2@~^&@o_(i0mmB^E+lMrZTw&pd%vYp>lEXbM)+d00Yz2p_f5=Ko5aTfj$bH z0=@=`iioP(-W$9$W}903DzFqdDk8n*V*Uhxq_b<=Rqa_s_Mq%@y~vR>Lq{f3ncPkh zL{*;_F;A6?gWsmJYj>;KUJ_>PpaOfNNsR`tq5<6ZIGD79j|Nt1s1+ zJTLa0F;1VVU8<_@h{zg{ovOCiIBr*Ic;NVaF;8W38$iDV`YWZvW&y}_+<%v~)gQ!| zp1_|x9f`yjs@hSI=8^KT2UYDsfaR$*dyO$$f&IWmKt;^9a&d6{dXVnVfyZ4p>KOpv zAHN_XZ>zQM0jSy@;83NM59`JO&Q^|ZRkZ+HfL_3zYrID10Z|RzzZy;CgG#Be$@3aE zSsPX(5pOdr20$9-{NBk)Ucc)*_l2>i(qpi;{B z$6~PqK`@m8+#t9*UTdfyTNk%~Q*$P$lnQ>Ol(*N-v5vJ#Yr}m&yNJ9$Q>JanPB}kT zZVZB}e*gubYgzm1XC248;=101DpD!szW`W~?!s~0hpn}rf;P>v?*MM?{E_Fyo*N!I z911`*8c+ECQy1<>5G#Qp8^ zShYIkU#tt7Tb8=d&F0_iWEY^ZsntefjpoYl=Od2e($us#a9r;{S^9qhxgep~ TXHU#M00000NkvXXu0mjf2Sd!p literal 0 HcmV?d00001 From 841f0294a0e0c52f31a86be94a12f5d02d15dc80 Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Mon, 15 Dec 2025 16:07:22 +0100 Subject: [PATCH 47/54] FD menu is added to GH ribbon --- .../FemDesign.Grasshopper.csproj | 2 +- FemDesign.Grasshopper/Info/Info.cs | 25 -- .../Info/{TabInfo.cs => PluginInfo.cs} | 19 +- FemDesign.Grasshopper/UI/LoadMainMenu.cs | 264 +++++++++--------- 4 files changed, 144 insertions(+), 166 deletions(-) rename FemDesign.Grasshopper/Info/{TabInfo.cs => PluginInfo.cs} (86%) diff --git a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj index 59669b59c..2b885cc10 100644 --- a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj +++ b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj @@ -410,7 +410,7 @@ - + diff --git a/FemDesign.Grasshopper/Info/Info.cs b/FemDesign.Grasshopper/Info/Info.cs index 95065e652..1afc58526 100644 --- a/FemDesign.Grasshopper/Info/Info.cs +++ b/FemDesign.Grasshopper/Info/Info.cs @@ -211,31 +211,6 @@ protected override void Render(GH_Canvas canvas, Graphics graphics, GH_CanvasCha format.Dispose(); } } - - // this method can be removed >> - //public override GH.GUI.Canvas.GH_ObjectResponse RespondToMouseUp(GH.GUI.Canvas.GH_Canvas sender, GH.GUI.GH_CanvasMouseEvent e) - //{ - // if (e.Button != System.Windows.Forms.MouseButtons.Left) - // return base.RespondToMouseUp(sender, e); - - // // Left mouse button up - // if (link1.Contains(e.CanvasLocation)) - // { - // System.Diagnostics.Process.Start("https://femdesign-api-docs.onstrusoft.com"); - // return GH.GUI.Canvas.GH_ObjectResponse.Handled; - // } - // else if (link2.Contains(e.CanvasLocation)) - // { - // System.Diagnostics.Process.Start("https://strusoft.freshdesk.com"); - // return GH.GUI.Canvas.GH_ObjectResponse.Handled; - // } - // else if (link3.Contains(e.CanvasLocation)) - // { - // System.Diagnostics.Process.Start("https://github.com/strusoft/femdesign-api"); - // return GH.GUI.Canvas.GH_ObjectResponse.Handled; - // } - // return GH.GUI.Canvas.GH_ObjectResponse.Ignore; - //} } } diff --git a/FemDesign.Grasshopper/Info/TabInfo.cs b/FemDesign.Grasshopper/Info/PluginInfo.cs similarity index 86% rename from FemDesign.Grasshopper/Info/TabInfo.cs rename to FemDesign.Grasshopper/Info/PluginInfo.cs index 6e4eee63b..8296093ac 100644 --- a/FemDesign.Grasshopper/Info/TabInfo.cs +++ b/FemDesign.Grasshopper/Info/PluginInfo.cs @@ -1,12 +1,13 @@ -using System; +using FemDesign.Grasshopper.UI; +using Grasshopper; +using Grasshopper.Kernel; +using System; using System.Collections.Generic; +using System.Drawing; using System.Linq; +using System.Reflection; using System.Text; using System.Threading.Tasks; -using Grasshopper.Kernel; -using Grasshopper; -using System.Drawing; -using System.Reflection; namespace FemDesign.Info @@ -15,6 +16,8 @@ public class FEMDesignCategoryIcon : GH_AssemblyPriority { public override GH_LoadingInstruction PriorityLoad() { + Instances.CanvasCreated += MenuLoad.OnStartup; + Instances.ComponentServer.AddCategoryIcon("FEM-Design", FemDesign.Properties.Resources.Fd_TabIcon_24_24); Instances.ComponentServer.AddCategorySymbolName("FEM-Design", 'F'); return GH_LoadingInstruction.Proceed; @@ -29,14 +32,14 @@ public class AssemblyInfo : GH_AssemblyInfo public override Bitmap Icon => FemDesign.Properties.Resources.FdLogo; //Return a short string describing the purpose of this GHA library. - public override string Description => "Compatible with FEM-Design 3D Structure only (20 or 21 depending on version of plug-in)." + + public override string Description => "Compatible with FEM-Design 3D Structure only (version 20-24 depending on version of plug-in)." + "\nToolbox to communicate with FEM-Design through StruXML allowing its users to create parametric models, run iterative analyses and create automated workflows." + - "\nThe open-source repository for this project can be found here: https://github.com/strusoft/femdesign-api." + + "\nThe open-source repository for this project can be found here: https://github.com/ms-structural/femdesign-api." + "\nThis toolbox contains a plentyfull of functions to:" + "\n\tCreate FEM-Design objects (bars, shells, covers, loads, supports, reinforcement etc.)," + "\n\tAppend objects to FEM-Design models," + "\n\tRun analysis," + - "\n\tRun design calculations(RC-design, Steel-design, Timber-design)," + + "\n\tRun design calculations (RC-design, Steel-design, Timber-design)," + "\n\tExport results," + "\n\tExport documentation"; diff --git a/FemDesign.Grasshopper/UI/LoadMainMenu.cs b/FemDesign.Grasshopper/UI/LoadMainMenu.cs index fc69c6c9a..8382e9e41 100644 --- a/FemDesign.Grasshopper/UI/LoadMainMenu.cs +++ b/FemDesign.Grasshopper/UI/LoadMainMenu.cs @@ -1,132 +1,132 @@ -//using GH_IO.Serialization; -//using Grasshopper; -//using Grasshopper.GUI; -//using Grasshopper.GUI.Canvas; -//using Grasshopper.Kernel; - -//using System; -//using System.Diagnostics; -//using System.Reflection; -//using System.Threading; -//using System.Windows.Forms; - -//namespace FemDesign.Grasshopper.UI -//{ -// public class MenuLoad -// { -// private static string documentationUrl = "https://femdesign-api-docs.onstrusoft.com"; -// private static string supportUrl = "https://strusoft.freshdesk.com"; -// private static string communityUrl = "https://femdesign.discourse.group/"; -// private static string gitHubUrl = "https://github.com/strusoft/femdesign-api"; - -// private static ToolStripMenuItem fdMenu; - -// internal static void OnStartup(GH_Canvas canvas) -// { -// fdMenu = new ToolStripMenuItem("FEM-Design") -// { -// Name = "FEM-Design", -// }; - -// PopulateSub(fdMenu); - -// GH_DocumentEditor editor = null; - -// while (editor == null) -// { -// editor = Grasshopper.Instances.DocumentEditor; -// Thread.Sleep(321); -// } - -// if (!editor.MainMenuStrip.Items.ContainsKey("FEM-Design")) -// { -// editor.MainMenuStrip.Items.Add(fdMenu); -// } -// else -// { -// fdMenu = (ToolStripMenuItem)editor.MainMenuStrip.Items["FEM-Design"]; -// lock (fdMenu) -// { -// fdMenu.DropDown.Items.Add(new ToolStripSeparator()); -// PopulateSub(fdMenu); -// } -// } - -// Grasshopper.Instances.CanvasCreated -= OnStartup; -// } - -// private static void PopulateSub(ToolStripMenuItem menuItem) -// { -// menuItem.DropDown.Items.Add("Documentation", Properties.Resources.FEM_Connection, -// (sender, e) => OpenBrowser(sender, e, documentationUrl)); - -// menuItem.DropDown.Items.Add( -// "Community", Properties.Resources.FEM_Connection, -// (sender, e) => OpenBrowser(sender, e, communityUrl)); - -// menuItem.DropDown.Items.Add( -// "Support", Properties.Resources.FEM_Connection, -// (sender, e) => OpenBrowser(sender, e, supportUrl)); - -// menuItem.DropDown.Items.Add( -// "GitHub", Properties.Resources.FEM_Connection, -// (sender, e) => OpenBrowser(sender, e, gitHubUrl)); -// } - -// // event handler that opens up a sub-window -// private static void OpenForm(object sender, System.EventArgs e) -// { -// // write content here... -// } - -// // event handler that opens up a browser window -// private static void OpenBrowser(object sender, System.EventArgs e, string url) -// { -// Process.Start(new ProcessStartInfo { FileName = url, UseShellExecute = true }); -// } - -// // event handler that opens up a Grasshopper example document -// private static void OpenExample(object sender, EventArgs e, string fileName, string exampleFolder) -// { -// string assemblyPath = Assembly.GetExecutingAssembly().Location; -// string folderAssembly = System.IO.Path.GetDirectoryName(assemblyPath); -// string examplesDir = exampleFolder is null -// ? System.IO.Path.Combine(folderAssembly, "Files", "Examples") -// : System.IO.Path.Combine(folderAssembly, "Files", "Examples", exampleFolder); - -// // Make this folder discoverable to GH -// Grasshopper.Instances.Settings.SetValue("FEMDESIGN_BASEDIR", examplesDir); -// Rhino.RhinoDoc.ActiveDoc?.Strings.SetString("FEMDESIGN_BASEDIR", examplesDir); - -// fileName = fileName + ".gh"; -// string exampleFile = System.IO.Path.Combine(examplesDir, fileName); - -// PasteGrasshopperFile(exampleFile); -// } - -// private static void PasteGrasshopperFile(string filePath) -// { -// GH_Document currentDoc = Grasshopper.Instances.ActiveCanvas.Document; -// if (currentDoc == null) -// { -// MessageBox.Show("No active Grasshopper document found.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); -// return; -// } - -// GH_Archive archive = new GH_Archive(); -// archive.ReadFromFile(filePath); - -// GH_Document newDoc = new GH_Document(); -// if (archive.ExtractObject(newDoc, "Definition")) -// { -// currentDoc.MergeDocument(newDoc); -// Grasshopper.Instances.ActiveCanvas.Refresh(); -// Grasshopper.Instances.ActiveCanvas.Update(); -// } -// else -// { -// MessageBox.Show("Failed to extract the Grasshopper document from the archive.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); -// } -// } -// } -//} \ No newline at end of file +using Grasshopper; +using Grasshopper.GUI; +using Grasshopper.GUI.Canvas; +using Grasshopper.Kernel; +using GH_IO.Serialization; + +using System; +using System.Diagnostics; +using System.Reflection; +using System.Threading; +using System.Windows.Forms; + +namespace FemDesign.Grasshopper.UI +{ + public class MenuLoad + { + private static string documentationUrl = "https://femdesign-api-docs.onstrusoft.com"; + private static string supportUrl = "https://strusoft.freshdesk.com"; + private static string communityUrl = "https://femdesign.discourse.group/"; + private static string gitHubUrl = "https://github.com/ms-structural/femdesign-api"; + + private static ToolStripMenuItem fdMenu; + + internal static void OnStartup(GH_Canvas canvas) + { + fdMenu = new ToolStripMenuItem("FEM-Design") + { + Name = "FEM-Design", + }; + + PopulateSub(fdMenu); + + GH_DocumentEditor editor = null; + + while (editor == null) + { + editor = Instances.DocumentEditor; + Thread.Sleep(321); + } + + if (!editor.MainMenuStrip.Items.ContainsKey("FEM-Design")) + { + editor.MainMenuStrip.Items.Add(fdMenu); + } + else + { + fdMenu = (ToolStripMenuItem)editor.MainMenuStrip.Items["FEM-Design"]; + lock (fdMenu) + { + fdMenu.DropDown.Items.Add(new ToolStripSeparator()); + PopulateSub(fdMenu); + } + } + + Instances.CanvasCreated -= OnStartup; + } + + private static void PopulateSub(ToolStripMenuItem menuItem) + { + menuItem.DropDown.Items.Add("Documentation", Properties.Resources.FdLogo, + (sender, e) => OpenBrowser(sender, e, documentationUrl)); + + menuItem.DropDown.Items.Add( + "Community", Properties.Resources.FdLogo, + (sender, e) => OpenBrowser(sender, e, communityUrl)); + + menuItem.DropDown.Items.Add( + "Support", Properties.Resources.FdLogo, + (sender, e) => OpenBrowser(sender, e, supportUrl)); + + menuItem.DropDown.Items.Add( + "GitHub", Properties.Resources.FdLogo, + (sender, e) => OpenBrowser(sender, e, gitHubUrl)); + } + + // event handler that opens up a sub-window + private static void OpenForm(object sender, System.EventArgs e) + { + // write content here... + } + + // event handler that opens up a browser window + private static void OpenBrowser(object sender, System.EventArgs e, string url) + { + Process.Start(new ProcessStartInfo { FileName = url, UseShellExecute = true }); + } + + // event handler that opens up a Grasshopper example document + private static void OpenExample(object sender, EventArgs e, string fileName, string exampleFolder) + { + string assemblyPath = Assembly.GetExecutingAssembly().Location; + string folderAssembly = System.IO.Path.GetDirectoryName(assemblyPath); + string examplesDir = exampleFolder is null + ? System.IO.Path.Combine(folderAssembly, "Files", "Examples") + : System.IO.Path.Combine(folderAssembly, "Files", "Examples", exampleFolder); + + // Make this folder discoverable to GH + Instances.Settings.SetValue("FEMDESIGN_BASEDIR", examplesDir); + Rhino.RhinoDoc.ActiveDoc?.Strings.SetString("FEMDESIGN_BASEDIR", examplesDir); + + fileName = fileName + ".gh"; + string exampleFile = System.IO.Path.Combine(examplesDir, fileName); + + PasteGrasshopperFile(exampleFile); + } + + private static void PasteGrasshopperFile(string filePath) + { + GH_Document currentDoc = Instances.ActiveCanvas.Document; + if (currentDoc == null) + { + MessageBox.Show("No active Grasshopper document found.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + GH_Archive archive = new GH_Archive(); + archive.ReadFromFile(filePath); + + GH_Document newDoc = new GH_Document(); + if (archive.ExtractObject(newDoc, "Definition")) + { + currentDoc.MergeDocument(newDoc); + Instances.ActiveCanvas.Refresh(); + Instances.ActiveCanvas.Update(); + } + else + { + MessageBox.Show("Failed to extract the Grasshopper document from the archive.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } +} \ No newline at end of file From 23877eb03d9179e34c7261294918d513940348b0 Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Tue, 16 Dec 2025 14:01:06 +0100 Subject: [PATCH 48/54] =?UTF-8?q?=F0=9F=92=84=20Icons=20for=20main=20menu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FemDesign.Grasshopper.csproj | 4 ++ .../Properties/Resources.Designer.cs | 40 ++++++++++++++++++ .../Properties/Resources.resx | 12 ++++++ .../Resources/icons/MainMenu_Discourse.png | Bin 0 -> 2727 bytes .../icons/MainMenu_Documentation.png | Bin 0 -> 2378 bytes .../icons/MainMenu_FreshdeskIcon.png | Bin 0 -> 2559 bytes .../Resources/icons/MainMenu_Github.png | Bin 0 -> 2618 bytes FemDesign.Grasshopper/UI/LoadMainMenu.cs | 8 ++-- 8 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 FemDesign.Grasshopper/Resources/icons/MainMenu_Discourse.png create mode 100644 FemDesign.Grasshopper/Resources/icons/MainMenu_Documentation.png create mode 100644 FemDesign.Grasshopper/Resources/icons/MainMenu_FreshdeskIcon.png create mode 100644 FemDesign.Grasshopper/Resources/icons/MainMenu_Github.png diff --git a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj index 2b885cc10..1561776ab 100644 --- a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj +++ b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj @@ -1021,6 +1021,10 @@ + + + + diff --git a/FemDesign.Grasshopper/Properties/Resources.Designer.cs b/FemDesign.Grasshopper/Properties/Resources.Designer.cs index ef513eac6..9f9df668c 100644 --- a/FemDesign.Grasshopper/Properties/Resources.Designer.cs +++ b/FemDesign.Grasshopper/Properties/Resources.Designer.cs @@ -1410,6 +1410,46 @@ internal static System.Drawing.Bitmap LongitudinalBarDeconstruct { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap MainMenu_Discourse { + get { + object obj = ResourceManager.GetObject("MainMenu_Discourse", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap MainMenu_Documentation { + get { + object obj = ResourceManager.GetObject("MainMenu_Documentation", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap MainMenu_FreshdeskIcon { + get { + object obj = ResourceManager.GetObject("MainMenu_FreshdeskIcon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap MainMenu_Github { + get { + object obj = ResourceManager.GetObject("MainMenu_Github", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/FemDesign.Grasshopper/Properties/Resources.resx b/FemDesign.Grasshopper/Properties/Resources.resx index ba56fd75e..89319f7cc 100644 --- a/FemDesign.Grasshopper/Properties/Resources.resx +++ b/FemDesign.Grasshopper/Properties/Resources.resx @@ -7438,4 +7438,16 @@ ..\Resources\icons\StudRailPeiko.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\icons\MainMenu_Discourse.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons\MainMenu_Documentation.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons\MainMenu_FreshdeskIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons\MainMenu_Github.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/FemDesign.Grasshopper/Resources/icons/MainMenu_Discourse.png b/FemDesign.Grasshopper/Resources/icons/MainMenu_Discourse.png new file mode 100644 index 0000000000000000000000000000000000000000..9b198831c6e903144311c0bd7d530abf292a41cc GIT binary patch literal 2727 zcmcgu3vkp#7!HC(D=5Vm6tE%H0@hq|mwP4lDD|$;Vy~1^+p4I|C41M{yCfvJSF2S! z2qG}@Xvd0ADhMbdqkswm$`qye=%}d3C_<^&L9|n$l!uC&>-7K!1{@u4W-q&&fB)}) zeE+|hQ&c!!1wVV2H_Om%M`mN#=+pqfmLdn z%n(F495#e0gQWNfBTdr;X(CJ}97^D7RMglAE~@E$8eBl-6hYPmNknyxtVarJ4h)*w z>q9_Js1?szEfFA^asHsran2?n#B~4N*r33!a)S}`~i&r3KC z#bbwM#;E{S11>lmn4Ur0Xu^%w5|}>9$QbEN(#Vjcjw3T}i5I-l^NE_R3}rh<6!M2> zHTI&yJjZw?CBQ=Gg#haVge>|nG!at9DfuM@0z>Plm=$g}lP{_oD{>&;<-nj_20`GV zjaD9N15%kx9_}5;(~gX_4B=q=Oqs6ID_hCDU;E| zTXEj%wc)^GHsN*?ZO3`a>-Ab_j`Wy}ecGld0xUY#f3{ZLDjsU&DYFUi6pdT$UNdf? z%p~sN%`9#wy%v(By?_TmXLgJ%OrD@>k`j&A$}}(|KJyD`j2{fk>AZJfDjNbk7T*-k z6OBv4jh_!!0;uxb)Sr{jUTjtJYGGCZIX)PQ-Jj}o0AZ$ep ztiMD>{-fH7<4gax26fiN96#%R>Dz*rmOf2fmvE7|aDfQPt-$NFY4O1Z1i9?3d{<6M z-kjGnNVj4EC6r zn?2hOH61CgZX9((ejC5Soe^C5SiyBii?fK%Q(eED+Vb$Vd-|u<^wbiqojoZ_L*&zd-r z`E={g;F;882Xfno9;;2On6dfM-^I(tvJoe1n3Uw>`^JActA?ON1B%s2GG=5e;B z()O<9BkOv8NZ)eQz2K<<4{byCht_-ccUcDQIGv>B7222eYH4hQ(OGaG3HEA9l{C?HrpUpH~Q-8}b!&SGB zZ5h`6$yYfCs$OhCmJXfV>7P8cf9ANwnXKzzbLC4(yB0QVlN-XJie{~D>b-Z>x4b{Q zyKYDSAB6$T2b1slw4unsY+&9LOl#jM9diGw&(=GShK7J|pSba4R%uGr{8w_`IPuN% z4+I^)^e;|Ln$zleYN~X&abxxThl~0zPv6Y`RzK+b`+QZY^Imvu&rk2QbyRc?TVNf& zFQ;yRbkoe4zMW{#u+evxbtkv@#$47^HfZQ_``m)0U8{#5>SFdgGdAB-Jw>f)YQ*^`j>jK+%_HFFix$LnrH#%k<(YUVb@r|FqfV{(5o<3ADt#-p|%Sr!r+ Rt@@{Aer};_%^ekWe*q7D(dqyI literal 0 HcmV?d00001 diff --git a/FemDesign.Grasshopper/Resources/icons/MainMenu_Documentation.png b/FemDesign.Grasshopper/Resources/icons/MainMenu_Documentation.png new file mode 100644 index 0000000000000000000000000000000000000000..eadc54cc222fbdec0cef44b49556455c72c4e370 GIT binary patch literal 2378 zcmcgue{9rL94`SJ8zJJrAR{rQQ(%++yq|5T+q`4k5pG+KiwyW@@7i~FmAkgK-Thc5 zOcFKIk%7)1F+})>AQC4=Aw(Ec5QCt@L=(2e2q9=tOdyyE;Scfker+HG48|tCw(ou3 z=kxvf-u1S%te90*Q-xvJtYE+&M$gCWd&WcP_gqH2jvkeIV6BN^RIPna$?j@MV_3zz zN~GOt53Ld;EkyxYi$W@!(h(ZNmNjH`AZ>sa9))p56^YA-h6!AeMPiLB#DsJoOelda z1Fr6BiAY@=Bwi*Op2nAD1w@d77QnNqq-qLTk;wB3=-nQs2|N$6Hi$%%Er_>=+Hjv{ zK%A#oQeqef?%^rk%`?F3S&DNE=b{-0&A3UH7g$a}^Tmrma)ule!v5x>82S>4gk|Xh zO=mJ0D&wFuBTlnC&(jP?a~z2fq?uDKkR?^Kw#49vrer9(rD!T{GlHnrX^8|fwctZa zFVm`KF-|CAbQb6|OEI=jd7vznaeAkb%!|ts4U;ehRm((Jwv5#inx&Zu?Jm^i>01O) zY(t^4#vN@*rOFbfwLFd7Cx`xCP+i%O<_>ELp1J7x41r&fQWK( z>TkLEp_8NmJ9% zuqGVRfdSC|0}WFoVuqH&fvzVN3D~~VX;m(EbvawOrQs8`b5|W18p@=wO;#zJfd7Yj z_e|3Lm24sU|6`J9ds{6OAANgW7QX$3NH*KK$?rVEgVZ3}iUibu<&OMUy;IcJ9<> zs>wS(>3k^-p+n1lEgzTYqkP~(6&1IEj#H}d`f&`K@@&xG6bbYWy(Owg8)r8U@9)OW zY-_Xvdv>n!9c-Mo<s`eva+(a`COC#UCzJ2ulH&0Y$N3N}$^W^2z5C7J> z?8wIR-|jeHx3jKcCb^j%|MJ3uy@$6SJTz3-_vvC^?!(HDM}Mt38BX?z^G~jPPVaiH zqfvb4(g~OEm$}Tbmqy1II^M`6q#LL9kDOf*TWjtO5Urjc>VLm*fE|2fcIIOLN7ef- zF&*(Iwq0v_rMcqj)*p8-8on~~12UZc>%9u{$Y72FM1mW!q1X$x$C%n}_P?Fr@)rN#GaZ}%2KOu_0ssI2 literal 0 HcmV?d00001 diff --git a/FemDesign.Grasshopper/Resources/icons/MainMenu_FreshdeskIcon.png b/FemDesign.Grasshopper/Resources/icons/MainMenu_FreshdeskIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..9775770cb9db6e328cdac8fb8438accd45cb96d6 GIT binary patch literal 2559 zcmcgueQXnD96r`6C=Hquhz^?cYd1aFT?rF9B|7<05SF7jbv zBZBDP6>4hLT30#4i9sXFiymN%1SM#VAo+z6iRJ2nih6)g2syB8hrh;9fp=g_^IW7$ zDgl0>bd?OMS5?$-tLiyBj};c6`4I*J1cAz;kzgRCFcAk9#bw}Jdre?y)I_a!V8t3C zTI;GrOGFu5Cs~_yE=rSh9zmK2(t=ZVhN2nxJ@&&Ooy>cgD(Czd z8GLeJepQtif(VDh#<0mK%07a!+wBBN6EuxO3tVXmscZxfDLHWjCr~(9kW@hop&BCV z5gSwo23;MFAt)taLrN@9Fk?i7l?cj6YB5C(c`jimHOPS|InNOw0D>T-D$tfn*h+p; z6&1gDALzvAy9i)zU9JSjn7#yq2?|A>*9gOiC1gx%rKU*&L={lP2AKo%8ljsx@n{sa z3XJ6QA(lh)=wgW}kpZg$Cmaq;s~}F%IAy7UEQYDN`Z_L>Ur8?@UoITrQ?8q^N9&17%JJ z2K_P$0?*hyHkPK$9B!p(E6#Fe8*T$8fU|iP3+)A*ji&7J^-hs%(5kGhA67gsau8#L z)o!84Jg?P)^Cm#!0GK_v-Auy^MY2|t&1&MkR2*%QEWoB?1EWzjuXu<^@+{3;ITrVL zDS%rjGmYEK7B6o1P&SL*3Opoj(v%$)3sWj6swg+bdZikyjLiZ98r28Ga+>ZPn8G#! z9*eyc#>mD)@y6DN{QyGVQ~J^M9OhO;uNr1$Q0#-5i*E>(@yR0~x_ zbVNJ%<>7%Wj7r;RmV^uFf5`X1B0ZdBhqM1b7KzZd)nV}w_v&)^**Toa`C4tFI}h_H z8iZRB1N$%0k^ic9V*KKx_MoPkXyBvHm-s7qXlc{LaS0z12QCOfam(;H&76B_8iFKE zD03Fqly2nsP92})%Oy!N8IH3il59SkYB;t=Z!j1p%p&^y?qi(f(CJE&bfA55cT#`v zG&HNv=XR&JpOVstnmua*7dIvE8mQ52@*7tya&-@67IpubzsJ3G@+FY=d9|`r6Pj%mMta=fQA^UL>gFWem0o3x?K-@Li)iSoS# zYR1mX@B5zYe66i7$+N$(u6g~ImIWtIA3d=AO!@8$>yTc3`s=4t^V{1}X6!q$eDzSP zzq+F6hCZ`n>$Vj?T}jdDbh$)(^WnY%a{Hmbw-1~cB;3<~OrM`xxA^7Oj(5H{T)B3n z3lu+nW9OV@1=j~}xj!v00uy`P0prChUXHAKT%VO?>ul*cY0B)XTAXv>a@R6_?}k6< zo50rGzjW3SkXHZmx`n^$cWui(o|iY+a!j*quPvIla0=VH7BPMH9RxN);C$ZgM%L@} z8&lV|%+BbS(vjKKQ;{X^v^SobV$cs3TW2PBeDRzc`KbTGBz!8Hl9Q{nkhznBkt6v! cpEm{JckKW8tKC<3Yk$$o=2bZNyx?y62d{i&I{*Lx literal 0 HcmV?d00001 diff --git a/FemDesign.Grasshopper/Resources/icons/MainMenu_Github.png b/FemDesign.Grasshopper/Resources/icons/MainMenu_Github.png new file mode 100644 index 0000000000000000000000000000000000000000..1770aef157b1af017e5c5fbf4a69a0a0f1e580be GIT binary patch literal 2618 zcmcgu32f6=7)}`l$^-)jDguoe7gjFEb}q-Jp)F0Jg{EX}w*up+W4|<}jcshxq-C&i zjH7_YS*hh1$2c}90tR9X0plppt(zF-J_-XQCNYk2R2Q+zNH2cR?|=XI zAK(8!&vs`HZqvF;YlFeiCOyrW1)rVu(W(XfzZ`HpgpU|GZG>tt7~}L26 z5ORiV!(AB+C;5#mFL{75=$E0i!H|#`lv%C-Xov^o3!($Py?Y;u2)qN$wYmtGoC178 zT8RR(OEPn~k^+wA(Zm5rLXd$9{6J%opubR5nV1E(te~qI^NJJ}epvgKQGTh}x zQX~Z+w2{O(f-oZ#ZKQ29!P=>Qh>0*+al(ufHjJbh(!{|1@DGJ>3h!mIoP)w(aOFUK znkF+i9tZ@C0kct3@^O-;X`C?OCKCoFFtu3J*dQjVag7?BK;;xc)&xmJbd9V>nxHvQ zXljEGemSC6RKszC5yOM5jFUz}_bDXEa}hatf>Ia)=Q$h{0zVKn70QwkS=lFPlIoLQ zpgOYs3;>L+%N4i)Icj}Mvn$B9$Z>hrqK?DBrEd7ICqwC^#nExm-QnQ`{wS&e!yjjx{gWUo}W zl#*7jj6Sif+Z#l5Uc01bNz->5qZUVf9KB^+mysvuqzK8QE?=8`Cpu}&d)GR+Rc1li z^plUHfwiE^xv$q7;>Yg)t2vYDg4lyy-_1lR1mu?)md!bc}D~^Y;zb!vKvaG6A zuko3hoRYk$n5mn#AZPBR`aah;EE|Q0@xF7LQjgu9w&=|t-}!afqqeI$Idbht^`XH< z+2bV#g1TYeyAix8G5+#y_Q^$Elu4H%}S+EIiZhi&B^S(#}Pxm34Vr+b$m6Y)$u4+A+GkJf@JYJpbf_gpV%NFG+{{xA$J87w+15W=ppE7&nj=@dv-^JY?x5zklhi z8;5_tx)|HGeb?vG%zXfCbz9rq+`FSX_3`Qv1H1O@R^gDQmJOJ5uf@=NN7moH+43!c zzwoGd^6c_onxF7>E?vE)H*KysRQdB#$X7`PfTU8>{DT z>=z~4t}LwcS!{K+lV{aa_`AE-#V@&DePD1reX;uOb*rrXYm1I$QtPT0G{3X|wi4~m zSg2aMmmTe}s$=}E0i%DoJ2bBE#(jBfKIvFhJ5MP2?oRB?HU}q OpenBrowser(sender, e, documentationUrl)); menuItem.DropDown.Items.Add( - "Community", Properties.Resources.FdLogo, + "Community", Properties.Resources.MainMenu_Discourse, (sender, e) => OpenBrowser(sender, e, communityUrl)); menuItem.DropDown.Items.Add( - "Support", Properties.Resources.FdLogo, + "Support", Properties.Resources.MainMenu_FreshdeskIcon, (sender, e) => OpenBrowser(sender, e, supportUrl)); menuItem.DropDown.Items.Add( - "GitHub", Properties.Resources.FdLogo, + "GitHub", Properties.Resources.MainMenu_Github, (sender, e) => OpenBrowser(sender, e, gitHubUrl)); } From f1bf57d3249d50cb9b3687151c967acfb9f74c0d Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Tue, 16 Dec 2025 14:01:55 +0100 Subject: [PATCH 49/54] =?UTF-8?q?=F0=9F=92=84=20refine=20Info=20component?= =?UTF-8?q?=20layout?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FemDesign.Grasshopper/Info/Info.cs | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/FemDesign.Grasshopper/Info/Info.cs b/FemDesign.Grasshopper/Info/Info.cs index 1afc58526..a05f70efb 100644 --- a/FemDesign.Grasshopper/Info/Info.cs +++ b/FemDesign.Grasshopper/Info/Info.cs @@ -34,7 +34,7 @@ private static (int Major, int Minor, int Build) GetApiVersion() public class InfoComponent : GH_Component { - public InfoComponent() : base("Info", "Info", "Information about FEM Design API", FGH.CategoryName.Name(), FGH.SubCategoryName.Cat8()) + public InfoComponent() : base("Info", "Info", "Information about FEM-Design API", FGH.CategoryName.Name(), FGH.SubCategoryName.Cat8()) { } @@ -112,7 +112,7 @@ protected override void Layout() // Compute the width of the NickName of the owner (plus some extra padding), // then make sure we have at least 80 pixels. //int width = GH_FontServer.StringWidth(Owner.NickName, GH_FontServer.Standard); - int width = 220; //Math.Max(width + 10, 80); + int width = 250; //Math.Max(width + 10, 80); // The height of our object is always 60 pixels int height = 150; @@ -165,16 +165,15 @@ protected override void Render(GH_Canvas canvas, Graphics graphics, GH_CanvasCha // Our entire capsule is 60 pixels high, and we'll draw // three lines of text, each 20 pixels high. RectangleF textRectangle = Bounds; - textRectangle.Height = 20; + textRectangle.Height = 30; textRectangle.Y += 5; // Draw the NickName in a Standard Grasshopper font. - graphics.DrawString("About FemDesign API", GH_FontServer.Large, Brushes.Black, textRectangle, format); + graphics.DrawString("About FEM-Design API", GH_FontServer.Large, Brushes.Black, textRectangle, format); // Now we need to draw the median and mean information. // Adjust the formatting and the layout rectangle. - format.Alignment = StringAlignment.Near; textRectangle.Inflate(-5, 0); //API version number @@ -182,12 +181,12 @@ protected override void Render(GH_Canvas canvas, Graphics graphics, GH_CanvasCha string creationVersion = this.Owner.VersionWhenFirstCreated; Pen pen = new Pen(Brushes.Black, Convert.ToSingle(0.5)); - PointF pt1 = new PointF(textRectangle.X, textRectangle.Y + 20); - PointF pt2 = new PointF(textRectangle.X + textRectangle.Width, textRectangle.Y + 20); + PointF pt1 = new PointF(textRectangle.X, textRectangle.Y + 30); + PointF pt2 = new PointF(textRectangle.X + textRectangle.Width, textRectangle.Y + 30); graphics.DrawLine(pen, pt1, pt2); - textRectangle.Y += 30; + textRectangle.Y += 40; textRectangle.Height = Convert.ToSingle(textRectangle.Width * 0.227); Image image = FemDesign.Properties.Resources.FdLogo; @@ -195,16 +194,11 @@ protected override void Render(GH_Canvas canvas, Graphics graphics, GH_CanvasCha textRectangle.Y += 40; string txt1 = $"Current version: {currentVersion}"; - var font = GH_FontServer.StandardItalic; - var layoutRectangle = textRectangle; - layoutRectangle.X = textRectangle.X + (textRectangle.Width - graphics.MeasureString(txt1, font).Width) / 2; - graphics.DrawString(txt1, font, Brushes.Black, layoutRectangle, format); + graphics.DrawString(txt1, GH_FontServer.StandardItalic, Brushes.Black, textRectangle, format); textRectangle.Y += 20; string txt2 = $"Created with: {creationVersion}"; - layoutRectangle = textRectangle; - layoutRectangle.X = textRectangle.X + (textRectangle.Width - graphics.MeasureString(txt2, font).Width) / 2; - graphics.DrawString(txt2, font, Brushes.Black, layoutRectangle, format); + graphics.DrawString(txt2, GH_FontServer.StandardItalic, Brushes.Black, textRectangle, format); // Always dispose of any GDI+ object that implement IDisposable. From 2fe345a505578c4c4bff0d34e3ae6dabf20c42ef Mon Sep 17 00:00:00 2001 From: MP Date: Wed, 17 Dec 2025 14:18:02 +0100 Subject: [PATCH 50/54] Update LoadMainMenu.cs --- FemDesign.Grasshopper/UI/LoadMainMenu.cs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/FemDesign.Grasshopper/UI/LoadMainMenu.cs b/FemDesign.Grasshopper/UI/LoadMainMenu.cs index 94a888f7b..6c92da356 100644 --- a/FemDesign.Grasshopper/UI/LoadMainMenu.cs +++ b/FemDesign.Grasshopper/UI/LoadMainMenu.cs @@ -21,11 +21,13 @@ public class MenuLoad private static ToolStripMenuItem fdMenu; + private static string toolName = "FEM-Design"; + internal static void OnStartup(GH_Canvas canvas) { - fdMenu = new ToolStripMenuItem("FEM-Design") + fdMenu = new ToolStripMenuItem(toolName) { - Name = "FEM-Design", + Name = toolName, }; PopulateSub(fdMenu); @@ -38,13 +40,13 @@ internal static void OnStartup(GH_Canvas canvas) Thread.Sleep(321); } - if (!editor.MainMenuStrip.Items.ContainsKey("FEM-Design")) + if (!editor.MainMenuStrip.Items.ContainsKey(toolName)) { editor.MainMenuStrip.Items.Add(fdMenu); } else { - fdMenu = (ToolStripMenuItem)editor.MainMenuStrip.Items["FEM-Design"]; + fdMenu = (ToolStripMenuItem)editor.MainMenuStrip.Items[toolName]; lock (fdMenu) { fdMenu.DropDown.Items.Add(new ToolStripSeparator()); @@ -57,19 +59,19 @@ internal static void OnStartup(GH_Canvas canvas) private static void PopulateSub(ToolStripMenuItem menuItem) { - menuItem.DropDown.Items.Add("Documentation", Properties.Resources.MainMenu_Documentation, + menuItem.DropDown.Items.Add("Documentation", null/*Properties.Resources.MainMenu_Documentation*/, (sender, e) => OpenBrowser(sender, e, documentationUrl)); menuItem.DropDown.Items.Add( - "Community", Properties.Resources.MainMenu_Discourse, + "Community", null/*Properties.Resources.MainMenu_Discourse*/, (sender, e) => OpenBrowser(sender, e, communityUrl)); menuItem.DropDown.Items.Add( - "Support", Properties.Resources.MainMenu_FreshdeskIcon, + "Support", null/*Properties.Resources.MainMenu_FreshdeskIcon*/, (sender, e) => OpenBrowser(sender, e, supportUrl)); menuItem.DropDown.Items.Add( - "GitHub", Properties.Resources.MainMenu_Github, + "GitHub", null/*Properties.Resources.MainMenu_Github*/, (sender, e) => OpenBrowser(sender, e, gitHubUrl)); } From 252b6f467b736c6535e0627937026d715e7f1a4b Mon Sep 17 00:00:00 2001 From: MP Date: Wed, 17 Dec 2025 14:31:50 +0100 Subject: [PATCH 51/54] =?UTF-8?q?=F0=9F=93=9Dupdate=20iterative=20analysis?= =?UTF-8?q?=20example?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Practical example - Iterative analysis.gh | Bin 70976 -> 76968 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/FemDesign.Examples/Grasshopper/Practical example - Iterative analysis.gh b/FemDesign.Examples/Grasshopper/Practical example - Iterative analysis.gh index aa2b66ccb79b59b8d53f2d5794c0b36e31abd5af..df77d2eed52d820fd3657752556ec5a2c5a29346 100644 GIT binary patch literal 76968 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

MhfQkG1}P?Vb2vx#}zE04EiBN;w`quF|x%#9ht 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 TDQhcLJ+}(`9{>OV|NjF3bWs^J literal 70976 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

|etnlBa@9<|i(Q`Kv@F3_BWjYa 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 Date: Wed, 17 Dec 2025 14:45:43 +0100 Subject: [PATCH 52/54] =?UTF-8?q?=F0=9F=86=99=20removed=20application=20ru?= =?UTF-8?q?n=20from=20examples?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Example 1a - Creating a simple beam.gh | Bin 38546 -> 39693 bytes .../Example 1b - Creating a simple slab.gh | Bin 42598 -> 52587 bytes .../Example 2a - Analysing a model.gh | Bin 27116 -> 36889 bytes ...ple 3 - Setup for advanced calculations.gh | Bin 63071 -> 61948 bytes ...mple 6 - Manual and automatic RC design.gh | Bin 82386 -> 91076 bytes ... - Wall with supports, loads, loadcases.gh | Bin 59075 -> 61162 bytes ...Practical example - Quantity estimation.gh | Bin 38891 -> 42003 bytes 7 files changed, 0 insertions(+), 0 deletions(-) diff --git a/FemDesign.Examples/Grasshopper/Example 1a - Creating a simple beam.gh b/FemDesign.Examples/Grasshopper/Example 1a - Creating a simple beam.gh index f3f406465e370231a179fb1fefe98efc42bb84da..3c3e38779935f95f5c8278fc04033cb26820ec5b 100644 GIT binary patch literal 39693 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�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

Ov)*EnA;J;Ja>`OQ8nQf%~cY1WyRvf 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℞_u{J}bdXui% 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𝔙WM6HaIi|D3T=M9{_ioa} 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 V=U31@Z|@{Z3d>6E2wr7^)erJ_ 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

/// Parameterless constructor for serialization. /// diff --git a/FemDesign.Core/Loads/Load cases/LoadCaseTypeEnum.cs b/FemDesign.Core/Loads/Load cases/LoadCaseTypeEnum.cs index 47a4df97b..e40c519c6 100644 --- a/FemDesign.Core/Loads/Load cases/LoadCaseTypeEnum.cs +++ b/FemDesign.Core/Loads/Load cases/LoadCaseTypeEnum.cs @@ -113,5 +113,11 @@ public enum LoadCaseType [XmlEnum("seis_max")] Seis_max, + /// + /// + /// + [Parseable("diaphragm", "Diaphragm", "DIAPHRAGM")] + [XmlEnum("diaphragm")] + Diaphragm, } } From f70c7763608626c4207b48f70573266231b783bd Mon Sep 17 00:00:00 2001 From: MP Date: Mon, 22 Dec 2025 11:27:02 +0100 Subject: [PATCH 54/54] Update SetConcreteTimeDependant.cs --- .../Materials/SetConcreteTimeDependant.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/FemDesign.Grasshopper/Materials/SetConcreteTimeDependant.cs b/FemDesign.Grasshopper/Materials/SetConcreteTimeDependant.cs index a36f9d327..eef475050 100644 --- a/FemDesign.Grasshopper/Materials/SetConcreteTimeDependant.cs +++ b/FemDesign.Grasshopper/Materials/SetConcreteTimeDependant.cs @@ -22,14 +22,14 @@ namespace FemDesign.Grasshopper public class MaterialSetTDA : GH_SwitcherComponent { ///

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 literal 27116 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 literal 63071 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 M07*qoM6N<$g5{4kLI3~& diff --git a/FemDesign.Examples/Grasshopper/Example 6 - Manual and automatic RC design.gh b/FemDesign.Examples/Grasshopper/Example 6 - Manual and automatic RC design.gh index a5339aa0f636b8f8e494389151325c6737906208..58346d8d9e8f414d0a62f8713631c658d7596ea4 100644 GIT binary patch literal 91076 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 l1iyzWpSjE)9e2M009600|5Q$*)aeB literal 59075 zcmZU)Ly#^^u&&!SR@>dHZQHhO+qP}vTW#C6ZQHi(`|oonC-#}-;El?x$Vo-MQBPj! zLh7K5zanmOOeBJ_y3ud7jc$J~<9xJ)1tCff25Q>Ziv5iUvEv`mLm z2yMuCKb{g$JG5gA{ezjQ#JkAZHntEJO$FwZ7_$d^MKs6~KoE-T-~K4}SZHE|dLGgw z`0+4oWRfC*6-lAOl&(^v!a;0AsUPu+e1}#xKuWYw!G1<|R2sC$`ZXJ8aV(*VOghgR z6Q4Ia*pIQF%`lQVE&TQXh1%Hw{FV&uH(>AzAyKRd2B)sZ`N9GV&NJ_kie@wK6{~6= zI2BJotV%h)s^vXVOqISe+>)b5!>{-+i+=Q70xC0oq_}Qa$X6F`#r(?+GEFE@EHu)X zN5zOSJy$O$QIK&$qI?Lef4Etk9OLzc&hEwzkGs9e`t)LB25Y};NGcWgnov+xic|k8 z2CRHwh$xUA8-)ljP|8c9Pxv~LJ)sD{r!Vk>!#NG6OI{DIw!SqXLG8jHdyJWeLZ0qN zf!LRCX%{pWWPvm)q0M9B9Y(ZB1)`|osB(KtcS}b{SBLtgIc><8Lf;arDy1^0cwcH^ zm2Tt4y+C%f*<1!=r~Gxx_Q5o^w)ti6y;boQ@UcC7>p+8L9B8Ou5Dk8a|5mTqY8e4( z!>-r$VDT4m}LyH(iKx0Iwkd=0isWFD|k7SLso^kZ$8%i%hv#E11YCj) z%+h$PRGQNbxZRDGCLGey3N(pQZllNO^}Y1|+wq(-y<7OO}Hg+r0Tm!D_q306`_b&D{k z>-(^c+bKLZGv_`)GD*Sul3PA**XOMDeLHUBbe$Vn5_x0zU{Y}Bl{BZbgUU;fL(!X4 zQs_FGPrEQ0dG70#O+^0C|aQ7VYAl^sE$N#p$`>Lo05&?g+v`t{Z-#l*i^r~5(w=sB1 zYl_RSgcjQ0J06xe+`P*C))k*VrHJbz@$R;>sN=C_+PZD?pOITHm9tvH9lKsTL#%DX zs8^zsYY~@cL|PKdGTBSd>s2_OqxNnp{v_)gOsNG0R;``)ukK~{_@}MTWttj3 zec1&CNL{fNj*p8x_mO^TaL~(pBp3n+#!Afz34}`PDF`iha_BIhrgDE#O{7MMhd^0SoHx% zA;}fIP~R>7`XuI&Uz#@;pt}t~-1_P>f`&d`r*T(h*@8PZTHK&%c)>o-|HMB&Rj zu;_?)@;*12h!U)hN+&Aw81jd$JL#8Jag!bH&Rl<&2PBs>r=wfa$&75f6iM^d<6q}a zmdUOZ#25R#SaUqh$J>$#q-k)0%Ms+5@SHgx4n5>wa!M)n={-NpfRuEzTz+QC!}|M| zL7lqw+i=TRKmMyZD2YW5xGT8GHJ$zG_?1g`v}FfY^36(FO!B>4ezwC`M&|q6c-3l# zNWk7JGD{k>^$hlgkXgTrWVU}3A^giaBx%u#y)!?mtI_Tp3V&0D#gCNmC+p}4CEbsD zFTk8ii=jj`9K)fAWkAxkqMIiTe>uAS@?7nFU+5f4z$zwr!OFDp5n<_W@`p_G!A9mb zEZ_-8&MAlU^JnO`zst5eewq2919sXFC9BCaYgcm>Y4_XR$FUv%BX$uZA>*LvDTetT z05bY{TD8TM!#`Hc_?LB15*`C}ov6{*S9#SvMt^@eu%eYy&MNbSPS<8BD*3%(wR$L@ zJHM{EPqMXDj{P1d@u-u>ehk2m!9?h-eL(U`O+HmR8RtR1RPALeQ%$%ERF38dm<=mw z-l%!aJ*y|pbUyo07qE&=PNT`@D%TF=byvz>BE_1$mIFy*mg{&h_1|MB0W`B6)^_ph z*+c*rv4OGY_-?0oTSJ&zg-14P*~dA9kYHq?+W45dEt1Fbn5%1kePm8Bqsy{LT6o%(jG`vbT!pFY4Po`!{c%(nz80G%uwYk0 z+hxPNOrH zCtQymwKdzQzBnAwQgfKsbMe$68@KbBezsX%Sxe+?*JJ7}PCmmPx7&JnRJrkTjOkAE zem^PSZo!jqD_qIqCvVx>+H%(f$kfXY5qwIx8T(D&$3u`bz0S1nVgCgXGLm!>p0{|7 z|4RUiFF%hhk+rQ`Ofq2)>U`Gxyq?tS-2xunLHMz<5^KPjT2qwYrt5k5=h8iW&lzs* zN46eIOdM`j;_e9huZe};r22HCmZWoj!O3pK?oidwnh(-Ww$t^PdfZNjlc6H2`xJd; zU^={)*Q{D!x&_C0HvdOexmy`hta^QQ|41Zhdkoz@KD(>IRzPna)O?h$7D}VO`klZZ-?vxm&ZwJPzb!YsJv+_7&(f&F@3y6FP638zNXA&ZVnIK|JpIy%cEO z5_fscK2O4zUO({0Em;Fg(=l6F4)eTr#{awV{e({|;e_WKV9Yr;yu{4tbe~jr%v+go z^r0kGoteeD`mOGl;p3lx*h?T;vwhQ1>vhRa=kQZW{;g zV5`3(Ea~)J+NAueXcf9$09VK1(mGt4IiT|gxf59+N#P`Qnu$lW3_Mv(Oe$dAJ^L^*CZFXXk^MjNm+YxU9l)dwY?voiSh7$d2y8&Q8wN@JhnPsM+cM=ku4XLi zC+Cofl0zx{u#JG*i<)<@<=i4wo+8B(I*IHLm%X;6z8er7$+cgJODbCMZiH6huos&) zt_VJrkXlq$Kl`{BjaFt1%?b6RR$5ND%_34GWZ5p3O5AZ{U0)6U;vqsQdPD`i0GBwS z0F6wFR$wGTA}F=ssY?r5U#sknD*d?u7TixP(2O#lu|=*lWB^n_B2)#j_7a zI2n;U1MG+m3ppx;!Qnd;JmT$B_oUf$r=l1w7~W&)lWoed=cn-xb2(%*&f||Z6*{sn zBh$&Y+p`+A93cL?giP&?(YRJFc8S9aqdkG!m%QImSef z*pM3!;h^75dSqBPJd;@ohNI{riq9jzHnnOfLA|2`*Uy|a43ioxu{z@yT zlnK1;F)>Dsy(uh8CMqhuLy3gR7DgKDB*1q^kr; zr9kNuiGU?4m4k?4Q`fz7-pw6Q<8TjhlR{B})rQRW>5&85)HSBvljbe%RU;7{a5GR5 z6b82zDq5&u)@|$|qjrggSesykD%D`)k&0oT(;v!@((Iez*-eBFEqvK$PIs($ z(*`k>QX#a)q;Rz^2@tB4dF7d!0Hc{6Wtm_{WXDsx<#Pii6G3SileId}taIGB2(~7u z`UNf{KcsuoeeoJH4XP4tI@qD*kk1(0o0`Fl^ifeDR>8F*!;Dr0kjhBNE-6~u?J2@y zSy3K3C!_SZVvPdWSb_icn2ZXg#n4Z-FZiEp5qH2n+rcx%w_X;X?1S^D7E%8QCC>G) z1%;NS>T@J`1WM(D=_4Yk8f>UQuZ4GJH32CJt7X(!7QChNM=ik}$Atx(RCqY}Z4bo=^-MuUw~kST z7OyQaZwyMYzuboPa6b0e2N{*UC>oC7@jy4ZG1x~NlUY6q_f6>+N- z%tpfxTzs$g_2GswkY!qh27^W6CU9<#f9w9ldtn!;P-5N?D|7>tMyBjjD-P>`mFT-7>0ozl7Cm)OsYWR(A{nAziUh83o;fH`T6BOcf`GUp z1Yhuf2G2D%zjFH|!@Xj6mcOvk-u;-jR}(wP`WW~a*)Qeie#8DPbuJzWs9zPZ(3jV% zF^0xK1G*!T2ga9+5i2DXWl&{^@}^iYe2n5ollO0LI*PGcM{6FTR~jprB!A-4FM5HF zzE^FPM|V`+0$z}sZXfkOCm|CaW~{?EVLbHPZ_3cM1}8=+t$YVzN^odf;T19G;MOr` z`Jv8Qw6Vl}mHM^iSV*4fvhYS1&?y3>QV;fJaUfjedv<3j(*fI7qS*JH{77uD{|_Vx z3@y7IAVDD#ZM_&{p=rlta+S@xcsoCQ_zswl1zSvnR~w2QAq;!}>Z!IXN=k zJfPJF&mlh(<2qvtq#}K8|L3RLdg)i!!LQ-IPa0B@A6%IcE>WXUag7L!+U?HaM*KkO zi{gCT)OEkFdsIsaF8WptB@K(f6w3t_LxE1VwS7HVXiNLmxTwo5b@Q1$Z)*4y!V1|p z5mGnOn4c^Z=(>r<5ai|{ImJX3tSQ%DCLpD8snotqeW=Cn{`tD~1R<{{|8lb^4B5I? z>=3O>)~aPM2X)~;GimQsTAW!x8n1^Fpe-;Zy^mfP5It#9Z<7ufpaUR7f*oS+WeXMc z{Xk>@bp&g;NR&ZpiJ`}yqkMG~C+~isD1J^~wVGR+O)k;T84=CfS!8GW!2`%c;Qc9Z zFLXlg5m(z)UCy_hyi-MBM(*@TRRf;xsV=?$%=0XOh@D~Ydrm&Q13LERoc`i0e0U3U zr!F3Dg4vKcq3*Q;m%Wco+`Wa_@J?87Tv&MW@V$NNpWXLs$_VvajJ=-lq0{7!z<;G_ zU%7rxdGpK+$)k$RmHk>mW$`M~#()_c)!_LUD>L2+Gp5RJt?HtJPc|ZX7D*7P#{Ut8 zYjb9ii5f?9TX9?2|7!r5y9oMqF0@oHJkw$!$zG;~;Vwc35Q`3RU?KE?%}J)7302*P z7VYbOOon+IA~t}QLjN(YCPU#75m@BCL-X!KT!w7`@dx-|u9(1QF2S_6O^aQ#P#C;M z?-%23k6#nuGUM+KT7T!+4$KI16I32l8$cKCs|xw|4IX4(2kKB0y&K&Td3Z-QrAEc2 z895x49XVOFMWFuxM*TPsKVQ-IL? zgh-H4VLumlBl5>oB#>7%Umc9Gwm&k07{~nG#{Grv?dR)mP3fa_*h97y78c&I*(csthD)@XpPF8**|{rT-+@|GY<>_u7pD$q|qaqKd=f|?ORlW4vwK9Aq7$(HpE}7 zW?J-Y=99q8L|8@pCBBK2`7it7nM3Vytj}r%n4i(7_M}uCfd%=fEX26f2ca~;4(w5@ zvgZReCG3_*gg&I0k$!6zOKq!n(~2 ztWLDdANf=&pg>XYFI>ROF=(;yBjavOSyOlGT?59BHKQ%BM9}_IV>aI$>vEaN*Aqu1 ztevJ2`HAWmb8~UTw3DM!-pxj0p~dIOR&4n$=m&I-End)e`%*ZoDq|qb^m`wN=mtqK zR@7{|eM9iAeQ|Jj=o~_pQx-<8R1S}4M+2_H>+-CPaQO^(!e0SD^Et%~^ZlzWf~5Gh zm|M`QY*h||ksQc!QwPeu4j|(6!ZNDeYIX8j>rB#XQXD12A9AA@mZ!23EZy}3dXf}# zMnKY5UQ$hoV*I$^D)OsIT~cVqBKL){6CN(yvEu5gfnyj*1I6wXH*!|I+WJVzz`Ysm zSP>eKRZihVMuMY^RCGqFu90hQVx81%7%dFs%jtXby=9NO(^KyD4%GU{g4qDBg9lw*11 zuDtF~n|ccA+VgRz4PFgQ{nmZ2tdO52!c=^|5eL94-)RU*Z!^z0V~#E59zdrXZiNCo z7$-h%P3e8lP1+)T>gn1x9Yht&z_f7@&@3bSqDidI68+i`fB|#iu_#tO&6?f&N_|O) zkJ{T`v5XRnCeOkKW`f){Lz|OHU>6l?pb`Uhmc^1nY6tR(VAA%`4(J8TF=u)p7kVH% zOl2cz5Y7IYc{Qn-%h8f!uhK5%$8|o3NI0?zpO-+*y?%L0tHd})9`f|A9^~Irc}y_( zyE05=cl9EIjJEe4kw)ke$9*yV(1wh6UPnIp5~8`h1b=i+*O#yNx2CZUlRiREP8CYX z>ToPe$d<0dUdZd~0Xi3JneUBBj)j<#?8>OW(8?*;JPcI9kj>u;k|9h=%Ev(BEEzfE=dD45D#@Sq zC9XXHkG}VQY}tJkerauv`xmMGkte10L>Z5QWlS!f`E7Ld&l+E@f6W|*#-q~cy6%=G zk01<`!a>7-J@Siiq;X!M+7MHt!6HC9kut@UBN%qlnC!)xGmBkBwa-4HLV!ll6~p2w zvFL%lQGhdjIXAfWW)cBcndp%^&aS-%jo|mVH55WcOEK-dz=dr@;0zXwNB1@PE|E9s zZ;#^EakpABDE^5ejnhe%Xf*rQ_I$=+qIN^gyjAq3lU^#O2Mc>o^a&6Z{j~8c8s7O1 z8TAW8gnlImj{kfPNxi2J(tA5NhB$5Sy6`R~B7|La4;bvv1B!A#SR)g7X;a_;Uahpc;(xlSxd+ zKH|(GwA3`RmzO}N01mdv0`9-OxMl>l+im#v?{j~bS;Vd*Gay92!EA$rT5)umcmw%C zHTOi={f99l>i5h&xL0t?Rp?M9@2*F;usVLJ0gx)9%J`N@1tZUBl2|IJxs)7y2u*KO zLwEh7F7Ud>*wYpcga*^YeeVa!_7IJinU*Jeb?gtvj1qNH_%j%JFyD~uu=0X}Y7c>7 zqXc<15~VZTVMw=vp-63m#dGp_3auVgg})mp7g~U`$?p#xF+&jbYeWl5C^Kq0V!w>E zpt;0=Rnml);cVr`5Wijg%(jx#xSE3_U#(76jxu1=Kng?#mCwrilZFDFidp@63XHlK zMpZx`f^|&2jP;OKO1!zN^u>Nuanv8a56--%n)CtmTA#FS1vrdQglxI=hj~&CQq@s za}fPTe*a*pu~Q$36}Cd|hA661Lwx66YGqs_+$RlGBJY-G3E^;qDssUN&NWcA$Kdo! z00g4j3S~UmE7(w`I<=*EUku5k6d~u`KpoFSh{~QW_-dBauv2w*^L{@GEVHF))>}TW zGlp)KTfOQi(@_*21hV5GHnfwW4b~4z8|J+L^^SL-;cI?ma@D!ehOA*@hP+iv@nky# zkLeS}f6DDHjpiL5O1Y|0Q1g!$Qys*vr!7q8Gdq2en`=hne(-wBEBaDW?M*Z_O6&k8 zAoau2)RE-@5!=zGCWQsI2t;-&MMMEDx|i*HGvDj+XV1=+o9wm29ecuGodc>fI|S)L z(F@RMGJBnr5#shthva_!Z6{@R&d>C;O$rV9!fAt`#LS4#ue4OdCg%zUPr<68-#(`G zj*gI~GS^ZQu@B;%Co|;NU|Darg#tXi zhCbyM7Xve(lL?Z8u8-C}7ptELJ&u0sl{b7+*9}6>fx+pJwk06;Y)#t&=m#{03$kIv z(ZI!>FIU!{nn9!$Ql^mrYq>*r_nr6RA3x)tp7l@!v~ho|AW~jwQ)p4Cn8{h>aD}qA zNo3UAn{vB}`<$#H9IUFv+D>f?v*rkK3-jhE%G3cIx$>_2zgsb09V{M4E&TD$_#VtC zI4v^Hu;-=iq5-s!WRgh!dAjFTq^_hDnVtm~cqt}Ic}<3aNG*CiFj4#B>vBfZViJC}X+K3@@?>J>?z!_An83 zvF!|krRO|9DS6p)taWJ0x^e*bi0w6!rVL}-VK2V<)L*WVtep@>2!h0C*Vr+N^Xi$?&LMj4N9mndEO;v)4nzesWD+{bq{CF;6$osG~5_X zhjA(EHc6Vyk$5g$g`a*6SzgRTv3Ob}_>Z8Mesq8Ox-rXZvBclh znZz~4PD8Sr(F@_k^`?#{W&@G(t=8+GN2Ta?_fepwsQ+{jqsQlH_Ta*zKbrxJsVz}$_-^v!$YjuZtE?cg^UAc!voZ_w zq}LBUMoB$zJdxqe=q}|)Rnh-8^=d>1{~gL{vUHi7D$Qoq;`lnjc825bl$U9(6c~1h z_OB7qUKAKy1V_`)J)2Ba>^r65sk{y%sRFSLHv3=}H97a5Hmu>Mz; z*nW?=Km;EoZ4&v1`A^&*5P`|O8_-i-EYID3dv}SEj%tEkUG@|QtPp)(>0^v&20M5x zt{82ztuEMEg1Eh-D*N~6Bg$4-mi@AyP6D>o_D@4Fs(zWQ4qRz^9QRwp?lWj-y${k7 z_VmYv#*A8EP}9?J!$S-YLcMWYgz7}wwz}S+!M9@zd}6*-VSRTMe<&UhrD+u@bZ!~e(VocpTplH;$U?-G)&-r6_DxDN7-h~Z4$L$(2ucY` z%uiTRplA82(ug)ck4!pZ5sTXTB>&9x1-q9$Cr!J-yg#vZk9#T zojlO+cg(h*iOlSuZKDeUx4;=lI+ZWvA9aBCIhnPT!Is^i*Rs!m+_TNOjVJzZ0V4QC2ld73YH zplsW}4)d3evnJDh7&wSfzW9>C8fj|zaU(ERsg}w2NNAGe%El!I#1%Zt45|!fseCzJ z)TQ7&yu^1}siusTZ002;y7g2ocpHM&(B(92is4m+YbknEndkud_l=5BnB{KvOM}YL z=3{7mpOe_;YA1?QOz~YqBZuxoRy05&z~z`WRGD#Q&#Sbau3I>^mbDk61ojM(F>l+a zTIN;>Do6a8*0u{=33~c~LF>dGyME>2J2_I%8U1R^^|N{!0oK1qhAc@W!G7rnj8>om z!r0P26<74`psL~UB}+VgdTOV{Q(n*Q_oL5cSDGVTLPeo6$Dx5y&d;;cf|dOo+x$FM zkd7@h(EF@z^yK~{>WBiK{V63f90&NK?&utEI>2JX2llpqx?E)JK9erp;D$ZD+w0i= z3ht$u8Oz?RWksiQS)53T2=pm8)FyWOPwce|s5#r407D(KPTndvj5Yvl5%4un#OrLm zQQDm%vt2`ugD4Ma!*bf+L6~tqIxopH!T_u1>1J0R*3Ac_hCDt*^lX;fL{O^1 zn>PR0&pQ(~;xFs%zUWnPGU|Cph|$cCU{5a{Qa*a5rtql;p)(PrQ=lux?gcSYtZ%j$ z0O+1Dg~I(nk1o-2v)tc!yPnE{v^@d0dtRT~JwDiIt8DD*&8xs-E3923H1>bu9JKtGr8~>G)C+$clqC#a2|g!rE@MceGt}4v>NWGg6NblQON==3q6a zs&!>|-ueCM2rcO-dS0DQR+RtCZa{a~s_Sg~nOU~Rxqc|z_`1_vohMWaj(Y-t!}ra( zn!Kjux!e{D*{~>qjqpz+r?wT0!1rY84#>-S)r<6Ov@{rl6qH*ynbsnCz|4%Xz>9!6 znYL1!tyw%O?>_AqP3{`jLotG*uvTHL$*U>`MHv4ZZt-YVv&ev;Dz-EAsB}4Xym{!u zZkCO8_ObtRnfs4@QfkOkAd}MyWQ!US=0C2Ay^`5&=Nn->XXjB}#`D)eVe*@w(mt&i zAH3MdH-RzVHsf-E?RYvfwZwd4CiA@5EJKp0^%(vJi@|h|e5Pw3B@|+&&^9Bm5`BXw z<9N!c68-zZLKuC?-)97Xm2jm-Te#c~T$7q2UKlqMrPeyzCyr?wWTB1BHUO6`ZvA9b z;F^4B?2{DNz0Vgh_TGv7V6jAK1H@)1tVo{Or@-QXUmbmGsG_($X+OHA5RDf(!t1An zPwPiUN8IGugm?iQdYO;j@ubi$UsXH(S7@g}uFBlzov+r2eC1VFY1?!4gmueShOtvW zm6KY6dPkMG`Oq-bt6?Xo==Nhhx$;73nph{?2DRti+ zJXdiksW&|3R%X#RLIMq=lI5VYZ0&1}p|4SCIqiIvMQUj;<9!vBOwD%pVF7oZ3MY))Cst)Mh8F+msuFL^|p zx%thXAZ+oU-%_r?{!TZ#n41}1UY_YV`u(8$&Ym(xb@Fhyb?)1oNLWwXL(?SZ^4LYd9_uO=cS`F&d?;V&>Q`w~LUubfiVEY^=d zra?K4pDLbWw14Hf{t}4~xg-gy&bQ5wQKVh2s4$G1<$Hcc$7uSa#v})_XaXg-Y(a_^ zeEO8p&hwtiC$6~$`bpH&AB7#9M)Ix}}Sm0!D`Xt?*TFQ`5LnyPZUcFxt>xRz} z;^rX$lv=t_vTVA<=(csZ&KKKFW(!g4ji{Kxz<*U3z{FN~H$TvENw1W7;`=_(HECrE zGU!i_wsgF`!M1D3@g<(Of*^R56o4CRxp)Y!qFvwf5alIh(KfQ-Jt6AR%Yzf?f<`=r zO+>+bpvfLTYbhS`|3PcJKwf@O%iUn`vwALHymRgTLDhOAH6ecHTX8Y^8oW?u=BL!x zaO*E0-|{7=J^g%q;lRyZT5(qmqbpSHPnsXh3}_E3t&}NE|2&^}g0=rF#}XO0;MNr& zLh7~6P0JdSwB~!#YATci{dJY+SDW(}I0z7I+80zFHyEULlf-97F}9J%!!c$ypKzxLtF&9) zj`u#ozF!BR#9OZ~m#p@m76>}a%G*>x+1Pim7`^%GgKg1{>(=q4;x&@~CLMVA?W|^p zH%oA|pg{l_gsJolc;qea#JlP3g0X1J8$(aOzRc|CG5&&~pK%&23&0cCb6n|Z$F6gV zDNC2-rY8q23ow+hq}oFlDhqglPzGl8&w~-@T)vCryBV0srnYe~pMHxZK@)I=m88m( zYX*!i6nZhb^KMh|>QLYbDgj$IH>`U?TD_V2C)0ScmADHh!8rUch-x#o2t?~O-u_9n zIfd1Bd~x!X>*O;*1xQt4jH=IEcu~uC^;7<7Eoqw5<(FC#oJNz&RjC!k`=*GiT$(9o zGn=G5fLi|r(ofh))0+8b;`4Ag3^NG^imivK^E_EBr?Ha8?|b_A1}h0>&!HE;;~#~& zthZO5tgTR(8CT6RMG6Y?fR^nw;ZYvGPVqyEFz)^MOgv zl`FO5+06CF8LIU&g1RYnDnf6UQob4lrdYX0cJ?ENbE>F;(V`qJBqaJxS)S56L*yuh z$+;5Md9o)QS*8LNp1)_BGBur_W*YYsUF}QV`*n3^F1n2qeYMa7z)9B~6Ty-i;$c zm$2I5jF`@!`*l_oT6YsnzXyXgqdXsj0TaZ`lcvWM(!SktS!PclTDmWnjB!wlZE7x0 zfw|bpyv(z_-;QKNGJUUDD88w?boV`K|A&L~`c(FJ0~ckpud}gIUaB%C zQvn6L<+)T|e)zI`*8fiKi(J^ec4yOjOu4hk-C(8c7Cev<5Ou*CKgOLnvFUa1ZQ3?f zl>o1WFHyz%hBl8~G1vV4+_GG6-8X*j?S0jo&FC}~FMPZD8vXCZ%ntLtF>Ro~i@AJN z)P<;TIUS$6p-=Z-1iAu^Dnor?yhvDwB+!>b6c6^jJ_isL%lufs80N_TT+)KlR=Vxf zB7SZx*41{ieNu6xg1#rKma_aXT>d1q(^`Ef*S6CZY|o+Sq@}mb1lj4KFSi|=7%_!* zg6U#HI6eNy6E06*8r>iNz5PU<)zwAgrOzts)B56=%D>EfBBsS+jMBhqJg{(% zMtPoG@ITE|FYj>b=Z{)ue2l1|i7@-2V45`oWn5a!*{s^Y+Uu&p1e&qyTBLECi(Pp< z5Syj@Z#Fv=sH~4ze;x&ADa@C$7G-IEgbX*s@<2Ymy!4MZ!*r+(^L zt8d8DdaN|FQJTMqFFdxaI+1dBX%bO=!GZX(CT+VC zu4^RbqHLXnm`^15w1SS(gIi!j{U1!~N&i7t-xm}ChDoX@W=QR)+`JXfqtMjJV7(6> zSjjWRi^5>{s2_t`VHDZv&sQu=G^Bcjj;Q@^i#jjEF`^%_+Ql4#E%sClfz+xmtzNrv zeE4KQF_TJ=h@dI#>*&*ebUZM@e~i7s)NF0VevFgS}I^i;)|x#Jnlop6+r-$0{~ zoQ|WWF1H-03csXmc5CKtvrBuL-=gZzs5I{SlQY9bJk2&a0n{>Nd=lLj%U0i(nzMrD zp!T<`$AD5q+7=ZST^JSdFK>fe7z>%U>?30OmpjOTkkKUvyd?)g`03 zeESsVYG8Cj!zE`YC~CWjw5ZTwIQEmfNC2b^*JPti`ylH{2$F1XJk7xWpggAgzH=lb zyHJ@H>irD~iBv!!B?VET7)n`Rq5|O*Mf*}D{}6{rFrh>_XlGPV>~5-$qD6y}kc2*; zSxUVQQ778!Of!?3la$3VM5LvjK-mrc?(I!(>a1$7XL)dANF|8eVL$@jh5PXqUTEyK z=Ruj;Cc}1z{=2#4*jq2TKa~AHj0gm95rT!eMUw{6h7%K{SQb?mtFrV1%#g*XgvJy_ zuP9Ut!i7Ku-nTWA5lVL$Sx|^b5nPJ~Z%>IcidPA^BjgTk zt+yEYxiAy9Ka_$9Cft8bbMhT|VN(?5po%aFlsJh(@oGy2H0T(lkd~(3BJ_1K@NtrL>=-KCl6mE&Fdtn0uTK?gx_DQd zqB~+Z(-K!4XkZ0=jQ)sC3GsM&)YgSa(gn35Vki!;hDLos^*2@cJ`xDW1HTd;@<187 z#>7jAs5aKMea1Mn_cyeLL>zFXW@M`u-gH-wCe2ht;Q_LXz0!qh*v)7mv*fCjv_F>x zvE6`2_9?HsF{qKQ`T3V}oMHNG@Ki9r%-$!wWqHB$in54g@Q{u9TJ71-hlFoA&i#TDjAfJ0S^fX)#7Jl=IO#&Y$IPez*G!_$p94TqGgdi9|=W z9upZ!zp<59p`|j;RTBx?iGnLhIm4-(#37q70?&g!OPlrtU}o|o0md1odW%h#cYe#c z#hBd>!(^F8$xtrX?34TDJE?!FB6Zg@#r#9zKW#aa*hjW?>wq@f>~RoTWe-|&9-a8e)_bp+Oo98!QagX4rMrlT^Rr%!Mo)fnfsvaOI0K9YE|Rl^L-wcuU4Y27 z%T)yNA6FwL9J{;j%dVd@O6ttsZrUc&i1nlj;?W_R~VI*i|KL&+!@v+tSa_5q?Kyd|1`8> zTU1q9&C`l>rdNU@uik=G24WWb>yFcVdCUf3e}2hq@P%~Kuuh#6=B~EQ_-|7}_g!bc z7!T;tP_Cnj5!7I&%ub@!@sv$%)#%)$>cGbzXM219guLp;9s3?(nL-zKg&3H}reO z#}(SLof^0T{Sq*t|7B!$e$e={+z~Kd|HD(u$NMFj3iOJ<5}m_vTC8v6mCQ-cTlt=J zp@fhZuEr{V_aqmm+d0qT@9C|i3-c`C{9klk$y5OdO)n>3D3vu97ImQJ4!*|+=aM?N zBD6mkY&Q1`OS)3(-YnaH*N>hB1R;`h4dboT>`Rp_;P_>TA3v< zzL?cIYu#z&LcE+`K|C`5o*GKb=cQ^Jr-8%Lfq%PH0_8uxTXw2W)68kK zF<8s-$;FGBS;@tpVOY5|kjY^XieIkXhMehSdguw>y-A31)#mT1JS*P_^>@U&=e<9$ zv~pm0-UhWZKtWgJ!OMe9aKiBt59i~FyOaJ`%AZ>IXuln*`u8m~o^xiPUo16*% z@5R2P{M^)sIcj;5yIE*q1r32zvxuFCXsJzbVAru2A5;hH@F>#|B_hJi$?BU-?Z77Pm_OEVgW1o@3%X?=$66l+` zU`Ik#%Cd?melF+pYW-T#vI+nh;J7Rc;-rig-)OU7Mdd+kQ&F|7qB75LXGN8MqSW5e zHSc2+s8U)3)p7|Q@l6ykeF3|r_U+<3pN|-jXuCEA5a=>hrbvejn&uek{Z)wR9`!w1 z!g>?e-i&36Ytd^TO3+P3Lr9z!qYfk*KcoXsH#odI0{3*VX_$Ni8 zM&yI$0S-k8mM6~WRa5);^MVjDApBBIE8Q0A=&xLq@&{E%%KKM=^1Hf{vUD#B$y2v9 zRbKZ0bn-#cLRfnl@;_5&(t>BNtkv`N3xrw8CP3FQ__YLELkdZjvU+(2ynm*KtZ&uu z*A?h0|7(O!qi>H%towjrqmcp#g=Yj9;U^zRdI#I_Wx9zJ^vhHOO8tLU9cZt&|G_bI zA+f2V_r0)w;2Fa8OlRr&%UrMkh=gk=N@%vW4Z&Q++x}yPh0ubpvqEXxhWX$tk{l=% z2qIJpfP1+N2AH7eB>Z(uML~6q%wtVeM1=Ch>SCDQsF6b@RS(A7CK?(?00~9_!}~uf zOm_}0Dj-V*|9u@&C^i=;QSR}hT7`y01nQ++mK#Rl`(N+{=2yE^Ii z8{2+V{byHdeg^a&e*7+L>&+Y8PXI}e#k&b7w zVzhG4Y%6Ifyw{4b@=9$4%~>gRFw=myUtLuDg%wuGShfRvoxBw)Xba^Cd;BeU5? z3WjUjjqfJe*?^mw+TL3_KfU^LnSvJA;#(RetQpqc%JN)um-Z$HU5dzak*L z`(`-v)2>2vg6{OyRl~_goBB2@dGRy@tSenu>zSh>szCVQ+d%DW5aGHS^dcicjrZqd zb;_&py|E81(mcCigK;;xg_wWQ^E74yLBE@Mcc+{0afaJ?!R^QuQG5wiM&5w*X=|VJ z@t`!U=z6RZR{VIXgDo^uEy4RL^x_Y|1;Xw1j(7LlN9G@QOLb+plY^@90@m6lKIBQK z{`28AFC${)g{NEmkGVl+>n}xedx)n^_Gy~lH0e>aA0)AXxxpivY1Sy}hcNtMaKB;~ zA)gp-lHn8wHzV!uA_Ru4bw))AdzSHK9~*j|`^M(qDb);ES{)^p+3wr$(C+o|n7we5Cl z+s4$G+P0=sPWjZf?e_FN|IT;*?c7(gc9Na!tgNhig&US5dkL8|BxVC9n+{(8R9*AH zM-aaygqa7SP&8c@6Am>t=b0@_|1Y+L31})GjvB}jbW#kNgczW35iRI?M3sRnV!p|X zLQ^ayq#ZE_5o-+O2Xj(E=8q61eq&$m*l3BCR@#9lLp2mdEV_mHHCcZODCJI<-cW>H zwp?(UU}-=CyrFOiuAXmC+{F{z(J@0Of}x@Nsbrr!s9HoTVebRSIMCt$J3CEoC?%?s zWNTeuJdzzv@7$ss2kP^WGR+6lkJL^MYSKJ%dOlu}|Z zGJwf?KXteqbOPvUKVllv znT#-w;`Z;&oKWj|dd4Om$!OM4GM}!*?vETBMexhZ1`{L`T<*K~brBMLYgZBitUJC` zGHE3(kj75Swt8lIJ?@J5m-c)-MvJ>mtBvEAWS_UfuQOk*2VW_E)rChN=sB~O%-`LT z2~<}O>^F@`pK4*o|28c0_~sKk9t{o~$~6*j2j3B1VO3LHLyZPtE%4r9D+>pHCF1=* z4?1rjgPQ}+*41fT@0M5bZRtrR;ZOl$HWkk)B^HIIm)_$tPk}4ZqXv%82Juv~Qw?U0aH@~he0QVp9zZ}k(In`+wrETmWem00uj!0wsX>{}E)_LdLFR=N>C z9kVZT7hW2Ox@vU2BSiwi=o9}=9%BA4ze0m0$Mc0R0ksbtA;O=7l45WjzuUL`4yKD` zSQ$j;OFs~bhnMrp=3-jbzLRqE(Oht$9z37&9F9>?IN|7>{=6LhWq3l&&lacac7S$|O>e1_xLm-o`Y_Be(O#?#BR z{ny}KJDYaC?OCPn*7CF!!3R_Dcg_S@r0%SyEC^}C^Chv{o$3<*uGh{#gd#r9NdO3L z5uXNgU>mYwo1dgdY};|)gV+VvqRaI)hCtJoSzDlA_@=|r|KPBiU@gT$Y&$hAU+4GE72l0b zZNOOERb#LPUMPSmzWO?XY>l>-oq2d4A9tmnKxp%Ol^thP@S-r=`A=lxR4(1?uJ!v8 zzpKHNv(A%)V%<8!B3|_~c!+u)KiO1Ne+PUw5<;DnvQdSi@{Kv0b8IJseEh1;&^uad z5d`LLLP(Ut!@b2gZ8aQE`M1%qWF&=w$zzG3A+udFUZFEml2VOAt`Y$j`;HRz^%A&Q z$qAx)oyK47=gPDvhbMUm19Z+352%==G&~tG?M5J(SRaEj>HgN3OcYP0m#D6#fa*GI z+@9yW3w<`fJx}{9IN$hkbG18GOQO2qtGU%_4(LRkHE^q8#RR+Ku+ z+C%>vko3>C<8%=Jb=;3IKck-nEDucWUSf=!=qIwA*bn$=#Ge%t{aIR*hL)4a`p!1MN%{w=xHs8| zPIVRu=2-9~;~zwRW;6&y6Q)gisHCq>1|lC~U6$4VONSw|ucY~!zyIFg*9*;U-06%-j`Z<{} zpPINygCl+aLLrziRy!&t6+{~KXD7wUC`eQNNr=boaA%zByt2>zNhzPcrQjq|2){>} z+cob?TI_nrGl(85G`!_D{YAaGncz4gmFxN6%8hOgVcY>Lfj-O!$EtU9{ym_|OBAS~?L`LF4K8Efx3z!z=v7Ai zk@0$h*J;amDM+|SW_~JQl0EMGm}C1_clo%Eq1ZD#V;hp81aWnK3_8(2_nSVjk0srPvB{?xHAMPA;UE2l7CxbyM^Xjj(PdqhTYhoe*DX3v$v2JdB3LvPuX z1xb`IIli{#b0F!kabsD2GKJW=f}pXbac_s&UplDS$(19U73F-g)%z{2GH1$5;r!pr z=TOq-{HM?T{bajxhLKql?gRz_?&_3w+Ej%pLq#^3|1`%~z=n3bdkyT~@TB#-G1@ za?9V|vGVm)%0G=Hw^{(~^N?$io|A}z_G^t;Gs2!dht%H&QA|yjd&cTi_J!IwEEj%9 zh-zZ*nfxx_$)0AaojGzU|00&)R;#Y9C@#X~d{zUm@=e#a@eIyR^+jYrR9&I#4Vo;O za$zgCd7*d$7p)@5?<)xzWO6F>d)ML$U$XQ?X-1+s{o*TUB-wtDsc&y6_Gey&4VWd& zPOUQ@x63r9vpKw~#eS_{anTY7Kq+E2Rs`321tA&1Qu9&5`>PD54Y(D(jiO|!8T~R? z?GZQ$C_Tn%My2OncE@V_G;!WB9?TZo`Fab zG(~!P6w-8!@N}K2ADJYlVWEFCtk#@*wS(qd>vG&4GAi*2cp$r|KRj&jHm0);6Z8jE{&?2T-|9GM1IG-iEd$at8Xy6Cnpv^{hzGf9qjDmV}XUlNm9iw9WpSXq{>WS z`k=d_!e(IJSFYdWS-8*a2fvMseZTA^xNsT;obWa+xP>aYFkQ7`l=#3}l_b0BPalYQ zq<%3aMJMKAe6K11O@#)W)mXPyzd*}@dYvuUdxnW;`hvaJp!A;xFx1&W>>-UB8yFK~ z@lb8N@DDur+ybN()+nAlImb%#)YU^&AbleSlN*OASyJt0SJM2HCJp0u!VobRS)?h5b&bY4*^gvfOotQ90jg%cU@Hp%pk8UNmD zrH7nvY~QK|9AD=caCa*c5$_M`aH^%Q?=Kz+`n*jo*0=XCjIF3cU*)J0THen8J>u;< z?>pJQ?0DRK8QVplW6pP`Y0A*0`Daja#es~&9NPsF0!84ZO9L4)!4CS+k$$DGYf+|? zsJmh7JB625axi>a`SvAbdv>Ka`}n3eFE{~&lJ7%c{Y>u7?dZ2X+wDuXiD-RCr$)ai z?@LSJ^i(qV70ave#M_AX&%!eHA>({Lu`0m%m>b-J0a`cmrb6GaB}m;vd4tbSZS-@8 zdkE-o)EN`g;}4q_$9m>nIq7rPSJaqi)eI@9&g_U?b4X>d$I!$2XQYfpxha1j{b%1} zYA)2`tS-M57So!w9S^U3kgXdW6jg0Y8UmsBZzE6pF)$tFh|z$_`#*l`HEnJurB2}C zmy+DC?!s;_Q8Pr$5p4vLwh7VG8N(ppFUn)9@jJ54-6`cULCPm!yIVeF8&ON;)t1X1 zJLd-PZYPRnfDAeQq|195l38w^PQ?;6liklR>baeD#t(^3>WtS#+fD7$jHboQ<7^`T z?5MoxTp4MDM2&w*kgR><|D0ztLcr7lp#+jHoo8~3gw@2}pQ!RX9PQn>sD(Y3{7FC1?bY)X9DCz-o=$l^w8G54PO5Y1g#}UxF9cxK7KW$pRn+3 zroxRy7*Plt&!V4Hq~BxnCS9h(E#o&+&v{Fx7!+HL))}e&&>;GX4v8g{0%<#@mG&dc zvo&9s^LHi~u=T#8JqqYc_efRpYEdtBYnVr%@J16DRI!qybBlDN zRL8qp=u)l9U=4zqy?S%hn&Sfo<+cp2Ns1=5s}2K!TGdHHw<^-@R(8t*ym1T6Vn%Lt+fheiE|nPYlJo zP@ffqi5@c**Xsmc8w-pUxDJ4UJhc$V5AsKMCYoK{ zFN(?pFC73cX7d8n9g5x*6dZtXhLjF~qLZBIZY6MP{#_PkemL7gp>k?wx=@YMV2JIZ zr`P6ER9H^_tzA(Zr9L7SrzNYwpickew@D!#_eYg>#gX!<+K5Sce&vuSkg+G8aufhe zD=w=Z1pXtCkpoD(lF$YbP6d@fcyK@`qy1lSAyviJ{JxIXRf(nN^CCCJGk@sZ8u1R@ z@Jyo+*#P!KIc_oRbii>P%RZON$piUu?SV}0Ro>M@$P3~(hQz6nyLwz0$Q6>8JPK=} zIvvKDlSrlIPthy8P^|J}zG4Hq0*CUS!l*DR3)+DNLi}|OEM0{sI@3{$^Snr>Ih+PP zCPyf8)(weep$l&gpaguBbQxCqi`YbKqE6uhk(Swm2|-`g;YKD9PeqpPLBBMu778Ow zrPy}1iXnvLii)M{4of{ig5NYu8j(<2qS2t|Hu%8& z?Y6vh0S1tq2T>ka=UFb=@E5+yh%^)_6Exb=jKxKPVc6!P)qA8K)oh?natEx}eH}2u z(Qu{u=3Z>ARS1QGM>B?z>3QR_gF-n`)MsRIL>#}jUgsE`fcW%a7?U57VR+KOYC2qWyySe8KnB%@w9KHe4C)bjY5|f#~ho3z~W$ zzLmv5CsZmvOQiirYPyOf_*dcZvBNL;9EMbvQ%>q)^tjDq8tISiugt2_@rO36c)GA`E^hl5ua1y^Y_rrs65egLSC~%;%71mAKw#_HaxsrSWv-(&O|f z1ZAbT;gzO5v9d2kl!<&Hf_7?NKWs)4pWC~}PWWaN99kGo9rz?aBdtJO#fhh-witlh|D z;GgbmvnW-(Z@;5~1-5aT+~HA$UuE2$);MEkIP^7lx=D+h%cp91OzXH~W_i4}jhu|h z!=wBs-6uo*@x~rCi|v_F9)rl2<1xeH(lC9$6>pN7?I2 z*(oSmj?y%)Bkq=1C&LYpHqW1QL~i#KlQaDf<^meWaYBFTHl5-Xkzu{oQkl;$f6 zw@T0(W@(U?F|+s=C(7R}ec7}_2f1g#7U$^l8k@n6gJPLfK8USXeH-o-(EEOGb;hTi zMAeMr0r4s+diCP0(Ti`td0YtE2Pe4=kCvvsmRRFepBU9}ztHa51hvPi-$t>kh`kFG z)^A5QiE|+3c8Bq~SX+GQFZF=kP2?*Q7ewd3|NM##J_&Fq^jlp97u;16gSRoBuJMne z4@cRkSN!d!cp(o8P!(}U-K;q|*we>-ur-|SXj1b=c}AS|{gftd8sz)V^zsEekq$1n za|dfQ-p)#U8|1Id6&tLtq(S7+i=h2H>W9uo+3Lt!1f>@uQp-Y5@m$(x@`X(@lkuhB zMj=Hz9KzLJ;{hEK??gk*PWeD4Mg<6(DcIf~-LA{soqv-hC)7h0eu2d$kcuxAt3tba zZ~rFIiN=i>EXCx05M~D}t~8rqytOzZguJ#WW6|v|t0Gq{KH3(N;BD5m5VHo_^Vteo zHq59f9`<*h%U#>zQu;GG%SHvy@R4TS`E5B_3<>{+%e*O;f%8}TG8ZaGLb8;S|4d$V zT&K|$Aq^h!Pia{i^5kKh=t?UCICR#>1-z+noa{hI?ria<8goXQ3HE9PMBxcjs==H! zxQLvdV-ZkBnaCBUc8|r1b#S#CEPNLKqc{`oE)O-i2{`wI)mJcB`?UV{`Qe};$RaPa zD$vcgD)Ua{%X7^hQ?snbV8fu4m8BueA`?%gU`t0xD^ZSAW-E()y>e}CnN}9K8hQ%Y zyz+hTeR>kScsp-->RoQBJ?mUvJz|LW#gB|cxE1JDC5sNq#ZRZFWRivGdyz$`7jS7W zUWMbKl+CNjP@BgQu^PE&HgLwEp{$&rmdz7^>FTx}|9q5yOHJ;GN#M;nVij@wj1Kwx zMx!j}K;0axF=+{MWBxm7341%W*?#ocn$SEjKKUq{JbNcK@{vfMfp-{04_!g{{(g|Q z10{J@Gkpj|3!P|vT)9Y$cBOUN?6J`esvVuLPf#}m4)%0;(O=;v2S-GfiLA~Y6ccR$ zc1G)Dzt$Y&S6$vE->ABba=90VLPI%Qe^w$q9VFH_&~s-+p7JyCti%Xc%S0gz;sN+- zwLuL-t9XsduwpIw4a}#tuS&<@7F=NYd5@aVQB-WqGmQS3wgfpXl^wW3tVk@lET>$J ztYi-iOs}`+Kl4@=?UBJAch4LKLB<#h)sQa{3qHL`I&8IJ0N)nuK3Y#N6${4u`FY*y zcZ&dE54x#1#e_s#P%@x}jKIVJ?5}jV64oh`h;qj3;3S5b2WHn5olv{bCKi-UcV*RE zP=Q0FzM@z(I0eGlXx_NkIx}ap7kVx;$7u`QDMslL2#DY6$aN) zf)k*n=2nT9i3De>{xteKm<1}2sg;2pszM^V;a_mPuLlNRF_XLKO_B-*d&=3=E<}h1 z?!~N?)I{=~qs7JNT8t+hRE+s0QH~ZvMwxdEtZs(`34D>zMSsZJ+M+{rQGhP;eF;M> zCNM&6@Z(;N7{UXLTcg!ed1uFMwby1hDolMAuiJcRjmC>7t@1LthO0c7r|xOx3~hUd z0$=r~+kz_Htc%|vHx)XO;?bb%)ANeTK$7p{N)GbSP^GQ(=x>I7g7r$(kRM|^JI(Sx zM9INHZ+e!$H?&HF2(H6)UM8X61}RDW7iOB0esgbq&42eQ>dKfu$J`fi;W%=WRogcF z4Wxs}b_tU5N734j-e_l?<~Bb(1`d5OQ1W`onaFd%5X&oL-Ra*i)kI?Qgc&(Qz!0f# z;FrM}Q3oTRHl0Xa$szF+_vlJwN@2R0aY}6?YD+|hX!lcS8d_q&$Wp^OYYJ5gcJ3LL zwO-;-Fmd7<81x6h5cqPr7`#y472@IY=koKpkqSkI#ubcH!!I%DuC*PWFC1V5a(SHl z;pK{1lt*~t;pK9q(K*kWZwfm5eK~mX!sooTdNfC}yhIGh1Ge(xvLf1I)nju*p@UP# znDpCG!{<5=OFvtSll}DXKEfI{vha}e^vf?#j*MhSQ} z;UjAH_Q+X<9+>>eapu}?OEL%lh_31RovyaZZysC)M=q*mLh;1`V|P{2e65sh^%BYA z9TO!Zu&_`ZzQf}%Wu1NRx2hE_PVeiiZbU^^#G=)V^d1Va(3xwI9ryF97p>|M2!=q; zrb}{fAuNUkgcrQf-f3JHB%$^l`f103oZc!XLpSuf>SN|f`;5H zd8Qinha7$sIpPycB)OKgsMrVJPa?t7v*Wu86T8YIIH5$%RkaJS9YZ1E=#Jea zRgq%pun?EDH9Z;8MO9p0f!6m}#*<7qjkT}w8}Dm^ARSe2quF>kjr}hTTTS9b+wZN> z%#ObX63uajQ{&suLCb(jnsvU&;*WnR29QNth)B#7cl|ED1!S)fiSf<|^b15$E@S@; zBE`>5>HSb|gZ|^`>GMzm9e!@Q@}_1RCNL12i>PM#GmP|&uVJU7x0+hny#v1p2rjOv zyfy7TrmZwPTm17`nS1i?M>&Rt)u~Ug-$sn0{!ehdaIL*KGa+4{;J0Wv+_@T-8DTyK z=a<$R>dfm!%hrDM%p>AMc!BPNV_2jYSj86GP*VObi`J0J9BLHpw`Z~O?@C&kwOkh+ zv)8hiWk|ho|Dha2#b|_F*)U9y+lge5HtPqA+m6&;=&(-F7I&f;bB7|MF}tem=I#?( zN6(B`*jgILoBc-cHfDK6t|3-D#pFlh3&av7e_2k~Qfs(W?_z|V`}YxQH5w$HA>=gw zq!Y&6^-l8^i)K&iCiK!nQ{IBUd#9NH*>rN44`|nNA2eIyrJ3nEuXAqaA43;#S7=T$ zH-J8Pxjc79EDX*sIN8?r;XJEV$V+5jD0I4vIQ>h<;@6a z!C((ow3gIv<+S^?3%Xl%jzoZJEHz780|njjLxCJ+*r@7S#h4e#O>QD!zZIXKKO@A- zdMIC0Qzb#sx~GrDLTqs8pkSrh%AWEE0+p)-6w0?a$PDOpp^_6&$yr*)RAeZ!c^)zv zH3Y8G5i)8{+?1v**z#OPZT?JUI?T{J z4j5B{LM$u$9{J;=OgcyqKbEKrkweF&3VHOOE_M&L6^irL!&oxyJYZ{9KV>X=uUB-C z)0F{@I&1uWhvT6K+neZ>IDSy_Tyz=20k0(81SM2{9L+J|<7E^+p}|&F{9c_l=5^u- z@?5?QM9iAq$4J9Z81gto@F`P|bdXz12%Z2^R9#<2EGqoywb2BlrLK?!o&4q;dgDgt z^m7-SQ77p62;b0-y6}e^C;uuJuxUd1`gQG{5equ%T6ES*Cl_d=T{+?hhrkEct$~|U zDSXfRp#We*qM0_aY}v%->!c^NFTS~eFVetkWD#7~A>q~u6i~e=3A9uE`|^s95v$TN zb7ct1oF_+ehX6xp=~P}a@KFA6ayFLSQ5StnlHla2Dc7~`iTZIE;Iu|H1s>Wm6d@gioFN`RnS)$TK`rYaF|jAZLRaSl#Gua{FS-7mk!~0V zp%it6&fPvJ&&BUZIC|qk0aP}uO0$P$Us;VRHBaQQx-KSHf zz|_>*N)*C9?O!v(@$fbd%|X=E@!Kw{#RtL& za_#s??Ll)&ZfhVHuTkq|0g(h7pYC3V8r7s3>s4#J!k=icRwX3;IkUyt3j5WA>s1SL zRSXs?Lx!Jr(m{4=jt!TnmF+Yn+-*|6YbHRhINIa^fVB!>Y^_E%4XWPWhgU=0rY-=3 zM8CfAVLr${be%CCT)E?c{>clx| zibKD-VFm|Ed7U}?z!oG0QP$x-D25DSHf4>Q-4s=xE6j&DUExgv8s26;)#W=XbX24^ zm1#f%5)!%*i-fpwqt0(W@UC|-LV4!s&6O0mlsK#P4arjKlkKy6zV{~8OgpYa&Fogp z*#Y0u`kxP6nRcyMwRUdwMc~)ne>Y@^3@N{Zy?o8B%JK2sk@a&C^;c0Gxc24-+y)~x zn$UxNz_P613{M#n1I3}exz(~iWLZ{*M_*sHW!OdV{DdmG;HYv^rCjSy#}Q^TzE3QU zY%=ZWrgn=i9&r09VPoMEV_# zWED2YnWt(C5Yuky8A`rxxyGm3%kXY{ghX4@y)6QWy5!t(>MDETaS$bZth3*pgH;p{ zdUWozG9`{1{~l>Uo#M(8^By>^aKP<=Qq8yW!L}U#jPD>7TyaHg3VW6!#J@8*`NKXO zYC=^A(qJTNA}w1{)3^S~7-Q*=Fx&z6Yx&N=esllQ0|5nd~t7UFFq)ad8= zy@<{Fnx%NfAf4KlokeYgj8iF@B+CtP@;w9N1Du{A^^3ziEMV0Qi$Z?<(sZaf3ASza zgexn&%{US9daTWf-rB~ix$6l+IiMrVU6QYY+btF~ySq2-Y~w&M6~+ZZuZ@D&bGE(g9J|IEXa1v8`_(+b>I~ zRrr+d4~=}bKuxHvg-0$6i5g*5%5-)MQDkrd^sj4`S?*fJm*9s4Ue^dkrsiI-QL3NljMBnhX@wn6*5#d`UlI_7a~mL)8Y_bFT53? zMiiLrW1uYpW{1XJ9#;n1om=?fzy;c|thII!6!>g)(o@mFR3BJj7l|!@To&vLcXL&A zQy)k}jBJnpk`K3tE=o!G^!|agFn}dsBy{W`DDZ#wr^+cpvL#8QfXC@<|YYo;TJU_3V_x3ET`D- zu#7JOjcJG0>pb1=>{8u+CCupHVEI~V9Z}jGbZ^Vg96rwA!E3J};{Le;qb+iJmh4D) zUk3V;8aLmGX$*Sfh{=<75+NZ+w0bcx2nJ^8$Q%tXQrqOOqTIvBKw`R-swwgcEVYlC=DA2#oAtDv?9vl4QY#%8xq`(#-ETbq#_U&xxt+=W9O> zRw8Bc?QO>;M*-Sbs)RNI{Ga1I&M|5J`M{a*nu~0#`oL#e0rd|HMR499B^G`|4!QmrAtNq>vPdE}Udb*Z3(6AEivxHvvP`g*GI@MDYj6q4M5o1;_v$hJCK*IlNoGr&9{Z%Ov)mKGtNyI?X+rzt=PF%6Q zT0c>y(ODljYjjzn*(VlH@S3P+{#`+7UY#l1$o0HQ;R=RJ5O^8Glorhmak|LW%7C?1 zL@bo7Z9Ul%Y4vMot(SQ^C2bLbd-1`-Yv`MWDF$k%T9Ipx|M+7_`nI*0Bw=U z7Xrm7(<a{CA%caF}Q)D-T*@9dV+!7Abknx#mL3pt9wH{pzYl|43fHPBeTyk5#j$t z!7te}J#y3^Zd>FLt^q)CA0A6BfoOOnsCxZK3jgCAAuL7e>C`Vt9?{ZlGfT`Xzv26_iiM|KUm*k>^cjP=mxk+M z$lrOKO{CM|A&YwufPW(|-*7PU?ji1ozjRVVU4jRMejxQ*?XV9kld4g~F}>BMwVeI$+7`gmqDll9bV6_c!l z;IdvM2=J6w6nI2IQREd1DOyamGM*-!YdKYFh&gTS&t_^&CV!56ppNynuGJhRZEoVa zZ^mipXFW)(hW$OGk4e(6a=gc}pNh?Vl4jDs%JF?bL2RG;Yrr>=ira9UAde=?X(KCr zeTWml9Idgb^C&Guy;9O#(?HrNH}(1|Tw5hmD0D<~4Sp9C%s^V(Cm^hh1xcQClqvHSugP2mKT_C7Z^_u{S6nHjOZhA2( zq@fn5M$2W&N!SXHxwgld!$-4S-S973iQc%2gwF4P3FfQ`mKAMm;5K)%Kr*lFfoPj7zApR+mM=D)xD zOi0n%&y5?gBi_fQ5C#*FG4K>DZ6(!JbHUCV%G0ws|h-V({2S z=xX1K&Pi=Wzo-OpEey7NYK9=PFqq!Plx3i^-hhQC#qcvK5ICR7EHq73ZvaEg-f&rf zi^+kc7gC%#kcP>oo>=9D)CQwFtC`s zK0;@Hw8G%oqPsKPITh|wfU#g@yI_QAyM3gWh=U2l3q3t3WhNYK z_5Pu%tme{6gIIz*w;|Cp@~lerPf#5mzoPr<7z)*M@BH6mnY|nVER^|u&baa;CuP}l zp(u{Ct3Oba$@ACM~ z#f1(W$e;$&@Lx;7QB$MUq>X+q$4MwkM^nY~z-T#8oY;0b{O|#9vs>xEC7uR_nBW zJ>!%gAQ}?(n4CW08d^T97VBpk#|xa;dWZZF{4VnAz|_~4f*(;5J;&nVyF>&=f~OzC zHB=$9D_z4+7R&%|QMEj!TPR)+S(D#jESQ#RM$8W7J|W|I#1Bq`EZ=%%>+|jzj3bKC z)<%aSLD_D7NTqk0|0bZf^-=|&HZ$6@&ml3@{T51fiD~A;%$P2{6Te3dVjRg-K{N}0 zE!x^wtZZ02mK*rtq_&uy#DWQ*Q43VP3x@H~pjrQs7*q+oysT<6&57J*pfpYm#*iO* z&dbC1SV9eIj&jrJ;*lRoM?OutcSIH48yCD2h96Sb-*=loyx=6OXZbg!iXK?$)qX2z z@01TSo!WJ}Ve&vAH_`%^(D)J^xxJLtapEzv;~uVh$`cVn9VPNy`a6Hv+ADA1#{*jJ zAr9((Uu0!WbZ{kbyJ2vyNjefR-?%7;Ps4(#$5~mLKOu2>A+^N*fRY&vP88D_FGC6j zE|}KxD$0U+Rqf+{_DM&E^OWyk9TQRce79%7G>;ZZLSh<_*vl_Ja_kNzB`7x%Q+pCR zafBN55B5q>gNX&Rs?>;G*fkXfsqfq+!9BDRNV(8Ve*uAN<(75+VgatknoT%U$?rsg zo*CWJJS~vpl?~%!$k_F!3twhp+tvNLHzJ{YiLu9_0bXV@p4%eL@i!8rPo$Yrk+5vn z+HtUjzYcAn>g3H+FdI~@fy1IHO_mdtfELd~#)nUS#8-{T$H-S4BC01W=DmDC{ik;u zaCostqF%;-=5}U&`|s47#7dQ;7!2{TmL*QrK-$`MmcM(#aJT5~O>iY;w$s7r_}}hG z1AIyksvaCy)Hkg=PfntqT9CGZn!h;x!wz`PuPQYK_*S`h<8ztzpdB2HT|%NuhyWq{ z+?d9Qs1M1pIBw%p2a%?|k&X;SmIh*>rpfdmPw*V7^GoeBF!Zj53-?7o{Ehy?$9ma4 zpkY`8LFK?i8-DX?|T~)H3UatB|EZt8cW#EY1zQ46CCn zL8^cF)BmN-HCW7nM2uYe4nQG)J|{S_b^dw|x4&v{0HX&mN$_cAG*PDMNS$7n_1R0t}vw&6b|QqJ><$L6yX0sRgd-_ zP9{$UmTK|CLOHsCXJtr9Q8a9pN<{hXW%FYCMQjAV_EIx$<3o}??x3QfUy=4OI&F|h zgi#vPG_)D@K@yyzs3&3gsg47>6$6YA^ zCVj_!3~f6I!Fh8kbi8aV4Z^2u{XE;dP{Tv6tw{%f1V86R(0L+OZj|B=?@dZxpeeN{ zW4DC&30&iM9ISXkNME}(a%MFTtHM)Z_r>dEJNP_WGB5| zNNZOxeN_y-4B2(6{@8pEw}qO1(1HDc&Ytklu!BNm9gVvueQnl1+688wjq2gCYg=8^#FlYWHqqK(YMOmZfv4a*C0NEqAxs6*r`kW^PC7%% zQR4<}NkUV4oJa4DC&3#8ovq!!W5%;I90l|Pr&(Pg1(OZ0y6gZZmbtv;SCM98wlDEV z5a^k}jBf0ig+>?1Mp9~szSE)M%LlWLNhm!nlwj|h1x;wG$BM^O^e24-QHAx~S`jXj zEh5y6&WvNYGH6Gd`s|U|0yUSB1TKTJB>jPlEPLBd9hXqWaY316XX{vZ$YS?NJ#mdJ zR5!W!dlR&2rWMSEM+;`A{J;Md!?riiCT?J`h`3=h2`mUcTR({`zm;u_M?w{`>Ao9nZk;m$Bh#DtR5ljm|j; zIa+LReyhXPUNlN#qk}U35n`50DMe~76H2l=nf^|Yu6`bb3?}B#dC7YV42F$kxh1CK zL@6d6<}*20=Iy1~*gy;FXHi9@^d1ePvpWVXAJ7|q$vwq{aPyfr;9C>&R8K$nZt?ci z9$-ap%uBcqG3rlq06Q-qY`S0`dnNA#LXSxLreVWBcH@0?NYb?JZjy0mMJ9&++bPKA^U8garv{`>^;ARC(->e zNumRl!57&jz1e6Z99)c-E6oS1{@gx+pX)bd$8;5gv@@cw_TwYM*}Vr}6!_7V+d9Do z=mgQD=x#4PArHVf;B(}XM*GoDMso1!ygN|88shN`R{QZUT%Y@Bhi_08yN5o#5cGuM zR5fj$1T*utbEH0%7iPMk@h7Ww(~Y4Br*D`F&|dpdQCI(F;`SbFMcRX+tf>d|)ui$t zB_%gA;Kt3%bxlqCk&m#kFAC@rH2OMAxpGl|?mmN_!JKylSwC}Za^(Y9S#vS78BxH6 zD7NMufg`IwAD@*{YV(Q*KODRA-Ip6`T(+BWw0FaU*7pq+4)_v6pz|Gne~+oH9SSP( zE?%xk2sUS40rc8b(Ie^S-==NFUi8pTMCAA%U3SW_k@{z`ujXR;yoyn==n~LR2jT zgD({+NK1PRHfEHm395WBA_1xh7TS8k%&%lb)>k|?cnW$*DwU`DV8GMnD6H2X3y8Cfj;&CU4`y0oMI2xExd8PN8)x}&98GK97YD8@Jkp!NdD^IZj zD={kYNte~5K{8KW8SV-Fjmy{?iC=caNIX5w)pO&4=2to*US=V}NYz9)v#u%}48E(f z)Q6KEgF%OxIukh|#w+Nn?c;Tm2oaf;slo2~_2;Ge&2DU5!$F=YwKpTc!A8p+jvpaN zP5>!)-ST=^2H(L0)@->^p6f&H4yd3D4XD*3VCqpi4+@YSEWi_r!Iz)2!ubTIR&td= z!}E84V_VH-|DaY74~c#W>sbyNgKr+|<(3vEl>Th`&BFp5nAoe9Bg~o8Cvi^v#$Xv%_nT$cFw%Q4 z!O-dsImwdJsh_Tw>d(!$^j$ToHem111@4t+VAFdV5*Rshsrf=6oxOLXKI_l@76&Ps zS#pD<4#ts+akL*>xxMMf;ypmMORLYtp^aC-4TQ!7;|xSLX-+brXNDTFJ#S5%LVDn5 zhn2M3TAk1V*O4Vl|?bc6? zQP)8yHjf{EaUhg+1Tw*&yOt|`H)*x@*JI5FZtUh{xjh+-(%yq&0N3M>Y<8KL_-%I6 zoKgCDj8Vl0C#W+9Vup%uZ?-zmeIe}JMs^;%&8Gzb1%od=7AESnorH^hlBC~==0#8} z*8yj7u88JwFB>eY_M_ac-g*wJV!v=fHM25KdJkkmgtvAJPcZgd&)*N<@2?akoAvXp zgB<8Kk=R;~pDt(+!#Ct!m*m>rHX-d7XzsY;$2kAnK^j0rtk1p6$lyD2G?p5G=?uo4 zZs;?<{N1ESMnbGY(>xJt(?{Kq<@$3$FG|8*xiQ##Mhrif7ta3!e?Wl0EPFfXEzjCl zIss*wl)TOFVcF{yOK;VG>I6PWU#33qf@QBXPGIQ+31{H@YUCAuHrdma$`z)}b_V5J z?ayuh#8&O?8Y6RSi8E*`e=xQB11x)ACX0q2^mhialZ0w-yn$u!QKqm)7@B6uWwyYwr>|V}^hK&OXz?yHE_?{f-gc>jO#ujYG*&!onotMJ z-h#4eOTcDlaDIW$3E`Wt?2R3NPj}iHXRyLg2*INCjBx04G1EBx|g%vCNgN6x=(Z?n;`a_53&k4Oa>$HXS?^! zgavVtisk;Lr^(>0heXBp`LG}!&Gt}#cb*I)_(zVIYz_S$!smsdy(>7QT@j*eGqA!tw#l9U59nG*H9-~%IE;&O69)5w(kFtI3cwg-K zl%D-$&|B_eZ#e>f#bD8MC+-|{1@GAx%sKbt|qL9JY$y;YA&4FJrxG|~K zXY5QeAn#e8M>K$6F>oypP~P7a0WLl1d3oLte#HQdG|jFFTDk`oL^R@dsV}6J4;I81 zpT?Ez&n1I5x@L8c1YtqM)fZ~i1(LzRlEt&^#9%>eGS`anT0sT^p3&r5DOeCW`;-?f zMxd}@o-~&W7DqlFQhVV|1iL5FuF!_Vun@pMoqF1b2yV?1O-vX8!y;6F%;h!@B8XHr zNGHg{u-MmSW3g>25zN_$S&6Cx;?^Xi?U8w?Bc@@Esq+adjP%lFmWWw1}W z`eyQ>7idCy>UH*RhvbzK*g8HNmtnAy%d*H}ej)=Hf*N6Az6v!u~?5w;clSKeCeH10e zuwI(O_D778M()7uAb{Etvvl-Wui&9RNnfgR`jdD9G$V}qq>nybC#f+6Af>Y`ZCnuS zlM;0EB08u9pxKgIX5bI|r1&>=Gt&20CJhTtxI=aI?NkU+9 z0b@OZ$G6evn`wQWl1c#Nn<;T&F0fA$>9y}DLY}AfmaL(&1MHJtt(Y&Pm_q>LhR>PZ zZ3+7%#P=@@WK{PbxaN&Zw0D!uw{)zZQdilG|aGwQD*FAhyBTicbXgN%pH{_>vHW zWW+Z9N;Qo`%6pvxBPqL<{ZI8Dng2J8ZRVE^^PvT@tUWBWO5-xMl zNpTS_@~;_ZWdRE9i^r|cg9#Un2-e-JJG+4j5iTL4-oNRJC&&rVXq%oug$VZ~D5`xT z=?AhcHLc9nQ6a(|CHdw2#vp%iPer&yKaL6!Zt|4jjF@BoAnf+>2O_Je5a9-Yc(AJC zl0WqAL6mU&;zy17ARYj^>iDGu7Q(OkjZCjMQfdqUAsLSk6XIdQJpyuV%u)h@d{WoZ84XA)EB{{Q=$)K zm1eCXg9ST{URToKPC4P3^YO?*GLSb|8c7I-&Cx2FbU5KA8Bmv|WRG`;&Cz3rj2k2j z1sHT3FSeTtn0DrGAd>9L4s0vQln}1?f2^nZDw$VOSPli;G{1Ox&l_!JNN3CwH z=gE)?X83IHaXudb-t?F&R+f+<73^aqPmtdo0qm`>>^oFShE$LfJG|g0kHU}H++;5J zDR1kzvwubyXjYu7pq2%50vh4|y1%#Z9-A=^VLZO>e~jW#l@cAsd5U9Kgn`~-Mgd(LHeopzFdxpPgn`53m!C25hfUb{$In;X6(E5d_Gbm> z`oi#=p|&%uU5o@qtlcY`LWbctF|Opy^x-71_gU$vqjVU4s^C)o9T^f>{BWF>cN7f2 z;#5rNQaKV3h%UgZ z#BznAZwZ?)`=lcsq7O+xetgAoy```Tt6wqasM;eEFlwo&3|I!6u(fWL4xgGx z(9bcT@Y~}Xan!w;1obHjKd)O(h0|oip$KZiROZb;*J%Vt6gVOScvIwvj0^JAR%8tg z)Py~GqC72G9FCwSjK9WignA7Lil8PeVOM5idKw8FE0p~-k+mL%ny?WcXSif7B7yYd z>m4)44E+L7bSVebHbo|LrvJ&G6y|1UpRuAFm%ifL?&`X(7f>)>XXo+&g>xWAFRvK zbylilgaB*9<{U}3p^iqlhk9U};`=R@p*)6qM$x*ulEzRTLmiDAuwE;m;t9(?8X1ss zbf_mieY-SrB^*JAddrfd7Wz{{dB{H+8F-gPlq16ZgQ51<@5^C!Da9|~?SJRqfW5mp+F?xhn` z^g{tc@kis!$k0$nv4brwv}s_elLCe}-iG|aI%ad+zi}(^MqEMdW*`s9q7iP$sx=ke z>(L700okxyKIs*^gLps|jZD0J)_mMl7_w+2J62)b=i9J4Eh#HeQ`HKFA}D0vX_b_v z+<+q@91$n#?mMOVFl5n)QLt)U+(sC(=ye7n;vDxj5Ru@BkQG|}#TUbnMI!^SKq0&N ziAA=!elQe4A)DB#e!#K;j-Zg$$a^Wdp)MGL5(?QtqsnI|zaj z3R$#I2cR?(!y5-f{>Cj6e=1y1dZ+y9%l?scu%YEhwDbkoXCI9{J8rxr9o*gURivf@ z_SwqG4suQ+bWmg8jD1)O`|O%peX5iY9VFZ9uKE0k3_&Ta{#^qzGCjMk^Zg4l1SOS8 zFYk{*S}U`>J16x$8G_O%<1C3jaXN4fsqfj}Lx!NVSH7RY>B)TEF{u=9|Dhoqtqo|nr7Xlqb8a=8tWt)Wb5RT8@8%PI>MWm+V_+a+4 zuv00UPojfcpR<V~0I^WI6lluQR*Y4QcN9Wayv+74|}rP6`r@~Bn+_%C5XT#|r-Dir0Kn=`(?kc3*hrx6(Vn5@Peg({ay{GI(xA@S3 zhJ=IaI~Lwhqa#0Sl!}Z89o!EZr6_n7HafRX-NB!=rvo49FZ+ZFVWYEeY6;cfj1ID1 zQ_Q~{hmFoKf8kI2^ytWN!o)TgkRhY9-0eA~b2c4VEEFv(W}Sl?ozD+9q%=>agR_T( z;u21gA*16{qx!f*nGR?=fhJ3f$&k_E96!8*CrR!rNwq0nU=SB zpR!4+@#LAA0+xPWXlzHJWtG~zLw5wXKT+C3x$5RE386k17o<%{e`Rdb)UGm zEA_(P+!a=uV1mIWAjzucwI^t(j|s+e16#6~Z4b3?t{(Hbn0u`J08~T>mPADEg-Ah; zldz#7;eOvAv42x{zhKtB!px1`d1p0VdiIp+vrlcZjVMdE*U7$O%c?ATogo0l>oY&g z^DDI^$^8y<7Vasolk%%yk@Xw$jKFS)JU1sA|E1k`e_)1p($1Br@5_`Vn(o*cm^Liv znhRUfM9_1&QZ*3y-Mi1m2KFOuF|YlHrGr`d>8H!+!RT^V)%EfxrLq>s9(k^e* zd2nBvd&vK|!Y}5pEYbvnp&|KGKxj?dh$Da4l_r?jbzHPI)JPp~M<#jW@I-77IXnXE zMZ|gs;v!gk&r_Hi4&iZuJfC%(nv;Qsc$MW|3D>s16v!GqG+#?mSae zBlqn5$Dk;)tW_dZ-SxZ9vCF`Z2DmXX5aLV|A4i(5q>P=PBOPb8ZnqwPM3&;^-;t*1 zA=4DgmL~q6r0FN@q_^2`(@oJn>l0x{I<>prDE)nQ;>Zst{r!ggfR#h#Cw3KEe$f4I z2g{GLoi8yk&;&6X!N~RTei8JUSoE2Ar)+{ML3T`zqxHF_SBg4O+ZEYTCd1Vn_g2Gf zQ7(M_O?GD{sBHC+09wPAAi!+w$)MH7M#ayP-jh*Bblf0h}MV_Ekk4wP7>o!E1E zrhM}ew#*D?Z;LB2obf+`oApEDCV?$ELO)5)Sw1_Ynh6X+?5p~PT2*Q%Xk#_vNu}DIQ-iRw9@b15etaYa=TWk$a zhP>*uKYem0`__Z3yL9H>da(ca9|7}*A;HXETnYb${$l(`{YCrx{l)m5{iQ>t9_{s; zZM9wQT)|jH_X#}u%XN_ca{V*oD{;v2wTZ32MEd)Se~|tfWkx_$#LwH0NctJ^V9f*j zMmG^m&rG;JdCjy^_7X&FpdD^DhGKsNz{x`bc(d{FB}7sa^ zA!JBGp4=CM8Q8~^`$K|DaNl?0WImrjFv9T*DtXq+De|K59ZDqef?_P+( zXmXY{BUiE1vA--_ff;10*f$T4ESNr4)N)Jm@J+NX&n&j58D>Q!`4G8lzrhebhV^-* z?(-re-OAc77Qp}(=?Nk(i1(hct7e}&dTzat;g&N5!_Uw32t2OOmCo;ne=$qhOHDAz zddOf+Mo=5eSv+Ixk*I-*h~>v7PJ@R*z%tOF&D2l@*; zn`ejZKA87LQugHHY_r|(_l&2730sjPa9)ALAE;(0ZB~P`xw??wc=k^VwP?GM?VIIa zEZ%W?^jNFI?VtZ+{nZ7wZ)0b7YT~TuXDZ?$b z0^3jA5kL4V>6^nNeRF=AzSGy=86Eo2V4WM~H(7l4;*q~0eQ))LN*^+gp!D(o&Gc#T zOrOz>1tG2O>lPnSJ`}JhqH*%Cq)&rK`ZRu;z8UG4*4n-JWV0{B(M#1V)ciN3Zx$FT zeYb&0|ET{ldWHX5{-kV);pD&wChrC@8IorP7gwjWfc?TY@sqTsx!aVTW>47n7Pu0| zXZzdL>#cqNa9ochB$ShvX$~wr^{ZD5W)SuAiQvafl-zGqKuat;>|xl>?vosGfn*}q z5^*E!62>%YgH2zmFCm3c{0PKwM8%l%>da(@l8E7m)21++3un4$yl+TIIFV&~dFEI( zYx}Ljvi;Uc2G3%JERHFNGVg&cQLHH$=25E<0uhGOU{Ap9DOg8;xmQ>hLygmqt}>x9 zpDi4EeleBr-kn5OVV_w-4~y6l1CcHv5`J9rN7H;mH!ZG0AmRuffgv~od)uNvj&n86 z_oH$Cp&OT02@mlL^cds{!`XvFJcGc`o*~>9v6TThA0o#y{5U>DoPUJv>Cy!oS#b5bvgg zhG<&k*P5pDzH9nWcP;vhP4m8MI*+^N;7q>$#yL6jwhqFVy2$_P5HEXdVLv;@Vg_Ny z?Pr=@*0pq-6`wg(ToCZslHFS`!37foxruQwahbXh8_GNb>m5SE;>qC=NWmW*62TklbBZiS2CFud3ePYMYPw8bIEnFob11OEnP zK8J83$sV~sv|UNZ{zV$BCBg+9sUJ2(>SMK#)HfihS1=T_!jXLZf-Q;OY}XS1e%RK} z$CvH6==bCHA))Y5cFo&Rtz+^&Ny|ivl?_COLYcSu{jPo(0i%#W_1e_sl&tP#y_`P z82e(brkJ&o!2fDF=lhd#j`>&4|CRH9zUfb-8uO68_ z8+85ulyj-YAtXNr^SS@BpaZ=>Dd-m(bWFx0m-yc==&Lb`5bBIC18WmwmXWp@$8EZ8`WAB&I-M@ywQZBKeN?*$s-)-^{W;K7E+< z9C6i^AB!Q!aDl17e+X}{okA^^F;E4(MJB4%4?bFnyCpUTib-!dq;y&-Cn-_ zRe0k?>=jIC*5gsqs?elS{==3$}v;+KC?$|lDp4X zM}IcE$vH#y8~P0B4Ao}{rvIr+gCaKlz0CQR)=-PNvHt<62xJmd>4LHNKwNk@0xv`m zf)H&8j*t`!3<>s8i$MOC6bm8}{K!H5e}wynkRtm3+mD41ABz#uA6@m=-ZUPXk~vqn z*!?AXF88~9KO(<-Qoh-|pL+?0JSOGyELr2YU-aWJ|Fxp8bj?Q|pRjh}TK&_DlIp&U z`=1eg)++R%qMvN=Cq!SoCswU`Zs5Y*!KdqE-nRMwHqqy-0DgmjuvUWxC5I*Y|5rqR z7#-tf`%d3%H(4m#Z)Zr$Zxemad92^iXRH)LHV=?k)M4$7$jDLjav$%Iq(H~feUxWGYnz~;=pyq9ATw|PC ze5&#d`HJzsQ}_Q)-Tymv|L@fO@0hyBns83tuf_b=mP8A@OZzO%1;FW(hZS?(W&fw< zK@EqT2Q~f^C6T~{(8m)VzO&dR;#RuY|jWmBZlU}#jXj0;%shep^Yz=?{L#JgD)I^PtB6SiAebsU&)^NjW9= z`~k}~$%&hWZAvEn!%Cu9lOg9pP5-eN`7`)b1gD@n>i}{65=69-xFsed>fZGT*svPZo|7t1jhpA)!5YE7a0D5!~8JHqakgcUu zWWBL+l;6bbx6^;|&i}r-eVd5TICE}vK4Nb3I06b7`h+kr+$(ffHwjj~wzc%e( z{OfjvIVOW}5k!vxbNk~E4v+U^evuXz2pwcv)F3}R)2osw$e71@A!9m%?h!`Dh5LCx z9)=_CO(KSoc?Iyk$b;dTKg$sw;fLqllX>J`>>ABCMyEWN^t5`pHT*W`8!5H!T>XP% z#<5GbyG&Yj#OpWoWURqZJ&FD2PV~xfVS&>E|HU6UyUJ&YmfNgpO21%yAelg9{$Lm9 z_>~ls6tnmB3&#fG=vZ7}_`rv8SZ4VY$oxKiKlw1}5P=BuE4IM|btVx8)3M>-m1Lm6 z$9{jf@R?Y2Ea0#|1_O_=z_Jv~zqwi(gjH1yPA+yjx7l#dTh-C0Otd=wzFp(MCW+Wu zzVWDxar&9?WiFdC8NUIWWnd_5dM-5K{0W-B*yA>fa6v)1?;ebmP^9_|W&ZL9g*Y%D zfwk)YT?T{@zW=-%Gws3TATLC<5pMrk;vd;mro4NaXPI|Iz9~lF)>d{K$GQXVFH3(v z{Iis|oo=o5o-}!JD!-hMu9aiiZ%8@DaHy1L8=Cy35<>cygzx?G05Ph7nsrvD=z*M& zSr6EM%Z8%~u3T|l0()gZ*+NczohNUy+ej;q)-%h zqNk>snVtswYztkNFZykj-?1Ymng`vkEGm@6`5Ft!IQ~t8z$}oDSq)|oY7v95#QOhs z z-%#s4YH{@ov;9a-h#|to$y|43n#PciAlS^8Kn+Pak;xhLndc9V+G0wtu4X zQwrN`E8GxczRe-?)F$!C)BkCeUvhH4;PI^dlv7wh?e}UMF#lbZAE%=HTlw+6*uRw@ z`ssfwzdup=g(8(-vo&Ysw-GZ)<#(l}J^tm0^JWQSZ`E%gj$Zf6m7fgPE+^a-pXeZj zqsH<_T)U(g6TNY)-!3CzO%a;0LtGCnXpmn=m2C>J5Io*&vU@%MA{&F8_MhAv7nN{- z4TODxrGZPe}5?QMCclF==AXw&5+!@{w7 zphdC8jxCkqELJ7anTyn1Nn{KDtmIHgxw>jv!4!)m>K?kTwuMCqX;UPZ-D4xJ)y4f{QmpR zNPy`!$;im^^Tv8I8)4qOCl)C;SZ3ebk4WH&h!vK}nor+$FFr}$W^v3qx{}@EqYZIe z{2!6u{k{~lvyovnL}xdraPR*z$WJE@mgeDh5kz9(4_@Gznb}sDkuMC7TdZ9DVfO`N zyDIkg+Swc6{xx`x`0uut7>oWP(apV5W2#Xh!Mo06UDjF5<5S0 zwZYBL+#mT9>0)iEGibUH24PDV|6fm+l)WFTz8f-G*)!WzD<|(TT$go(G1GQSCVSn& z(E?YhxIXYlaJ6wrTygBaB=FZ0C1*?Y3r0$3JZqz%q4O2vs_UPuzS}U9AZV~i;xPNW zf`c@~mA1h?_eWs1X-JqQvu986uV+shF-y1za?sFuI|ycY?9<+Cc4Aulvxv;viFy=L|i`8!_PEkZRNo2 z{KW>z{YWDc5f{-v(-2H#&3W-Q_-<}BldkNW1d4^fym|c0eC&`nz}*2HANa+zF4Tg!pUC-h`p#(x{zU)M!p#^XGKoUOvUa>c{9pf8eM3HYgXbvrqG}+T)()`+oRm(|kG>*NEY=i!Dz_I|`qU=hyqY-*iB-)y&LRHZKq!PBp>A z4&%9gGg!7P?ILib2va5}&&1j@=cJi`V_78q-P3;GI)s%*f*|MNe61HG6X~t9bsi%R9_A%7!92(G_Jki5ek zHfYiX9`m2=?n|}UENh-wEN|z@UQVDl!(C4Ni2U}iUmzLv6do$0$i+FA1cuzNZRqbd z*c1^~G#5siCmD}FQ#2vO=(jJK9A9BsJu9Hk>h#x{4;_1r{_b)fGe6lPL*)ms(;&LM zKiC{cH6LpU9Tyz&eU;Z>bvOM<6ik?hwCV)|B}7D-OMB&#pO&t+$#5tXJtC?-;R+ z$iDP0!Ab(NQ;q$&x9wq%{t3t<+BFnci~WzT(4zB~!d@XEfka&Jz=QJG%WW`RrL$IA zmykmI(aqc>#Y~xa(8ZbsBaad87eU7c5qW|KJC*1&6U+SWA`36mnCIFfNaQ}1YX>cE zu(8?-4-TRBx5X12fv5j5}j_i{M>`%fydB73>69B=A52-TZ{|JC! zcN`Zp6%_ke!il_forVpbu{@{sqE7p*AUB}c(}WwaML;oHN%@gqIIL(e3J z)HBI{?CTf9Sc(2Co8E~Sg#-=0o3Kpcp1h>DZpH<1icj=khQcXykX-s<+en%LL}z z09ekVDleTSO#QWL5@wKEwesZo7tVXzjrI~2B$kcHUi!M?W@y?MtR|Z1i3sd?9kWeo>t-f#IMc)FhzTm3A3n1lFT_N4*p+tX95p( z_dR}lD6%CaO;X5`Qb;Psn6VR)5QZ5$gCR?s?Ae#>M4{|!wq(hggeY3bmZe2S+N}L& zh8B!z{Nn$8=6SuI=c&*A%x6CHKKI^p?z!iji=tk|vZ}=@HReTDKA72n8Y z$9A;KWu6OMl0l08@bZ=E{N=wHuvx>zvxVMoK>2pukB$VspZnMI;!$W4(P(tB4Z82> zLC3tRmFdR6t#M){^Jz&$v?QbLdB&^x9n2Q9!M?yD$8R|qQC60IE-qW)h8p6Am+B;N z4cPQC<6`5wb=h+A9~M9K6XTsm_wFm@)G;Y48d)IMeDSj*x_c8KL_r}eOT;xrRyuhN z_yAaN@mVsge#W+}WP`}!ZG))(nrQGhLbkQ>TCt~bf|EEbV3hS_m;Pr)2%4J#D=uzC zYy@P4{OyEo+(yVL?IH61hU?%;!P7^5^;!r2$3_TdK4il=A8uQn5kmc2X<-FmB3I>7 z@}N*U=S7FY5ht6ii_3HU`tb5t``=A#ZHJUZEGPv_6omUr^<{D-W?(PaAwfhd*dgw= z6I{VEI*|B_%0u1&rZT+k5JvU+laVpVH0IrD_?sde3#JJ4mnZJ`Db6d2pf-Zc3PM_= z6i~s{F5_kV@vpD5Oc>a1!V@+n%ItOJMZp%uW}MKWjT8P=87Gtr?}GieCVVz#(;HKg z&5Fv(_Tc@Yy?DGWe02GE``Pd}6{8dQocvR4q)JMwLEv+C$BX}{Vpz~?0^XI@1Tge) z+`B6CWb<$HWS>=aK6VqO`;}Krf(fT|4Cj^+IfpZ+*3d+ebvr6H{MuH|XYkEv+eJ;m zHQ>{?7Z)E_zEyd=3CmCP?sE3&5XxSq+iD+hymxW@ z;vXMh9>4f!<64^=J`oF(ye~F$BQ6p%P!`OMV4@Yw4Ys$#i4JVciiOYIIRqalAHsi& z9vx(Fi7Op*r7e1e-|3jva7Ta@<~aZ<7z}{wFlOkINa(3;;j%IuWy`}bSp!G_)DDgb zIz&3y*dXjs*RjiM#zm}z_qecfVy1FtUK774&i7uvv%lm9d@bN&RM+za5fKSs+u2XO zgHkEW!*+44>JWdA#zn2@@Lu|X_(2N%GU_M!!E(y{5Fo!SzcRn7BEOmnzdHX(HGXA9 ztSCFZtND7jAD0ghxMb^-C~$7ALU;eM>jO}*UD2>>vCRUvOHf_ki-2NtSD6f^r#_#! zH{U-UP=f+)IUi$&u=|x?v#b#_s-Q5~|7}d&O8wrzV>2NcauZzD>8X z__AgF0oy%)i|Ed^$e{f8&P_Hny14MbE`j2I)ST#EL*#?2*GOIg{bOoo67hm?el0Wk ze+4`61O8A4Xj!SE(>qW^Fn`A)!&N`yUnJ~w)mDO4x(brq>>)8IY_qszJUROD%Z0jd z`EPP$GS58T0NbGGl>}g)+{%Pi@vTyhuD&=&zaQuy6E1ZZ#Q3W&02c8qZTq(omOM81 z)QZ$VD)A%3xK*&phQ$tzUzG@!J2ZYb{Y?(1&)8hDbdFKJHX4vhCE503Eyhy-&hZoo zT55@|QV!;S%HfZ)4J(Ob`7Qq@m4g%%+0Xk7fMq@Xo=p^|#}{wCEcwdi!dZUDU+27P zuT2sbSLHGR!p!m~NW2MK&hzC97Ci3u3Xm zAN{S%-Tj!W>tf?w#o2SiK}&b_R|)f!;zI9KN0&YL-6NIEtj(+(tp3QIN6z11hPuZQ z@qg>GmURI>+RlfR@3x&IV&!8vwumgn{2MG|`}6v`bk#_lT{UWX!V|7_G=)D6I5=_8E8Y4DuVy2Sqk-2oKdTi6=MaqtbmtY9kryx$OCSVTGwETKtO*!3@h|+ zS9t?Ud?1opdZPvRj&2#n`6A1g!Aowy6K~Zs86vtYlhQv~dH7$rYCH}QAiF>E0Pc%kmVukd3es!d>_vW79- z4vu08u(5<=>Yc#hOF#B=##ms3dM7Izg!PI(G$}Bjy69XpxM(&!40OwnW^vFa=1C~& z+M|zpSr)XpsCBJpfk!B58K9+=iftC)e<4GZI0afwCTZM4Wtuw0sa_uC9kHa*1)tLX|`Y zTLk(_vWOxEBM|n+P!z=fjSv>T9Zx}ICGT{dGO3g;`)WqVIbFBd`l0;!Ff5tyA zAY&xB1QJXtgKbT=l3#w~@7inF5qvQT-TVSzBw4X7`db;})8fSl&_cw%q4=xiZ!UtU z%kivtAZKJM)w+~pukLsFM;8H_kPsOzLXXJ)6M^}}*j9ThiHUxxA%gwT5;B#X%#x!W zz+mkvn0TV^O)SE~W&!+e`5y?&h8*WyPx0Rq79|nxy)Gu{Wk&r9gGi zQWCdNypp_oVAs89W3iCsGJ#k@ov_OU)3P2i5u(DWU#R|jGTHbSnK1rdT;X=Z48X0X zoj@Ye;f$Rsxp9%*%jJQ75_WlDTGnN`K#fy{{09^9HvL5&bf_iE?-h&L3TKq*BU7I! z)IFDq2s(2ho_DM2a$#UyEBtO*7uB&5r|Q`B-xCJSUxY!gK40naFGHh&zPd0};I(3` zi`&BsLaACE%ettKO*qxZ|KB`Eyre<18%2Q5zZLHpm6$>zU}kYB6%pF;$@M8=Y$MlZ4`-ahXC zsJEb1e6i07Gb^pMq+Z;*E=puGP9;M3-;)a6U!=kcM!Pr=cIYLDH4JL^D=G)Obb9mE zs>Gh}Q!4M#W%CTH8(utrp+AasYvp&#x@Z$RoZ5u`KOvPxt3&#~NW~6h2DLG@gPK_V zIfebMKmXU*M;dBwA?~99WrQ^x^~e3FKdPCTn85&6a4SR9&qH54fVv2Fu(Wgr*rA)S ziu;W1RkEPCFsYl}F*+|^_J3aN8;AXT$>qNB-%abHu;_6rEQbGyz$xap&j0*Le~O&p zFCyQm3Wr(%kXESa%M@MK3bpVtv$luZp~GP@wSlk?$j;MtFZL!WOC|eXOUX3{6yx(&FiAZ7;&mG#{b07BwAgq04ban-lq4N-JR4($@umU%A>D0jwNfQydE=@vsM2c#?gSA@qN*#*%&rqiM3Epg_;}}#^4y79z15-~5-8U9ha7I}&=s#mBIb+Z65#vo`Cw(Aa_?hNYn}65ye=fwll%6&d z6Sp|Euyok&eAi85?C>?9M^uW7-jeS2bB}x_MI-*RJeV~K-uyNh+zD=kdXGP9fBkMl zhk5;M#|rd&wB~+cdNWAaXybi}H*ew>r%S0hSSw>omiX1M)>;SC+sbhEw!8md6D3wO z2v?TV`DHMt7s%GeLL;xlg_0L8#B+5L7TcalkN7Q{rmI(C5uocwW0kv3k z#tu?{@4;(bzFwdZ9sccz4}Q!`Q=l;sm)KIE=Nr}oA!@MWKnS?|GmtNgXa!AvhUZzn z0ZAMrq;g;Ci^8Ofcx&=4f2hmf{RIDfdsQ&pYT3szGBbpu{a@f``MP!DFP4rOP;3z~)>xQx+rm_1WbJemAWP0yCTlEdH~}j|}P< z0VpC&&>3w=6>Cf9)r9WZocvXo89nq-^8gYv4Px%Yn7K&7pU3?0V`fgwwO{d1j&^4D zC?-G8#zUecwsXkxnX$Q43HFQh*5owSmVth=xb~hSpR5R zmrh}gvs2hC%f-SqF0}tn`WIEyvICAzhj287&#SB7Hrc#sfwnVXX2^xh*z21G6w!Q% zOjf+%;aH~mc$3HC1XB>^8|LwW5tcCca=6&;Sr^JkoRl5@6Xx{loH(3+C1r6$ftt^7-56twqU>9B`TEQ;tv+Ity zS9Mu3lTWk4Ggv<#Z@ZA`4{J#UWnp8ISnxLsS<#n`swrextufpd6XA+YGoO5ro)CIatX854=48KE#6REWhU0r!yh)x z)XDs~2DvMaJl4_7`mbdYF|G>_oURMcWtJYUh|slm_1yfB?At1wB44DI8>#45GxD#l zo+UUPKzb0F>WiS_Li5MIu_Kae(e=D>c0Hf}gz8#9Pta0N?temEq1_mmDZvAqT+nU| z)ReF)Ptg2u#Y&)QE?779+CGI8PVa)0-Qs!w!#qrk2h0Q4??w&pWrw5T`rSW0P1uun z0t$~!t3OZ)65|>k7T>7$A8=k_M&rs-_xWk0gcGe`q*%|4&Tdjpk@8>yoOhflBwa-o z>Te@Y5H%kywolNE=~iIOj=Fo1iHJ!<#kDKdR5u#yB5_{n@`TRWVUekRoG*eU3w6m2 z7I3%?+D!Q+2&#D>2J(;7bn%oyH!+Ix2b2s{QPzw7vWiWp8PRoiRn`mbB4vynM~2f2 zu5IZxQpMxxVh&{TpVm_e2B(z@sa$r zs&vf_xGeoGs?yg;w#P`7ftt8j!~uJL(UM&>F@GtkVx zI|N6hJJNZG&jZ{9%&Fz?3m@*FSR5Sp=jWFP$1Q4I4?aX+adwSw%bYQ*lQI@Jb=C~mkz}OC9^|N~3NmDZtLovo}M@kQ=-6Fq!;f{L|agr9~&q z_TKAQd~ofCc_>&ck)I9g(pRT(_SKnXHEVDutg2(qes;!mwRwR9G_1|+=P_b-tQJm( zHo{b)N7uXk$#VWas2yA!pa{1%L9Jq~_yJPrf;WONxCuW%eclS6KU5vvHeZ+6LYW_+ z1VthREl~G>%#b#g(D_qW(YL7Eqf4X-szR|>$tcchqu(vBboBuD)~**)i)-PMW8P=E zLY}|8E**FlX9u2JR`CXxD4q~Y8=L(02+SX@2b*6kEh#1Pvs@t55@5A(rYI6En9~Rc zOhqB|A>U|uavK?&2s&9=a?d~3%zA!6pynMLsF4MFf6@vym6*WM^M|1w`fxO3j4KuZ zMIXtDIc^ah&xbkjL{N~1dN<0zL(6ivu9A^59B!$rW@=`QFoN45kh%*`MCytP3hDmZ zFV)2!D1C}8reeTDGOlK8wZ5`n!6Gq|qA)BIBIe?{j3#s{{)!?@B$C0F8M%@ObBQ6A z2t%mlB0&lQmW#y-W`enKE#o^%IxxnEY;94^c@H z;}TWh;;IQ$e-V`jG5FU=LvK(cj2zHY(EK_HrBqRqlKuRC6o5w%hBV@xKZ11eeLuHU z(3>s4cK;3jaB@hg${8%k?0542@6n81W1kU#K6uqjqvYlD1vqj?d~udD9SC9MbaLVS zu!egrzhhmdJ`!BQ04&bZ$LK^H!npc}FdR+cXv1e=2kW;1gzEA?Bjr$CUCwyEh}XPo zg2R4qAFfI$04U5HrF^XI(O-zyZlZj*8k>PnDI||0>((ac*7POSfl%MMVjSM$*1s)) zJ{1GFlFu{9#J%w-7jS!qRc5PP09BFVl9>US%+i#~|DO)pcEcbO>fV>2Vn%M)tP8#- zYwVycVyN+~h3=FJ(?2A@5$LMF7VAlJoT`KTKM^3lItMMTvT%X34E*8QQINH2tMpS?9?x3*J?^VGsXOi2yLVe%Y_O#{dW%WdoyL3XbGK_huwN zzz}MO`Y+NHZfS{J;mn3=pP)n}IfryvzHiyhB`eo%{@UMZ}%>loV77xu}_yAM@I#qZ@06Ww?CkUC<&qW zodLg98&={q=H)V1HG05TQ<|WMN%>DKe}m-}m(W)k&Z1{9g!L&?xb^&*L$F^{#Q|Z# z1A;T*NmFa^L(G#WzBlh)7p@fo9|%liebk`;*n`baK+bsmYt0sxN+tSUlHY z96^hb{VG%pMA*T8XEI?fNh2&#{R4f8YvJv%`h!)`M?jmRehB9AByu41o#>Z&8mnuq zY5!6&?&`DTu5A=ilyV^bWivDOqg%=*-3295+fsSZ+jPOd<3WwUf|!^HH(n((LhBQ5w$HyNv9oR)(*QqlJsKJ+$2OjVuj zO;Pj8eApjuf-wX^FoL7mq%kK*zKCD$&W{iGFW^tmxd16-oob~N`f=tga9H~wJ_Kpd z-YcjT%7m~)t?qF1izNttWLZR%XCZM?w?6p6e)zYqg5M*`mtStO!epZg4EfJp>NLQI zA2lX77=TU=#tkoyAmBB8)Rf?zy(gauB+32o=}-jz@J$R zHbB)9x~y>W5_H!H0$ou`;B;z$uwr5T2IMBtTR;5Kjryu-oYNqJl*F)P3Fr9c;)9MJ zW9gxNlM82^AaOHHAP9!Dg^>OGNa%qc>;X_-CbKU58Rq3}(NI0os+e(l+vxay|10<~ zpyifm%nt%M1lZn`ibe$eg|!ZOu%4{K8=k7{y^n7x!d07 z_5!E5>)!NDR-VKMC>;p?tMWJiXa~2!jqo}_Al%m!mQ!xZDwA{v)=6bRdlG+y8^xkJ zMDsjkA|T4J>!M-T@ji-`P@x-?OC3m%j7Az3Iq7Q~dGy zAEqD63t>~ZPXBCbB3I@nUQ3ZbdLV9kNd!Sp;a*iKQe!{(PRX@;k-pnJ_|v;qEiI&b z7$D;=AAI;T<;_66Y#DWgojo3QU@}3l8+y%t_HyW$;*}__&@l+30{-ko$4y@AlO$~0)xhg-aeG1J0$eh3$V!tB;?J$h;Vk?42zfj)`E#2OgQ?@>55aV7o;S*p{ARh(9(a5OthRe4bR%1MjK)ZDJgFVMFf=;l`Fq z5ZK7hKQo=Y1OZlz2G2f)D8%BAjjOV~tC;$WWNyy*g^xiU;rL*qK!@}Iv~hz=BM5M@ zE!SkMwzmUAW~&FdF7C_4A6!L;g8O~5=a8Z=H=TbBDypoNZb&BxZmGP$zVVkwz@A>y z3Y(ALO2?nu=D2a&-qW)gSM`bZpb7EZ126z)r0O@$`#vI?K2GVG{+xXT{zO$>clO@RC{LH z8z=o~@EWU1a66N~aLXbHZc9&;#h+V5h@ZvbHhrZCBKS$m?Y4$%q*JpA0$ct?#daZ! zA4LWE$A=hli_E2wO2hU{gP$kuf(@saUAp^!dyz89Dyg9JqaEs?AJf(;+SP8tIPd_+ZNfUiTiASVD6k%BmU&J7621p%{@@L3+pWW-puQa*9HydEOvD8Ic|2P z1i`Mqz?W3f!e1e|L~o`cM)D>8>^ND#Q6|=K$$+uUyBfuh53eP=JA}bbK6^LIzAPm- zaDI|>{qQXQ>|%GiyqOK8mn|soHQhlgG_scL$_Rqp^OYJHd~?*IWxXxVr=aE;;pvj$uWqd@)jtdg`?w3I5<{c3vXv(Gl(~z&#h=_@08ragI9DN+a_Z_M_!@rl5@8lI6#CbU$d=-dV=64E;KIRBVI0ZLxO>;NA=+< zwi=MSup9I{jpTDZYZPb?0Pxz{nqO$0#tp84Aizn3X6rkz*h%?})(EgdkB;LHE^udJ z{$|f_kP5(wTF$__QoK4GCd39exBCRa&7(%*$c^qfl&mMd*?^@{3jqr)F! zLHqTdNF6fi=tA(``x*8?d>}GnI^Sw2J|GB+(Kf1wIBNsJg>R3jA+A3)#-C!teqzt9 zH>yDC$KTw~ReUG3R#r+AL2zs4Yo!ih6_l=wAH7}%&^e4hxBH6vGp@HqAs+raTeY-O z1=rHC`H&#kS#z9~n6&_cgT$>X-0JzW@n_fSQj;<3z@nI1c*xm4!W^&NFTA5On+XD5 z71e=U?`CdD2>lW0VZf~*{NZKLP0l@dsxN=7T3ZSv;rRj|cmSn^3W9 zZEr$MYf;rL<-p@Zt`rKnEckQV!3Vt z{y?_*;lAU+`oh!QZz)Sxa;(A7JIO&=ZVLHI)y=Xu0cEmJKO z(7|4qe>UdEnhxU*!hmO7@k3FbRI>PXChN^J467K%?r~%B&9_-3gR3m=R&1$#w=O-f zlOP~+ljbFgZYx#xZ`xwU)%Yk9e~93hS){?YATnObts=<GvsF{ z7gUoTkj#M|0zdV3z-vcjGupF{9?*gyxba`pXuAo5U?jKN$@WONbSlyk#+)h&z@K1F zOLgEDIZH^a$Jx&#snhtCg2Ffk@kaQPAQ09@kXb=UYm@>ixY}jBj6dR!u;lPL`cYYC zVALtD_a1VgT6pb@EbO3TAZl2fp$ib>rr1Le6lYw-N_dY8D<@_uXXZ8Wi{ei)wN-tm zZtZtSRD0yM>jo8rcn#(G+Uj^}<6eRw`0XlhK#31TGD~l?;NHRAUrZ4iem>kX~?8 z93O&P{vi1Kpjq4;2MB`W(&NeT=g6w)VNmJ7DPMRxe;`<7jv611_?%?E1mi1$z_|1X zRs1n}nL}K@BnW~_4=cc*VB*}vk07UD`2xueB&=Sp zS$J*Mq0c#30UOmxQwJ+UYpB`pvnG~Z-Hp0(la+|*imEb%hMEoiNE$g=kQ(a$=))pl zlxX1Z4(p-IpAjR~AV8w*7WOyjFE)`8$MR$G6H< zzF(WTFcL?R;%GX%%k;A5%eNmXXK%k%Jy?BbYe4P?nO&LZ+9==YE&uCNPLE>=t?#}J z=$6W5aNMSZ3Pv`KOk7trH8)SUyL16~n1zmxp})=-#Cgvkxch=$_&2jGpdZ~=)IZ<8 z@i9?HmDpX{P9j2?nkWfKR7-=w8;9)Tb~7}7|L!Eg5p;}OLPcG-oO!3^I}WHYgq(!f zU#ql|mROpfnJ-+v4rsea=h3?WwgAnn>g(!hx8*%w80PI6NYmoKyo)U*P-{rm?LrEZ z_P)oQ9@Hspw4CAcPy0N_gvr2^RJv}&H#-^|8$q1W&B~BhjQ4VzM29wcax?O(@b}X| z&RkA>Ia2I=-Z-K6?PhUODH9$;8ZiHLpSpL*4KpVX-_}c)p+xj{+KRDXS1obb$2Caw zaLDetWl=-Wj@V}7uttx9X5;Pb>>P};2eoaFzbgCMGYbifGk-UgT#CH3!vu2bhvUmx z(IYO$KfXu28J!H=-F29=`@+PBk>U>*kdwm+8f`vKZmguJ?g%D$`QLAh?-&Ok$M z$XA`f^EnSc^{2un+LCTn9_{@6<`%c}Oo)MyM|ZW?#b?@1?_=c-t}wRO6@6yi zr}^W4K*e>h4|9AG4KHlOe5Lxvom4NTfV7*;=&R*>{K$cQgZARYt=7dgwSaG&gOWZ& z@U(+R!s6-qVy3k!C*L9zyvs{1?2$W6EH+QOZ+v?3 z+=uo^lYQrJw8`DP=~hdAVxy8Rc^31|%OhvYn!@5}jO*Y-JsUktZ0c_?T^*uMJ2`0@ zkv_$^f#Ji|=_Gj6FQq&ra3!Iy% zj##RmCndF}2MW30ua)L6iD7050GH}!JLM&-@p_SW9x|Z15hZ_W7qDCna@uqgYagOY zFoT{#ou4UifalV)l$Pr@Ty(Ycn<2w~DY|<$DrjEo5fT7WKBnuZc)LfeO*M3abLTTR z#(E=-z2Uxba=<-d(7j4~!V;t8Q$A&Arns?P-|aJokQS36HQ26hqc(Co?TdDEiB!r{ zwmsX2eOj45M*%sI&rGh_RhoGe?q{T;yhs#mx}mg|RKbJ$aoT4^k;v$4X@~QV$EATp zgu|L!xWafdWp6!>o-F0|1QL7r)>S|B7zv^AayQ1>A`!uj1IO!`GCZLRArJX z3n|%v?ja^>ueh)e*K<=I^SpUgK(Tw~7;%PD4Wjsg%lZ1V3FRFoA01+5D`s?boW4>u;^Tqyo-&iyUjMiKTXHY&4?w{jne zf5_O7SAqWaAER9p3EOAqg7n#^2kwvWqrEhH1tbXC{e;0H&xgKEsESmk%<4wM^O7H% zcU*Mr&wXxa;O}oJ#lu7m0fWbc?zv7(oRmFG$IF}&0@4WYf@}0lN*Nd;pH)iO4&?ME z9JQU8%FBqPy*SBBVpd?B8PJh^w^*m+_L=XmOU}lhLVbdvW8rcgs-&-Ah6) zK)`=hu3Jcq znj$X-oZcHOyuWzdQ+JLflH2gXCiW{a+$TPzhzC~JhHX1Mp ztdQK-K+0RH2SOCK?(slN_*X2iBiicNES&JVHu<=jNYm-a~zakH?%msr{1%~P%x?tovD zf4cH6iEiLQ^1=L>de+UE^&fbsX{2Rc!vS2XY%SvPw2$fRs+v)LW_iZY5 zS{L$Nns!Yhz}B|Q@aE5Ko}V&mJfFqfh8^0Yrzw=$X4-CQ?{i6uO3CEFlT+cQWE0~B zCMvcP7p7p=*0e8yGN5qL1jZS@$i|l8jVZd<*pZ%w670>%w@gNY`5(5l)W5R5UHPfH z{`GFkovO8_ZjYjOGhN|5^?Fd;Gc;qyMh>+oIhwTLT4(R^C(oXVR2wu7%6mU|njC0G zjvx$PwsjqO()rb=hMtE>zJxw~mpg?+zhWF!I0MuoNHUZ1@DP2Z#Otf%>18&JZ0oICLYy|;`&+HF<$1S73o5k z(r>>qEEN%sZ=on>O;Feq;s-ilA6z#;v)QO7{c@}!z3W>#7J8}^TiX=|Yw{mkPgmS} zpKqEg)m&jhcQD%HDeR#i=kR#;*KN(;K1w(}Yk#^epsp`7{EjF%14wyKPm4@VX9J$GGeO zPZYd1g39%n59DbVDT%SAWJcIR3!s@N8W18GJ8WtFQa)09eB6Kdqn*c(Bh|A9*&FW) zP+rMx25`7q2eaF6dh=A7zV3#imM;r!x{T}x&8{(dYR_H%J>D+`9KF1~H&A%z&O(3y zI>5jdYENB3(W6J>fUlDMQTMrvv5ZdaL%x2vT%ow zcH@PYOeffUU3wbLo47$1R(D)3GwN{x+1|B%>NVBy2yNS{c1+xFq%lk(_GGrRE<%;} zs@N0xaQW-183)Y^m6JOAGu6y*Yi}=VOf{6|tzZLE(g02R{1o_o4!#j-DV)sNd$+8% z>59#j>Wm^lq@U%~Tj0(y5$Dq#`nOK-PbLGk-4qUbo%FD`$_O?)5KTnmt(no0dPrMo zk_V+!-Z{81c|ym}?(~psdw(|ROL9VZcfO1b__*A|wDLli{w(-&Kqa$4Dc6>e4V{3y zesGaojor+CdDL~;30D=VAu+D}m$ur4IqtMS9^u3NnAdV{@7_yXpBscLOzXEcQM`I1 zJE@Yn|t0lIK%y8j3_t2Nye)#Jo2SyGBd-4p}f1DiFnEyRN!Y9H6KD;2qZ zCta0^%Ek2j`#wn$pu>GoR}~AD1as7if*qsbWfIhnqgSCK;S8@h7D=uFR zkG|GolGghP`35G)+ML2z`sSoySc?)j^0}foM{|93DToPjjJ~-xwbdXQ%%t%yQ9q0#QVsc{gv1sisB``Ee>XD(k z2p{X4S3mC9d`;M@T=A-OrgwZs-Dz0Imk#JH71%UHat)lcpJmf)Xcp0?oA(YJJ;Th9 zyH$a!vVqPqXpBQv@mq8MG_{WR{V~-<^T-$u+aW874$^b^NY0o2vc)Qj-=4jqglb(( z6lb9?0(<}phJa~Hb=_U*Zs%@%I5H8fNU@!s+Ea1QW9wp4tD);V`ud@kKcr~O_atQO zIg@?v=;olpm-RPuJGkC{eeFHalHD*+n|4V@>_>s8@Q;CtIltO2f4VayT%T#OT`TUz zycRi-0W7oK`Y^qQ-57Z1LKO1*a80>>T$f$!mkj!E=Zc@}WYdmHJgs;`d#*P+!s?Vu zkCBoUGw8U1N_oSlk3))gy2Gxs$);w9YFmFCmv`Hcw9$u^MaST_CK^=Na9c8}Fs*eWRJv>Is##JZmIq7mZQ*8^om|o2dlmz)E4~Hnz+3F{gd%0>e$<70*8GC}sYNm9(>bSsFGiw{31vj0LE z*OmC{*R)dKjV{_Cip@_&+9||-uh}!#33<`X-+NClKv~c>s(u3``an2Ei)vcosB?$b z9c2$5YFiRP*%w|zJjP^zT7M#M=~S}A18Gf~QZK2=h(g&}O!7<*vQw*gwP!!N%@;TB z#c=GS!o{sRm3pK=N_qyS%QRj@KtndgizPC1J#?It<2GYVI+bbCg|VWAv9F#tkALV_ zdQUI&tx;{7D~~jNbf<=K<=$@_BCHIYJQ|03cNnC8p@( zyko4;e}-wJ2aCy=%wt!k0k_kX5V@yn)%c#I5mQkzFi37U>+yH zOpy|k&v~Ah_K|dhxT7`OfysWGku)r^{w*G)Q2-YKMpB$otrwtW~PtG z0j0I2YTQ!M7q=U{DxU)GusNo9(v--o(S^)oOomg{!{lkm5BhRr)KnTeyQ5vqsFAiT z*o+}^W6I1?9hb1Xxu;IONQ!-VE9N<$3Swl#@qwx036dkAyfgWq^<*eUa=e~w1&4EQ zNYPGmuD0IBVJsr*XkaUQljjL-M@WukoZfLDWf-TV;Voi2m>`$!7E_bZJU)qeiSI2w1>?l*+*(S9z_?wsQgMxAlBSFcJV{0F8NTzyU()Q|XWaT921Y6qn zo`P$h508h6knKFs$WLiZscJxVQOmzifFG%=m+-tle=4a+@(G8$7D?Wf*SB|to&~A- z1)9E~kH6-VoI2#+tm%15!{N*n<5MqyNATu;;>;sN44aJ_UDy(kW_K{qSt#smviu|V?wa0(Ff(E#nYRwS-dz`G(IsbMd97h z7g+c;K=vfth{r2u5155iLwkS>WtsF?rCOTDBVR4wtfTrCb9LM2rgweN->hV5sAz3i zA{yWlJXdn&cAEO^JLd6yI`B#hc!2F`Bctlh>|=Rqj8yy1>~>>k%WYArJMPu#{wU1r zRCCJ~`GU!I{uZu~niGj4O+=gcNO!i60r@5St_nX_l!$M0+2x}Dgh`RrUCu5Fm^Lok z$cKi~c@?>0We0)MI-#}cWr{)$ZxxTIdD4Dui-m4t?-5^E%({G6Z(*f=lvGq+kDizq{vjNNR_GeCXeiW zZh5i>AtD;t*bJYTm^?42?>gPG)pxfYY~tjcebL~AKv1w=3tiTBs1V!Z15?p7TL(ve zq)SYifSa}(cb)0EQZpP@DOz}DVv2O!iNuQnm}w|UYZ6SVkUAQYV!0>0Sie=Ld9|w9pN_#tM}t5-bJS+zBTj$bZFpKmV*=Y;9iqWpS#QI zj(#hA{X`$^atC~_Z1UEz9i`6Kb0#i>vzYzr3p6f}gYv}5Px3IUfPu$aUu)`o zY-J6Y?%Eb8QIa3q`}tmYBUZupQ?f9)S+CBLhBYvGg88hz;7FcHjB-(l>Al z5B0>3eu$lE*7lw34{n~Io-V83aK!4NUZL*IkS6}o%UrK6%J04(DGxiRVk{-G*}Q{C zp1gg)Qv3sQ8*3P|lt<-mf!?Tf9Z8C z>&1uo>NYTWj*`%MKK|}+mgk@PPl<-LG#sqna$C@2Ed6bF5gWaSQ;HUUgz?CYojDG= z?4OQY7!5+UE2-Sx0cAd)-t!qW`_3e0GxO)Jt@b;HJI+O9%9;tZ-Jvsdao<&)(V2L1 z@Al8veyuVCGA}gcuMU9!zGz%sqLSdq#v(0)xYS zsN?r!!pt8&=37ii1WFh&oV<#N_a{a%-@?s;1u)3Mgt?g?+0@}N%7shJGs%+I(d5Se zT*+%6MWhB3X-r&zc~Yk!jl;=8$b6Ndb+BI)K8n?0%=R!(&ONRv%op#k_c55~=fYxRNFfK2qOb$bbR_v9 zeUGyt*b<4MI2D{>bTo+&jC6f8hlM}J(uqIg`d83A3LhOEM2bL2#0#Yq6Pu>5rL#y& zM^AU*5-sf|3l?Z&O=33se_4|_SUJx8nTDK`80HtsFr$Qq!bi3-BZeV45F8k;1)W0^ z$2y6D&O$9+tp!>OG;zk1P%?~;XO8UGD6l2@8IU5UC2tT`zKpZSc zhv(vJ>AT#9>&PK1ciuYI&SzobGb!hUEW)G7_;3QzoD%%Ik4Cz9MA*B}m~CcHdJ)xk zpn8g6@Yx0vLg3A80)}LARIncf;XQL3Ms!x-+5c^Um-)wmNB;bafmdjAch7%rWVgk( zW9y#xD;7b4kD2?zp{>@2f9_&USUKVsc?<0>=gvhF`VU6=Yh}JOA#m9ow`8@Y3 zx*j$=bbsifq4h>y1mefebzVEFzkVSWcJFlsT z7y=2hAZ<+#l4`h(Ka2Xyfp*p1|d$wpA9Y4M}VbUnXV4^gm^Tba}z* z3x&Ey6?vk=DF^l9{tel{@o&op$^Stanu6Etf95sEpLxysXI^vtnb+KZ<~7fsdCmK0 zUSrwNJa|)T@B7`hjY;uR4aCI~P&S-?)Z8o=5(U;vm99H%d-E!k4QJvyBbo~-MzwQf zPnaost%b4yLD_>XvSHKmnW+Mac{YuCd|&UZb}ojpVc`K=E{^oY zt4^==xfPH$LWZ(o|C-9#8ot>eweVrrp3Q*=CXrY4Pvo7bVE+d4a{h_D7k-+k&68MX zd}@vL$-ywv+i~aOaS9=l2|?r8%j{BS2TjFGaYI}*ky$h{iRn)w`G*ptr@TaOMVGV( zA&1O&q{MGiuo#@hZ-b8t85bQUJ*H~Rq$_7_pK$%`V>w0%_eVD=A^%MJA!{_eWTue< zSBG(1WxDaSUptQcdpsGbp~J_$%PrXdSCRc|43-4Am>0wR zUvbu3*j<^wb(o1u4BO&Biv&!zs!LG| zKoCwAGBe%jGTSU~Fp}l4diLpP1mR*K+AEC$jvNn#5bgLD8&$|e4j&Jwg)&hG35oIB}?2|UWNsR{UUmR0PR$}fmjfHd;DR9S2 zQ6NO@4?QP{)VgFMeUcraozLu4?n#~By+y2|3Qq*9qrb?Xo#qR5e$%684dpH2;7xGy z*PEQSQ0IS|)?zsL5Dy`oe>mDy4dTKY#4%-qJ{03DG)Mh_^WJk81W0(OK?~$I!srqIGQ_N$0nT;3T2Hei zKw(^X=XF4La11!2$8|4$sXr9P`mgDOxiYa}1_${;B>|Q_PRZ1l9QColwY}rk-nIZJ zjCXdKI^J3k2kfL3Uq1^7g2H&u^s=@mjKgtYfMd(S^d+H? z>@6>8%*Z(u2XvQQsIgoa4#}QG?`VfbY#cbi{yy~NvThMg~$Q= zu?^l)z%E=w^x!t;^~hj$Aw;oQUQC0KnONLhI={RTKw6+lW2;JIBC;$*zK_3OID!s@ z7uL6|4r3y6ECi=56B4M*0FoBL^!qcIh&&6qM43@^_c(H;oEb&r0%kAFVj<-wk@o#_ zV!&|Y`u&mOOhkc&+&oMFG(R*3thV8NY$?H%2OJAo67VSBbXyGACG_RnLOv!BX0s4y zpf!AHcMNd-6qer38HON=EQC8jUNn*s1MuB-r@ADW2CRf-iL}fG;1~ne?2)icTfk(Z zGS&i@;{rEkAZ^3RNUd=VMvyryq}}_nyy_VSNPg6+8n%haYZVq^6=L}5h7|+IX|88a zYYRjWRV;2p2gxg2=%6(Hy3RUnCZfhd-cssy1LxDhGqcQVUoSHAXYL=AVk)swAFFG* z{=IeW%zw46m3+LB82E_OtchS(cEe)Fp~-cv%zvz|y&kpCxX`lIxY$$H=s!@`vW?ZX zoRb9pU|aai9oK_^_W9{$Ckm*Lz+Z9S)8W?<1Q;pbpS0&ur|eJ;xNZ`dbnufBd*amd zqrl-iM@v0;;DcjGw2gi)V-6K^4=%}fbFGJA1aprnj~y;i7SRyGH31nr5BCJ*${OuM z%Mkk8itW+0_gXU!CwO=PU&Z$=&ql&-{)u zfS{Lp)1__-6q0w_+1S?|V}OB^FUT3+;gE>_JmA1n#{fB*X1WwvDio4Sr1Tnr0}N1~ z{!mO@p9+PfaD(Z`@Axl_Mp%>{bo~$V!s?eBG&#p{l)D|6?$N0T|yu z7S{PvAw$*lIq|wMo&g$2XZ_TJsF0zCRM78rh9T$KdC^BNgbEqzv5oORHM|)>FOciI z{7F1fY&z|Mbn8?$WVXGwR-Al$N-zpaaqC$pxh@L6#tj7SHi+Qt% z_EgAFFEjYo7HcrTLmBy6V?!!rsQw@53fB-bq4)$uS_w>UCNUWnW#qx_OkfG|2+U`DV&H!C^&KPXlNr4PCwb}4tts?^*$W7W@sCnPFwHq+*)fy z1)SFv9|UH@>2%7ut?#=z6}$}JaW!~1oK6?ji|)!gP(g~{@DsNEa5_no8l!#Os9=sq zZ)NUrIGtLe_XQk5=zXZu`H8?4IGw&1>^AF1_Q4-JooH|aRv7$Z>5*s7RM7wSXtGH= ztT0Dx!uw7kX*3#deBf9I1xhE4l;U`1QnrP+=WV%7fzoM5_O9&3NQ#dkf)kK$T_^K> z&QqXtGAMn=)`cMPI}6TFKShDkNh@Z9(UHd#@Z4!_gK#|sN++?iR~F>Hpny#Qo7rce z^uy9gxm9!#-w*|yHQq_@FQh=}MES%&SNkUgkY%|QM$ult(&^Q{peOpmRG=eo{pkuy z7%ZK(Eq|zEE>8tL^q$dEn<-E_;iYGcB+sLQNN*zpy9^4HP7`@B6_sYdBSwWuR4SNB zJQ-|?2OYHm9s|2!Dz$nTkPa=y16rz-%=HqON;1zSN=0<=fJ^I zq;s*%NFz+82b#;b2O%>Qx}8@V6>h*(TG#vDTT~Sf3iMz7sOf>Jv`BULawly(*d|;P zqcj3j>AHxu;2}di@Cnko@)1=Sj7r}cG^=vl@Ib;dVci}HSeY%1JlWEs@IdVI(PibR z&SO+sf3NUncLpAu-DaH4k95Hpl}?0(+DYw3_L+0KgnCocCBcwl|BwbvDG8%Cv(l9;XKt$3h)?_An_0a%%@ z-6~0vx`zj%GP(vXKVd4x;Yvb`pW=a;v23^GAWWr()7uhcdl4kfac=Pym`awrt+ebP z;lYd^=e^m-U@E0rJa5ffnGP$nvgH<@XCZhHcWJq$YX+>$EyX(xy1em#s-=^Yx)oOD ziHx5rX=cIm12ZQjjed3VDxW?)IC?@xAZ0zAG=W<#A5s$X1DhAW;T+fkC(S*+4PNV2 z{eUKy<;RvHIBDbrFAuC->Id#s&sR{ag_EXdefCeBi64--wELX$1vqKAy+6)*g&;q> zQgD6u;iP%H>HSZi<$gdY{w-tU0Gu@0A9gC4tNVeiOKyrPa==NGzWMb$e-S_Mwq&kS zyEvRQ!=<$mTuMH=Sk*@om^k6(Najb4H)rOPi z!Jd6~{CarM*c~8!XD*yH);AW5?BYd;>0j=VJ`+xwCv`^ek3aVXT01|9<#54C^WFT1 z_^TVffOGE450Uq=%^ou4Y!AbL>K4*4_CmuK$ zl*vD*!%1^sMq>(N6COO^uhWmD!b!tr5m7oFkq7;@i;_uXv9fT?Cvid1Q=z=F`-_^QwElL=SvfEZB zUSImi6D)C7A=!z-gOaW}T%0*?JpoB4Q>G535=L2z5+BLdpPpcmkUf9BBo(6U`m&t| z9*TK^>NRfaUea&{-Z`fZe?!F!XqIgbDwl>S`%d;)_g(`ppzeOBCQAyYtbE+QW*=8C z@Zg)=8|4`=Wslp28gI+=0_C60-!Bt_Df`MeO-J;I7q~AYeSZ@tOxbpKnY_!Vy@1m9 zz{ogMe=*8lU&Gsa@uC;l9n2MU4Rt4svb24K#v?bp0B71$_C-x_$$%kIyymC0X)t9Q zzTQ6Xth)w6Fv`*lhwk*`!pQUq$XE#^J^``1>q&o&rl7=x^Nb-FWlwX~Z0KZL1I%Xa zycdol7-gF`>`G=l^8zL9q|}{gr7tz%dUT4O32#FOrx;}kxAY5xu6qG1?m0!Jv#5~H zuMQP5O1|I)D&L(v=zw}Ert`iTUS;uzynu*bM{6;<52o{%Z1*>{CwPG#kIb!`(eq$B z&uz5wJfET$Xge_LgcaIqOy^Z?oBckwdxDaW-@9xUQK1U_oWj-Cs%iw8ZL+}>MX)KY z6;A_3Q?_`5eAhaK%?qi}l-3=E{LJ`BPw=r*zx9{gVN+U}!6c3yZk|A?|MJ1_8dPXX zi){V+)mh*PHnlnRtDvpMrnI_TByaP~^90qGTleRqF~Fv@)=KPpcwWR4#7{F?hDQhW z*p$}LS$W;sPafcj*@=rLs2QkCK*kt?O=*R9E>{Ao%H6&q%v zDo+v{750FIR6BP7&Q<&u#9&h-U{y zJ0A8&GlAr;Fa7RdWzhG*9#k*Muo80P&_lZ6!*A;55>L>=0&jBxCxIC zHFvlJ4H2K(yXY_+6PxntmzuRP?m)~sL*U`KqEdbXpUY5$JNTM%dKMiWLSSN3?c&;b zB*+~UtmS^!R|WfHh?y7LR%dsxw@a*qd>Qsfj8(YQA;Sfz6w6FN#^eqY8`AK(Ory`M zAp{efH}A+#aHTLJHvt(FT=@yeSUSy`aGo&)6PvbEyQW`NaR)mqIXjP_2qre+p$eDe z4Bf#-FYS#(D6cWGc~V-k>bkW%sJ_+m;s?q^#XscSRB5Y(r7ho-6PIfa1d;cO(?Os| z*6Q*vaN1%>{6&8K#(a3u`^tQ$g4oSrpDc`b}F^a7!kK&Tu3lPUCQ7=$ro73Fl4N|FeRI{U`K^i5sdtvxI8!S zUduHY5t@LEO%7s8<}dZ$C;WO0Sf*F*l-~<0*$l2%w7NSnAd?ZhRiqJCGLoa&qJ)Pr z;CcAAtyxvDl702f!##Qu0}i-n`}yvNmF(SXp{JjEW5D-Xg=UU2Sji0K*Vu0wjseJO zmW0N*N`J48tJfZmSkO+moYKzY!j3y`^`F(pe5J1S6*AY*-sDcOf@Mmyp+zzC*fM@Q!5S)70o+yq1*{etIh zO}K1YbHTRm?BQ5&b*8RL`*B#wQigUYgq6nv$7hvX)u=yWWmB2UTk)&evA~3Q?vqCZ z1uC1knwCbor^fhE!ui}xNMrJ6n`z7n5ktjNo?lh7a_( z*SJ0d78_S}&FA|s(SgQ^_-=A7EHpw97hQlQjqFpg5_uswW8+ z8w0zusJNbmd%gu0o7AKrjT}h^$Ym_6v)K)c&8{v>6}fo~@OIw{4yh7YY;Ibl z7#5i@fN7j$?V>VxTERQ9d0n^{1I$)1@G08^Pb=UT9DMyangKo>)jZ@>1kc6I6nmF! zn$7?w1fOLqa^Y2y$~#N#hKm?rpPk(S_jGubLRKQ)|K#nb55Z%!mCDDH2i7tGDWGR)&3AZ=_W4qn$O>eUe7%5j z8kvm-i4Co8t!tbr11ykm35faumrc(f`z}&vV}PNYaM@Jn=|UHNMF)ecs|tnR zz+&_E;qa5TXLLZ^Yoq(_6)ZN-#f7SU5%w-kaZWt+8WtN>RZa8d_vv8Kyg*0#04z2p z29Lx$@6f@$TN?4n?_sg27Mk-y=>{Eqctem=;if@iL-|;IN#ZIUod2}$jJpEXHcJssI!pMGa9dun~*iJ+BI%os!T)!8+K5Rt^InN0cy-~5_I%>G+D@- zIRRRs{S2^pH+v9~kBQ7Z2Kst6&wrmMuB6<^$r&nT1auS)yA{LU;bV%tLl3Crs)&12`Ok^<& zQE+UKeqYQ0hk4c>sR&{s`YeQMCf=^OodI0ChP|_WnaC21i3{%g`;w3~OXox}nky4o z%0eV847T%GGQcs_n6PusOk~*~)PE`iS&kV9Qxxqd8A!;bs*zeF8c16ixy@l*wHj%c z=@X5k0fMAa_RMhx(mi^+sgjolYEE~atfs&QqPlt0%6FzC;P4dm=fo9_H!D&U)Ow$K@^$1npq^zcW9J(8|Q z96SR0=$tHOAOh>%`qq9zRwg%J3m~KGb(n#ybBv3=!$|{q{zBB)d+@k>S9-U5F-JhM>;_?aC3f&?VWMeYWLl3J3fTcfK*mS zaO5J`Kq6jpGI~igz_9S!3I*8AIK4c@Xc7T`3P{Gma170bSuz?(UZ2L{&ITgeeu9$Y21{;WE_zlOC z2=bw*MaeuKp5*g4FxBAeqkln@9%8KAeNrC3bqSfmk$(Jvw=f2KM`p_^wca z4dlqZ{s+D-G(g%J)O`wFT+o@2jo&Zk3+%lH8%W42eUkuRq}8o)lp7~u18F#GTT|vi z1E~kLGiDrv4Mg@`zjBi+4IJ0#H7h#=8^{&`!Qh?FG;l#uA~Sa%Y#<{0>Q*Wt$m@ko z--JqF14(gv8fxK!Fy4-4q?`vE$j>7?kA84NvT=Uzw6EE)fza&lJ`nYyf&8LU$*OIz zf!se^SeA;XfdZlh=W6semE~9q3I{p>q7}(e`FeNA7u)w(5Ab25lR_1|xn}l?N+mpm81VQBm}I z3|Yu2&ztFst7%}#QjxTEC}PAyZd_=cuX=0ywgj&StIUfm)7I3{AoLY|$Hc}Q)g0pZng z3ro;h8FMV_rQLTCk$tYabUoIMW+JOth}Y=rZ0(CQaHTMA^maHCv0x#)d0Gl)oJC?i zKcjfZS|(!2LM~nz{W7hN1}qos+g|C%M66hdI$t)gRuK{d*G*EN&?3j0g^Xt2*{*`9 z{~ZAh|AlB#V8cSZXJ?$MMtJZxr}C`|irD_a>!&Ig?67iyX>?4YjxQIUO1v2z9i~h% zxs|Ytccuk0Vc_?fQ{;{>TrRw>RC)dQGzEx-30Un8gUbb*6D0NP$PF^;=RcFAq{$EcCh*oYVxD3lGYIdi#*hus#qS{NpuTE{y&# z5SWg1pzCIjjd#$yHL!AFXw?7Ojg1uG$Z?jq$_5^9<|R1Stw8Qw__nX|)Gs^2%7v^b zzFrd2YX9kPN^;Qg8CEU~F5D*@c7_77pGR<>+W?mf{j;2e0kY`sb{cp8dk$PK+{oMX zS?wbQ9569HO+v?xzi%T_*&3gT2oorrzEx}7c(dTg)yL(Cv3soBSyoaAmkWwJh#adB zvzh;T`AV;Gk|rh>(hv+Q`TrPablGl|&CO2OaioeJ$g3ASbjnM{AK`}|yPxa39;Je$8gbt_Unx+zz+sxa z^ZYR?Xz!_QxQsA=tXwGGNdKW+PX$|Tt1=VbQJ``m_ExcS#bGMAyF63d>?Q>&7ZT6A zY&pIUx!o@@^Y*T43REs^Zx;_@Ls<2ygfrj>dfz5iF08j&6E~1T1&_Cg+B`rPOR#cb zaQ(5Iw_#L}x48YCLm&kz7t$^lCj=wq$f-?14c;E`c=KauG5d9dAq%5F3Ya><<-+~u z#r{R9cmcG_7u!sWt59i2*w^)M-BO2v{%Qmn`bOZSoX2Yz)2Vl2F2DaMeo^&?D* z*A;x5u4)M*m=rrUsCLNX{lPw`PhWqnEMZbyJv{qpW`sXjsk+I?dEAO=soBC^BeDMA zsJ%6B9|2e;YIxNKl$w%U(P5i;D znu}@AX24R+bz5%5JU4$(`&KH^KpK`}0h^}}pOXB+gA>XM2V`L>u9vAx+(`Ea5&dO? zdGfFnbM@2ft|$0|ET=7&WeTtqAEdp#nV8}aR6c%)f1m_QvGwIumh0B}gH887>#?iB zQXF?6dw~ztAE@gu9lWdoOL5iP2RY>ge;{h>uF|6gOR>zI_&Ei0{XtA>E!&-OE2f{) z^RsJ({6T5=R^ibFuoO=}ogf?dkpPNXrKPyEU@2a6=aq5YYXUexO?TO@F>d5m_)%QD zhXAITP7@ALgQeK@;XTQYE&_OabWd!QGAzaC-L7{g-ywh{rb{31Q-GydTCTJC)>Q&% zXz_?&B@RpRW9dg~ITr}vX@g$pH4a#cFVhsd4bBpPOuu@3>MeMkAx!;zf50gMsP0RY z{DiL0U{Y-PRQkScBLS3pC3|wAw{>Guy!!DxIfn`Yu)0<}rxLBPF)5}#<$t!XhyYd^ zC|*2{@*0!kinbSSVOt46VVIF|6`f(hq?qej(bJQ;1mM1V|DodyScQI0CbK7JTs%hQmnu8a);GP0;uXADf|)zOR;~1S)zI~0qBmHKBI=hQjA5%SFND* zH6E5?qs0wj4J`yv_R4EUpffDR?oJiHW|s({#Vv7XsU0lE(q(CSm#z^2VL89@Pb*l8 z7Y;@@Z@f(auQc{Qa`)tn*sloyjp!p>zi)RQLV2Jo9bg-?6I!fr}FKJZQ64Rq;z$~ZM{0r^yJNnfpo8({mg z^2f&rSl9;!u8r*UPtZHZ1HNf=$8)N8CX6{JQ}M)nH+7 zTI*HM-hpuR^b9{aEm+uJjBZZ98RZ59qs#6M=)l5$V|}HoqOuzZ)Bi#>(1nFPcf{~^ zA%`2-@@`Y^PSnCMVfQ)IzvuFES708+L#aW}g9-cFW&7X9wYq})m7!l4>Tr#1ymZ}2 z_7PWbF}YFT4QfZ2uz&B_`*8JES73dUDvu_T4WX@CvSw>0rWsHnP-UfXx*$9ZcAD^28i6MO`7&nLpt?W2S=%`#m|wV*ysK zK;URh)i2Y*gk2?}anT+RSK#q(=fFr5EbJ%Wv-!FExq?^1emaq%u&{4vIAt4;M90s& zK;;o07IwE`!Gqobu3$RphzZ3L7IxAz@7Z-BNZi=^l&-mqThn>d(eg9e72HbES^UBt z7WPtd%HFF9u0SJv^Uy_WcuMZ_qpf#}H@kwHTCXoeTEJ6s&$fsKbL6>#nM*8HUzx#E za!Gx2B4a9D!R?be}8ebe+zB*$keN>o(@@+x*ED%%Wdc@vwlWR?P6}1OyR#^CMNw z2(~?whHQ;@w!Wa&V6Wv4OW5{i+BSx5HunW@fB-4b7Ph^+cC%(>EcXSY@=MoTu!C)n zawq+JxR@_!{PHPdi4|;np4#U+&c5~m&-YVn%FJQgJ1aN+XKRZOFm}1s+-3&bUd4u+ z!?krjptbASDXKYadvo+R#qsX(0ra5Tl8;uwwnwx(XqOuA14hjadB54fwzvH1e3@)- zAMou^hxJ`2*!EQRoanc-@&PZd@QIvvhi&g|8^bBY#0S(iJ+fZz3)^0sd1+t0r4QgK zvlBcX2-}_|KYrODa-LVku2xkMuuf*?h9-VQrHsE z4}@X1H=RR%)&-I;P%lYHe)Wa|*sQ&zXbD|4lHtY>}Pv}Na7s0lNl!w#T;C#T%qD;@j^I_Xd`ccjO-o*#_+)=p2 ztpVF!j!EMKy&XQlA-5*JK@GOOwCF&#qD~)hVI~KMz+Bk&CVJLiZI3CW%tfd1wpSm; z4i1aE0G)eZ+XoiHws*L)R^Zbd7oagTQ!!`>Y?R(y{ z&;=N|hCj?ShHY;>ch|*29T!l)GK|e>6>NKD*?Z@0Q+EN`_)cX@YuNTW6k<6{U{T;6KFe2oJp{QZSR)l zr;#_Woq)j&)6MssVcYvzmwx#2ODDi~-D{JBCv1CbDKW~KubhDSR<|3qez5JOateK2 z^8rDgKa=WS3)|lQ>#3dI+|EF_=%D=ZXxR4TpIR9w8aRXHDHT>c8(`b}zL+gfFxwf- zzIs&aR6cBb`HurM_v^Xy{;}GBgbd+ zO99ySBsP9B4lr^7y;eAt_UW+gjW}*xqRit0W^QMvpT@zqH=@z2HT$qL$c-l(o*Orf zcV;2)0z0}h*kJuI&Uij-d*U<7gE#6qgDT5Wr4tKa+eXc0>aJroj}zz%$aDKB3frFl{l%^y#GHWTrf|tjA=viH&&c0WQbhJ~ zI6pU50Jgn7I|e*=E_MQ^yGkxL@WZxu_tmuIN=GLkX2h?!QUJESy^QA{#q*tjoLE+$ zfGBKxJpwyNh~J$6x7dZ_J`%9)9Z%uJbE-IlpjQ$+apP>yTy&pQp`|lu$#MQ6E)Lt? z^&z0Q>R?}eHd#%Es+@92s&>`qJjB4?1`RMh(ODQtUM7Z;U>L^y+`)>~`cZo;;wQ`D^SL&+Iz zABdlS@ic6Ed$>owN2NJ|c^2(YhYMiavp$<-$&d6;-OuQ0ftj%F>95L}@fu;`%u4S! zg$c0jZ4K|W=#g^*i%zy?#6-Zh_nc4h)=60>PB?(u!f&pVGbEQRx7vQ)`Ja^tvO8WSREON6PolDP&4@bO?ryfA^E4s z;GK_^8ei2K*y7 z`$)%NLktQFbGp<@23F+-If3YM=kIUQqjkLEK0^kP!J#U1(Frlk5DzAuaW$`y7K4sCFExS|k^yCp zci$sV_!a}-mXIg!enf-w&%VuF;sf7efFX~yZyjnq4I3hcSezfN@tp-5;=m_`4I7t{ zLHAM%$|fR&Hfyw=PVJ z!y|ULH1v>#kAn1D`D3uRqU6 zqI1gg+m@GPm==o%6TQ~2fESrCT2z!5%~EqDfRj3}v`>!vG`e$3@4=%!NdMdjQeVq} z>!glB6b*D7z6iGho-{_Rwq5XsC|DLg7B_A$5)Bo(1+DYGoL1BJVuZQ_vO~qu)}rI z+=7n5RD=hUKOnl@d-%xUQ$Gm7>ZC8Y>2&uR7@0Kz5wsZ54Shm^>ZF3gt8V27{eV`W zjCC%0)7ZBcmck9&?{6J!!JNYR(SB%w3zL9sQ6({=vAN_+b zZlJx5)k%_^DoaFi{HFLcx|zk|l%^6tK)IfE{uO$wIaVi$|8%C>RQiE0H>R)8iKIYv z(#M2lyQ`4sD2V7pMxv`^Se=wQcR%&)Q9o#94Xcw>tgC;Hob&^BS|K`}=u+>wAP1y(2R6}*V!?(zf2Zr@XkKy?SJleiiWh<3jB1F546+yYc7P@NP| zr6?l9K>$e)R%ga2Q=mG@Cs}OMY=j}Z6KBX3D8kbNJPXYnhL#h+{b$?j@6CqmBzNjO zMR_~{)ECYdKBElRNfXs_D#2Zd2`)3~L?;O@_NCnQ&W%3o7smN83*oxkDXE9t1O|OF zK&Q61ci$RtEJRnM9JwiHOmNSD6JFGrfuO{CVdgpXV^x^oDhPiy$HfGJPDS4D$I*{s zVS<~dD#9UtDhNd0tdm=h-WrDqF5~?}0q^!8=+lFk;PR)>C{L3P1~2Y%*u|muzGH$r zYv;YI)h~m=y4_FTbeF?|+W_`;J}g=bT#udK7{>t%uFH{A+WTA90+U+>6>U$+kl^Yd z$c{1}2oahPoiRlC4-uWJQ$(;%Vd|aqq)st@<+jsoS2Wmv$u6wvF&XL<;;T=#kvpS- z+`ha|!o6guQ*Iw#Mm~@m4esgdWz`Lnp-x$8WozS}6Ae6cGHOheU>B6Vbqc4L9Suy$ z$~HHUI~vD21w+O{k9Eq*=a#osdB{_AN^)iK`u>e%u)NTCo@ox;DGk154I_uiKx(B! zQ#bl4IIL4P(x)x1MvAZihpZ=g47fOY>9Tvgcs!WnmaVvq?MKHul< zt?11jzbDDnReYonH*a5VmmQ9NRVCIbZ);vGXf~t(k(qK4zdk68xuCTJbwe3aD<95` z-Z3p2cENHN-R*-&xfD4sL9=BA?1J;S;^I0+$UtDLe{hO8?1G!Mbw0j&Lm+0nH=k|7t2=?4j4fQp41Tk8H@Q!S zT#zev+e_d5(ZJdEVy|)+8FImi+?k4gQW*W1hf|qEzuCJ6a)xvwz!Mq0)%(z!Z`mgx zlRxes%DYEA&=W>5`qfiiwm(dU5sZGrLC&8QQX&BH*_&IdKg0AZDXQoWM3A42F+;=X z+3nK-ANN~-$$)q|3rk~EdLcK*|kzh{RUJJo2 zn0|9pPR3CrBEjC?(=KYcF#Q&Q^HH+WkziG~0`2iGn0{xn*%s!@MS|hj{?DO#F#Y6@ zoq8Ck7zw;?8mI`PSBlY(NAR~Sq`Hro?JEl(rCj)8sr&x6LT(QG+X z=hPDkcxJZ_*Q5LV{~q=N0Q~U%4ZJ<7i}jcokfP6*SGXS#T->oG@#6x|16&!e;cH4EAY+pU!V?g)#MWB-abL)T zoo5UYozS*1WZDE|?DMZ;6Oh((W!nXDaH`)tYNX~c0wY+ezjVEGbT2{EARODabz|Sy zwv!v%wr%sqwr%`k+qki9>&x@JyJyetIp2RXT{Wfdnx3w%uIVf)$Zie-Bi5)8AL1En zZ%+Xm&mCO$jOmx#Z?U_9bc2BY$6D1?DV$|PyF|L3vdPo)3oqS}i)VCBHdG0JAK}XR zQ;jmYVcu_NLl00VXE}b|mV$>yYvEhx3NvmvYCL|%&$rvSL}m;#KD-H~a#Mql9@v0Y z;GO@=Cly-e58N-w#HR>P*v=%g`!S=^XklWo!i&}+O7-%8VaPqu5{%UASIiYWIumkG;)-W}8L_^KQs#mlRybbu+M8T*9hFRRI>pd$ zb=gu-#QAQM#$p5N_MA1x{VX(m@AytD!jPcygSdscsa#P=VJj<=+KPUaJ%YW-t#Tnq z%iWSK(vy$tYst~!;D?u2=Q<C2^%@&|49eJ3`8h{xxmO%qMV zl$LwguHOjxLHhgRC{z0s#1UPYACLtn`slglqo5udpBLF^%1Wos_WRNfg2iA}zR#hX zTld3reG)Z`@i9bIz6rI6TnYQ9z3cB@Q_`+&vtx|ZOr3!j_it}D|E6c^-m>2n35W58 zAuR$bGWQ`29!aUhs#S|;175z;MBy3qANMQVJXsmC5M)BMmuo~(foPl$Felx21&e~- z4Osr|bMFcrPuIJu+RAg;XFoOnt_P)eMkveHc3q4`h}>3MD75PhiQUoM8Wt?_OXEED z&4xqg0-M2A4$?rXry8M>>qxqGbso8(p98q19d_+w9nY!*i; z?;Z(7crKwlBp2~GZH`AEP87mSm==>aDFMNVh!KECt2vqc6WSAPf;A)9PL_fr^de{i zazec$iQ}DATV-TL+vMbu(~`vmSr?tqR>bcNW@by`CaT`Z1=r|D$A56mYC!{Kk4cBo4QrVA}J3F1@I($H^ z5>=9-YI^t6@8&}9UnXo$@}<6bM9<$JZVHUaI_*3@4@*4j_ZM*49BAf`#1}G?2VL zJ!nFBdKaIGI1zNr30P-8Ot zY#sv#1!@qAd5$ow2R|&1gnkGbcBj9e)dB3_Fs>{9J8%G6Fry8KB%vz8=tbV+vJcx8 z)Go6nBj?YV_sY}P#>Rdw?Zf%&by6!atxX4Sn!~!v>{gG zYYq!?y%`@VPewFVCUj2pw~wu9X*Bn3t#OP{4M#Y|Q(V=pdst zp-NpEqR?}MSPe1HO>5+B^e668C}SJs+IJK|7MlyA*zRY-7Ab_>n)>y}~6a5Bj zVz%v;N;AQCw2MKho^LFoiI|m=yqy0xX}jBPZM)m)chbN84~93VKEk&Jj8iF|I~p*L zHKJMt0MG$pAF^_1=;-Cy-ds}L6s*r@Zpp*u6@G4vDOnK%h1q`X)OUh)*T;%=*Bzkc znnTEXciM=H>spUX{v0toj7&#@sBwnX!C0v+YN?iAPT4hEY9*ox*4d{ssT^3ll8rQF z#08((2AOy5+Rr9?(SZlR73=Y567>4*qGieLT&z-C(%X!uHv3!UbNp+2a;(yCYRu|8 z>YWYgO8x4aDZxk0V@m#LN_L?nO4lNml9PM*u_j*9-dThyM*vQEkF7j)r0_d|)#lwQ zL-+ez#L(j_YD?u^*lvA4fz{-z!QhLzbwqwGs2~Jm$w_aji7O`$0L0;2y=J;aJE0As&#!s* zX#ioYIx-#eFku4j=2L2r<7ZM3m#l+A=@?}8UVV>p#R@Q)Xd1Z)=-qQ2G0iWquVl3P z&J)dTm}e}T5_-job#K3;wvuqH1c`hRZ;t77v~W1;5lV<_Jrz-m4aFEdQQ~RD-Y_xL zW0J96p7CVK9n$A={Y^#G{l^7#53{q&<~J=C3S3~TcmAW+om%|a;8)oyKdfz2Nz@io zYLx9vdvEY>w4WnT)y959xh03U4ureSJ@AfwO2(9HcW0{8t1iSsTaFsP z^L2x$$pj{ehKL0<^;s2b5i{$^hccixSbQSGW#o(y#?iP;386I@t->V{#-eOnZp;XR zJlL+jQd{eCcYj;p#Wx@?BLRMyhiPsVxd8X*ZG3m_U;nQA-h~I?1h-&L*{KD&r-{lx zTvM8Smjgu7S4NsZ_G*FT*Vqu+{vvpW1U+I$-1k8q`g&vWi=;aS`fnZp@N&zZBsUim znAmv>+&Cql-Uj~qId~@qKUkqO>XE{&t=gl$Hy&NTAx*|G{MjJX4eq8;*$zU4#YyvAo;ia5z_00)+yJPPDHDWlDkei&Sr-}SRY zUu@3M8jq9@l*Bnx31{V=7d5J(dH@3jt(TQs7Kh0`zUkR*{6b1AbV%+n5p$ zLh)GSvc*GFpHL{A7Ib@vgYQY(Gx?F4YF!q`Tp}Mi1K}V`trtql{bpSQ*N&-Lda373~iz zNNv_%(JvF&RCA-&zzEs*FeD))=j%|w1E1-fQC)G9gQG9K<)prqd2SQar>7XjxE=`6 zcwV`@stXjD$AFga0VH-m!G6pkl*&j+@L@! z1*#MLeyIrzHK){q^Q0-63tPH2U-7LjDY@1KfzR%v_Ie9|;$Ct8=xo!Ci&Sq=wwfD@ zwn>+(4wBq|aH4+cfai59Ny#v{|MTeM1SP-laph}zAu2-hDYasH{r2BB1-Yrrx8}!6na=a2 zr8ref)dgoEe%ZY}{r!CmX#fOp9$n7~=2FSH8Wm z7j8|p!C0C^!n4tHNSI6atMT%l2YSmdjUC92A1y$)nvc@p$;3p~S~S3VIIG-yEciHA zx7ID2e5htadXmu6&hUC_#NUYzpk$2gZm(>FB}%`*?`37o0mYe?oFQbWSbYc0$=@l- z*cD#-2W>21Ni4wGfkbyv4lq5ecj+?}oUl3Tp46W{lIwL^MVOp%6$BQvtBb5VXfS7Q z_ZJYD2O0f25a3KMJy$`JRi*GmEisY4xF=GNF+T1o#yKU@9vig(FrVIU6X6TLePIl2 zHs}vBjUiBz2Wx4lqM}@wk?vv6%FHJR=_b@hv#yorAN6VEF`oxJN8zKHK)pJs&?2zM zA9>P@pK#PG`xm%sQGOZKsV=nc-GcNX8!46_^DFp_X*%<4jyCNqWT`t2#>k^wQ>_3~ z#VPpe4y26WFZLiiabvn5-jp_^n?1NIwy7=baL_J{paKV{o0C7r>WSW4Hl>0p_*g)~ zjnGIHY;lEY|3L$Ng08!2isu=xQVSK0*F)diqSxq6$@HG8K8iLtMY1#riVjD~C@VtbuR!uIj1s8&({bV{^pTVrdewhPsr@B9@-lN?s)u{h z-iYXTgp}fNZ15$MpvuX3kV9y|FBq}E)-!V^nog3-HTx)ap3JtV*gxe;pg;$zXeGoy z{3g&m(r?C^d)&!#J34BpxcwCmX7nTdnFaKXGguGz={{l8Nj!)4)Mt9z)#oU#g$)wu zd|?OC$SH-GMDZ;|N>2O?BXa--`ja#WiTqdXBM$Ln2V+Ibu#o?DA<4|?L}mqQRaX`<;4g4kS3Ie_v@(m9{89iSEB*2tK*Mi@?OL^7 zs!(`%*mIk!`B()vimZEHd!5~5m7wE$)?*Z<@oD|zqWzCH<)&SBEGCKM(#|kaW=5Dk z@WI0@lG#K)l{uM;s`zTF-+`pUdg|IJk`cmQtpti{xd^lVfTG;j&TJ@~pS~_ty zMaljL|E%aC5zYw*d@yN)0+YMjkX768&M6>>-tZ0fgd}%!T2Xk3*Ksa2RLZEOlZuu{ zC)h^Z7g2`{`h*1K0pnptsQk=K)Nw69)WVNNXYfP)s|N2qb$Y>9J+>QB{$1x4Jb(=b z`Bh8x!$M9O$`9+7=)>(0y&wp!iBvW*RqQT)?sv!h(XQJeZ6k24Rp*BK6-~2}xAg!^ z&ZgV2DMeX;XgD*dv@yjKoH9cqM9nNBa?%)439HM2aL&N)uf{JSb>Jg@KwVu+i>?{wc_U*edrxQ-U0obl0fi zM6l8vI55VyeDM&s*FR~T5=*KkMcvU{wcQ%DVVhSb!}JI}x;B)r!si4;%;LCAi~$2~ zf9%(PF^3VdyIj9imcO;jNIiiULM-i&h*%Vj`MS$Wh@iB}P6|R$Dpo>QGF;RjOq5nK z^m1aAY?)FVzg5I?Ddp84X}1294o+1u zBI?4w`&s^?o3z?dwIVCgl2Sf(OALN}Lo(t79M0ETZsCdECKit9 zK$p7#9eHC*Wj204G%GNv_-d#B04rI*MxLlBTi4mE+)Eg!xba5=RsHDSU*41WBD;0>=4~5w>4m(em270&v=nT z?4vc2s<{V8eZy55zuC0k2rKeynC0IUi)ys7*(!gs-9%4V*}MyTGCGCtv#pcwP}U0y z=dMf2cQyN3CL6SPU?}$vilxPEeKSi!pBzl-eK=v5DJ}MDx8G^KJu+}|Hfo!v#`+bg z&tLX+NP~nz7Zzt9lY>;XV$i{yAzbd ztIp4swfd{0;VhA+E%JzRwpo&2*3)^P$5#2hkUjQjPv?F8R=MC-@@O_{Oc^;@ib>vp zDYus~wB0&PS|A~5K z8s}xJm*?fGivT;ZaMf!GZ7*q0_dYjL>%cd|SvI-X*MD3&_~8ezF~WX3jNHK*fQABb3R$1z`>U`1eeGt?nAe%u+}gVU zyV-;jj({QP);nIl>)+ru=j!6@Z0|THRDjtN^f{T6cFPuUl8DkVq3YhLBDz*d!ei<> z$>${;epQ~=X|}5Zi~;1>FXOH$;4Hz5Imn_LraRG_Y$zCA3oVk$I;+#*VA;v_Cr}lP zQ&#OGhNz=Bvs75fUJ$@rEQiKsCeeqxzz>ar3fVf|nN5bh@=({!E<>nWlR zUFKBq9P9)kIvnd@IyLK8GR&D9hB@)z~5{*0VZJlk030rADUTmBbrD zaE3#*RzRZ^g1O}y=Bp%i&GAOD%SfOGVFaU6JfMoA9Neqi9@BXJk$*M>oqO(9xKqUg z(_js_&5n~UiMaIGQk(yR_qEWCPeLDBhM82CE(ti-dD4SY?+5n}4)fP|^fKrDN4@Iw z34cRF1`Bm3+;}SEVw)KILH4{hc%qK|v`TJK?p{w#xel6MT<6}5f6V_NkT&~{UD z)g-()DGz+ri@G^EE_z`K>ne#mG+{TF5}}D6{U4Y-*&7RoSZIhlcFCyzihWCrVno!I z{@0qHEUBQ89@zE{c)-|UgOv0XJaj}{2N{*ZG8b?yP&&?g8JIb*OuH7qbGsewU7j}` z&=WjXag#3@0?zHeHRMEv1*Bn)LeuNJ{}skz2K<*h?l5EqzS4i`q+3l{i~$XrUfMvr zvWckU9%;g9GN%Ph0I|=B5t{58#x!HupAmEIXG^P6=s|q_M27@9NGAJ+1BQW@=JxrjO1Zd)ocq^*?^if+Vtgm@t&L=McX}I62hc>PPdeD6y?pw}&)J+iNGh z3hI@3`3HuKQs>RoNsQpD-9?5oMm12etw@YyjjJM}AK}76{&RoMpHxrrs*H7>yU3YP zPrk}E0xxFI;+`Q8+;Qxy| zh-YOO%f>X4k!B=2Sx<4Kf$CKC{f2kWA6oxq!@0~~?)ZO$_glOE??=AgovP-3$Inb_ z1g%RBXWajAf=t}%NOx0{f>bg+;=n-MCi!1-{vUn*x14XaW>tRs)kOSbj(gQa3*drX z=*Af6WLq#oUFgB?G^2>~@$NKGw`xc~P~|Gh|G5a>hCxB}ppp1MGy0tQvEa%Gg3{N1 zn+EaZ)mzC-^xB}7V0iTZ=J0=+@js1QM!fRR8s7)k5&y;6GLr2Y$#9QjyCtyN<6Z7W zLc0Dh4uEqx@s~n0TUoYoRr?qHa7OC-3vH=xthU<3h?x?#czHPI^8am!|FK=f|8BmW zi28=?>3T_`r}XtmcsUf^OT~<64MYNTNqpRq{6Gg87{0bY?hHpbN3{f}Wto=Gf7p2L zJeiiZVjC+3z{TN(6^qIIkCgxa2K)vxlD*@`KF@W2r9PSd4+A@J;{V#uSZ%-Am)=xH zOjI1^(7j8vp6tq2%gX z{1nX64#c)H<@~c0gDL{>?;xGmUFrj|;7;l&0h%f^&970<%MDn|Ck)KLFj&wHP3>=C z9gnq(LI^s(JtL-r+t$nVqFS`1a?0e?LWXJP$P$@{krTQ@^k0|9!L@WzI0q_q65$}e zkWqMwt)VANQl`u{d8^`w1ZDZDRFnI11o72whn>>unB-21?;^FJ@A5r7i0xFG@_NfU z9bLLoZqy;Z`lY}uWdo^h&lmJ1?@amnZhfW+ub;R!{A6TSlY3B@S@sv0L!W}Hm-U5Skp8&tRX;Eu;=a?!AO9;!To61q+TWyWg(zN2i4(7^|VoW_l_qu#9zPg5xLCX@y1X)8- zc38CybUFiixf+Qy-ZX?sd=o2JVNar|J`OPbym1tRbDr+$t-eEXUR^5e-5l{2y|@&4 zV|j&nP2YSsh-4MbnkUO09S;4kvfj`nG+4PLRlU8>+I|xRy8R-ZJePu{E zNGy<$T4eoS;${!1%r5pW=}lP4_r^?tp$HIo#}g_&$#|Dn<>|zH{1~9Q+7eKy((TJd zk{p5Z^klMi%j%o8k{jn zyt7ONMEonrZ+pbmZd~0TM+fg2LQ42|K@72HV+#;dS$kAa66Iu{V@47r5Gdm+$d|nu zF1xEG)7q*kO*74N#R|3hl<+Ez&AR@d5FJJXjp`dWY z{+0l6i|)pH-_o)nm&g^B7c8V(o;f3TGVeITVMtSaZ`5MqRpnH7GJ?|F-{%n&%a1y|Hz;e7{;XO zv!|AvgMhsYB+XT?Cm%Iv6u>PYKIFjv=7UA<{b8a5QiJ$^S+%wLJ$i1VK{$lb1yqb!*r` zdLr5~Ipo6(9JMe~M3U+{MTWndMnJKXnJY(%^5F$xpm8jii===@} z4C5R74)z{mRe~yaCxMB*Gc?Arnl5{!yvG&(&^TI@paL6F=fB3~@0S*o%3*{Di1-G- z7G5(FIe_C4os2U0D~I69I0$x44us0+<{GpHLY}2v4n^5i@AQ7EU`U(W8I&~D#D+ed^x96sPIuvyT&HQ+ zEO^th{Hb;)qVSJX6D4a42kY4QFW}Y`X$a}C!~wwr2mL+`&PtR+xJGk^bgEcL(oS2k zI0h)1F#OSPY0Kb)8)GP6#9RX&4>$%Iab6S9Vn*b>2isc%32tIxXDMdge?s(s?uVNt z#&T-q4Ntp$C~YZh`3Z-IY&18u+aAf*h5^@%s?g%{7I^#NfOG=S2|lYbu48b6?tLY)bWC?-zRo!cP4_+)BxYd$Em-sU zE?%>R5PI<2mZFt9B<*&uv>i`6O`Q((!SdNgfhPpu7Qyj2XfNs|2SilS9c3z^p0sNf zPF9y1eGM383uNje6H#tQ6277qW5>x!yjO(K45sSHo*kwK@H{St+arDdX(W;$^cPt- zgP4z+WeD(BRl+^p11V^O7NN+J%1cGH-IGUCoMyDOkhj4sBKPRiOd3DD#=8ApMjZfOCjfmQB3mDw0u1%gaQ~ zRzKG3e5shU9F!xnKU!oAaK6IM=iS?$knI)a$g(Apphqd`>t zVz7>i%iE8EZ*(4fD&q|Ux(Vj)rVkHoPIMDl_~sHb zo54zXNL8Z|=gIP+N!O7)CeWnmkEN z^UYH$yEom>%bty}0vD*fBj9^PzJ!Wkxs~4)T>-H?GFEDO1@(o+aBkFsQkiSD-u%wu zWyt5LjZzuVcC08r%>LrA>)ZIzGYf;g)>ZBHskY2t**m}Zr@xF49X0?ef(DG_B<4JI zx=O`)_8i9q+9^jOq93n-h*!Zs9>ssm0OP4is!miE|GqQG70VUIC&%y_=E+0;14&6| ziK!h$Js(RF^KtwrmSn(=??p%$>OMDk76>soy-&OZDi(fW`5G>;5I|=Ixs8L9GMW@M zz!NHyR2R#XAg87Qz$o^wtEptV1b){)g0Y5J2X7J3pRUY`hvNPSi+H|=XAifhDA&C@ zI%kfoE*M$h&oNSQX3D2PR&c>r1S(eYpGUbs+Ok7l)koQZ!!Z{Ht;%0W79FIeYNAD( z+ZcyK&QB#rFVUC-`9yeNg`>L)P5e98Tl-9>Zn9(4!LJ%Oj9Wp#Ygy*$?5FT(ZXvK# zh|g8#IsWJDl;T7gPgLAHtAO91?B zn2CgbsXvLS#4dL!K`Jp*OsITN+=E^}Ww0Oa&2coh{g5zQpgQku%7Kol&<<)pXzpy* zP4WM;{#o(xN9?AXM9>>aKfOu#lzwU138}rAf?DB1g*{EOvSh!Sb6OXI^47ZPZ8ed5 z8T@}%HB;W^dbCAPL$YCUA3vO){H+|=R4n2wAVes>kbXUBvlaaE}Tn=6# zhRDV1E~PH_`pttHW{<~NxYxtqXgXp+v5SQ3w@Odq*pS{;kxAS7)U_DMAe0;3C-zHfwX!6L-Smc)mLUKN^`E*cEe7@6w1a>VN3 zG|xbWHFB`AG=SE9nM*kFH1AWi?m2gsKQP{2|v#-CziHwsB>9;osUTW^EU)V{I zh`Y8ndDem=zOYIM=q#n&>SuW9jFK&l#hf@RRb>f`-xXP(M{{E5hbbebO4>>CdrI2M z=&&RgQW6H+>6~7XoGcrZRJvV_glGu}wt5VC7#^L^52J5rYP5lN7<(_`LxH0`FiKBu zX4Aek_uQHfOfh^YCMGfbuUEy2k>ON9fA9V{!E*jNeMv9>Tp$=GpDA6U3rATLpccH8 z!8+oKFI;wITW|n6-E|i{S#GW?cwkm+@9S0)SKpzop7K|f8gov30Ks2t|mj6{$Z69uPt z2}~SJiRh*;D%fDN{8^>&ka=hgSH6$#vD}P=>C!@*tVEqYT#mnAS9#W79-(LJ%M-r9LM(QCw6}%wZ;J4Q59C3aE?D-*20!%SlXUxNDXKT> zq2hZK>hJ{bcRdIuLu*4)a>^vMhIQB%bl#aipUXrgALJ@X zq-$&dL7AIQuNh;0&GDlRLOqi%iKdHI2&OuMGNO_~zpbA`1c``278K9LPUGmP-~a^9 z4`4w!oS?NJELMnn^g%2O#^Kos$wp;52L!5UzXhTL40Qj%FS2)8#UI4?!lB>p< z*x}S~lZvpd?;|1z(*F#I88f6LZ_4Lvof()@<5SwWC0T-f0B3mLe@DPQ-e4B>7XH3- zh$P$9j=1jo2VLrSI1xl47+bv54L=wYeIo=DAqGB1{iUla&!0B+1ULIa9yz3aW-BBX z#YQ4edqgF~Bku6q#%a!*#{r9GTIM)Uc%$!YKMABD#SjPy)wFA(PzD-!Tcl3So}G!- zjCT|6%kTIf4ycGkE{1$TSS8M8&(~Txk|F;VeLt!bYhUAj)WW%iQX=&QWBORDwbh2*O&-;Q*OL4?3TKP`U32Qd>H#W1xdIfRyjP(lrWm>pZRBZm&uUx95GGfPxZy(2FjPIsLJvU98uSvBL+V;K$Z@GyrVDt1EXm4n5AP)jQ&`~eMpmOs&DF9R2px|F4mT@za|*% zi9zi5qW$7v9Q3W6pZe__{QO?^ja7YS(>wb0468Fg!H|o!-y&`JOC{0JcNFk+R_x{3 zg`c}#*y31`O7f;AuV>O7qJuS4g#u_f3;=6ipu?$7T4Gm`%Ql^A`S`2W8le4Q^p7)I z>|fAgc*id{Iem7w=~!Kj(b{OKy9R`~-LW9jYbe)aHF>gZbD|4qqhidNz-~NOQ~0Bp zdttfX?40qj%tO*67xGUEggk{0u&BKWbI5D$wIr+iFe<5?!;63)Y zIl}M0b{)zAGv7i-O^15p*S)*d;4Rw)5kOeJhp3;9VQ5yjdbhsljsiYykQDA?2ajG%)QZuaR7*!H3%MZ>)eUb8%`Aki6#|06s74 zhi?+nGy7)D9GG7IH2=KDP?Qk+{idc0v)VFXzYV5iB6VO=#8u?YhD;!(Gbg*2o$my- zGx`7Y5beeJqxmh?Cagv=>d_8x-&bnchGwY6mr*`yZ+uEHnr}p>%kzYJwN8lK28Ms2 z6^$19#Wa+prBt%Fp&~i>^C}ZZZu+(r)vKEhH!;QSPI?wN3kLh(D6KL9hUJtk^WuAz z2e~h?VAd2#{ji&pM1|clc%)BE&t3uD%V{I?gBnxb$>4M0T%?;!Mo*0;JfVNlq8_K+Ni=DsE`esws zxzhXG1g1Z9uv-ejhRpeZ10~q}9oB$0g85|tqF+PV`{#1$XRdT)#A|TvXx8|(!ZB(69i!!F?HjkgbP3 z{%uK2&?*vPV8C7Dc0!lojqHT+U8IEqnvMr*`_#0aU?eStV1NO&(n^|XizzEs3o*tU z>D<7=e8RQl&U9`O7A4R{eGoiYZud$3hcdb0J+QL zNz^1NAR&MRYc&6dkzyBQbvX!V3iiVwC0)en-dbJ8j;~VHBFjgRexKIpk}kI|9U3v} zARA8`-%RLlnVI*4u-(HVK=;N%9l6U!$ix1B8w>gdrp@@B24O12v6 zcOP`eP5<oms4QkBcuSj%3omW`jDJIe?B0aX^{>=X#1{80BletIxWiP*p| z7FykEFx;;e4GubTxQTC=^7uJHlN#y-c6UGOZctxo zZmgoOVR*Y~HJA>mOpX-31kiS0Hto(G0nW>!E%xFz!wGJ0U%@-#5l^YePE}fS01ytq zvvbb+R^{Pd)?X7fte0^Vgsh8Ast98k_S2oE)2{tgG@c`^+rclGj}!DLJzi3SU`(4k zJ~WKAJ#h}-5h2xOEl6)=-a8GKj|FmwR1f7Y8$WRS)m$4QytbGt_29&Yt6l~_v^xhJ z^Pk#+935kb2YE?sd2<_I>Um+GOA!5Yo!N`LABWW`i?7y+LvjXjxl;_Ddw$@atAsx^ zx<5CnpQ7FGdzIy~#@k9{4Y&X&moGH417D_~yC*4cJw0M)?$T2Lt_t23qy)Af;KzS} z#y`N#4K4Yvn_jOFTwYOLil8a<`>3rN00{2|13OY|j(<6WXe9#fhYZKsr=kzR*{i7h zUabJ)dk}nZAtn1Ti?4H3gGx^M#+)=Cy5W6P&VgP)PO+k^x0W*&PnCC2OU%RpckZ;_NAjS$&Ib(5hJ> z%Mr^~WiQ=>9)=#JquDQk9&-lO=Kybw6aN$ZeP{*D<>uvR@6Y;=f1vvt`t8Tt3nW~d zXwm59sC9VnbbKJ8H~(yI{_3eEHQa^xrm-LR!hqdvn=2Me%yjag5=kcPX2${H7lpC~ z^Q#Akm0kmYNMFF_Lyyci$fuQd4QMd=r0+=&uJ)(f1)cG>dA<6B+IH^ z3rAV4P@6(Om=eOawWc6ZL3i~cz)HRXKqN1unV`hyGquF(n`Gp;Fun>LitrsI0}Bp4L8LOOG}t;+wJl_aXw-Zhkwm8sMp`9e9+ts%EeIN$-A4& zKC+*C-B~b{yT8i6C8GvX?!GQ)=u>~9>l;$iBO#csYiKEKBs#RmQ_|68c6zfTflyE! z8(^%OJ6GvkPF^6F<$6$Z6rT%7;xpteuq_^7o3AmI!bQT^(=p08tNmeT!?E9vqpX+( zbz4qMrD)d%oY8d{(fm?HV$y*w#1+-&Gd?ZTKY{y*8ad%FvPQJ@1m4syfl8gfUERoJ z#9O1r+}zyUMoBW}BtX48FdxlqX_YtJ>hg$kbc1f_Sa`0d*t0O(mW17J`RCH?+AJtv zd#`Rb-sXEC8Jtk{izJ4MgqKz1jMDGS2TJ=IxG|tcz?X5Jg<4XHQe60!?ECzX=~D-i zJqF;aA>`vF&V8I%xK+FkoS(>;x`a9UQI2^2B2ADmo*cXxc-sG$NbZiFle(-|2;Pia zTDniNwmIDT7r9C!O9N&RZitJ^eYcDAz3Qa6rz=>=Ao$fA#$owS-48K&*N|W~QjKdv z<=Ra5Kuw2@RCdB?S?=7NYo2}#$}f$R^sk`sMu?fD%*##8T$@XufBWO2eqO?{MK#h6 z8?p=UpTdI0-k3e3QD zdK}iiHcPA8M;d3Gb&9W+G_;uX24ol8Q#`3tpO?T8oX3dS)tq(T2A%GgTB^O6mkyqu z2E=;a51M;f$oI!i9%$&ch-xZ0x+{_1>01V8)T&m!yVm#M09&QF^~bt%=gT%F)yIE4 z#0HMeSmxg+nlQTIm^%|sC0sP1P%;!5Qt`U;| zT@bkS-vavwYn zzIpn}KiHyy&YY~h^6jcs$>JK9ANi&!7i7L>$-P)SO4YX8GRARays~gSZ8RxogITLn zYIK` z7_?_S5uGECXZd$aPbnZzQXv)=Gg6Or(a499>jqCm+sZv)5W^ba7@X}$EJ|z7j|iK> zi03h0%l6Cb)6K(So~>Xo-Z&nL+j7~x_6l^%wxwOUu`O9gDR!D1#7kdvQe41Go0`8z zmgG|C1EgD3>#tubnc4fEVUvcR$J#m{>N%N-&^!S$=hJH2@UVU-XkDed3t_eJ@C;Vy zo1^Jyi#?s~$`4%VEfWPp&|5*?ZllXRnY9^{^^?b$L#nq7IdrX6+<{MvzVoMbE8}-u z$mkkxQ;)M+72IK+n0gG7Xnx96J(Qoo3Uven^=&PX$>(uLB&&L~siEaVh0Pz9Z6`@y zBM57z*#J{Ls-FJ)>g96vI8Q{+s~0@{F}tqzi&u{le|dshvSctXIJfd&IwB#q8s)Oj z)oj2HBrv+zeZBY`NH~VOc0^*Oq?wyADyzecOm8CBeFn3EhMco`VYwnhG|bNg*Y2li z7dk~a818>QWSz8Yeeye(hBiE@FApNB#?Wic)v3{cA!<>8NWVdBFVIOc233)!GpWE;?MCy%8Z^o{-<&x@>klhyXxl|gP^C+Ag5+db| zdlr_14;9B@h4%3zqCgmbEcmQGlprmyhL2(8b&QgP>m=_{d1GMlHRvB@Y8Pokqbg?t zl10K7WHGGD;DGz;?spi@JLFh#%|}_VcNpt-f;Yca+qz7YCwwfz8skjDFm5ed#T-ox2?xRHS;pLhUm;6+rK zZ{|zV4t!VKHMbYHw}1KJ>H5p%D0f9nTcYHhYdYFWGcQ7CEW2q>HzDz(g`VMkDXwFw zaKD_N!V3T2&RXk>A^cK(9ZwH<-|}OWNpI%>=YZ12ifb;i$)ZvJ{L#t?%cml zexn+%Cy0LreVj6Nc@|7FG$W+g7p-yEIsOx)dqrD%l%HE^Z6b6jtT{f_J(jpm72Qae z*_eS;%Pj^kQB!!9r7gftcTJ~T)O`p}klE@yx8b}!z7*AS(MWDu#SDi8>~Pll)W`F8 z7tfgJBz4Pnj{ffyRw4A72g=P zQnM5*(_Hi@!5ydFFx6}7*as$Bym@NH6lQ+HT&%n*PDOefK#h-{Iqn4Y_pLX>YK^JA zsg-`iNG15B*(0sm2pl7OX*~}se_q0_VO7r>Q9w`K?Yn|GwG}Z8vSY(%1hA5`wdgzG zw4o3+%F4n;l;6{0S4*-43j@>J_VUMM60&l!FQYpAwd9Q?}^ZuH+=%HDUkg!uC>tovOFD_u#Iwk`iz9 z^oIJ|OAZWu?5wI)HrXWM_2I)s@wlFg%F4=U0NwkacUFa=VngN9?mm^fLCvqha>aoE zbS=yA%C4@i){zYE@YIy!m{<)urPc6fcZUe}>nUQ?sQwXEgYv)#tVe5Y%{Cd7d@&bqqM z$m68UvJbwMSLu|0R=J?V%X(Z`wKmt5jc3cskK}nvbS3XuaUZ0ico_sd1xc9CSv>B} zJyb?&)4u#xyGG#pKBTij-HMQxOhvr4$KQo)#{XztgddO@an2?E}9C#2(GQF+PY2q z<84K11yxG+Qe9}3%4QHMvy;^nRz18&Bu1qsmwr$?yV)lHDL^UPr0jC$I~`NYlh60? zFauc&oOWJCWqZS-H5w@u-XWG)XX&~}pLx;s!?j(XzI-X*3D#KqK{Zf<@+A^@CVo2y zmzRC5yqI0;H8whoR`1rb@2wo;U#l+aXP17e;d3ba{-vw-v_pI8_x|y*{_&3-;aBagpS{<+H@{h6cabCLSKq{YFhunE*UC*k`@3pRg@lA;Wo0Fe zk9G_8GnPg+?>*4lTsAfsvQo4@apyOqa`FBf&cmO&oV)82wmDO7yi)dxe>Y2JX6Zn^ zcmx+%sQnGTV*~2GBaNc%2M0RCBuc@;zUJKh+_O7j2&`@nFo}i)@hZW4D;;ipd>!YI zDB(K>W->n7Fn;j$y%kA`>=HMi*-78uTlJTI>*G#3_~~2w_*idY``DYbFrVRCll9AvojP^OcO>2S zy5oym0PB&y;{MW)cUJb_7^n~8@bP&2@ErPa0P5q){QgK!X0| zIj}+b`Muj(kcGBs5nOMt*XP>i8#TGEe!WsL;%p{w{8q&X3${T1+Ekv*%uJL~mY%V( zafRT${i}3!f$cyV4tli}*cnC-4Bz0d&DnL7OEHJ}=qih0#R!+7zCEgq{I!`nyuqpE zNlp7)jbtcFm9Fg$lvPw|9FMwB7WR2@{(CL?_?aeh&^xDnr~E>%Wu7{JSmTXJ%sY0 ztB0kR&(j9W1{IU-qok}SGBXFg5<11+(D-psur_T~&0BGQUp{+CAkuJ0gFY`y)&8fw zZsS~%#v%>Q?3rRx9fBa1Xc&m#I+kj{z(b`&2G;}@Bseu=(=z$?69-D3XBijnV))A0 z@viBjiO+D?DL(z^=;*%oGT-kbgEq~Vy~l>T`%8wNpHn^!v{ZsCvN|Cl;ihxvb?e&K zf)YZyXUJ%M%9SgR!OfhVw=6qmYioNcJ6pnM)PT8CE{(Lm zbQ4+7gW?y`HWnX8*Vy(&@ zpcA&ho4J>Gg2B>{IIDC{C|{++k#wnSc&AwVP|0%g_Mwfn+cnq%5zMp!S{EpKw%Iy3 zRCRuYbB0%2bR4!Iky>&Hb~N=#|Il|orf>?aO8@vk-dmB!(rF5JEvpbTWv7gfREZfs zg=~p@C)yC!b3Nz+*~6Ye0IG^{P@Sd3;#G2iq}*dECwX53$Ekx8fZt~CKC<=mH`C+M zAfkG^!}z0jg`m>8W$~z0{yf1tS30ggFCV;B(h<~Qt(yT{!F-j*9jRx?tM=a)+O>b; zHOUU$57OkpN@j`w2(XrjQ33XQXk@S_mFHGhx4BuYWr{{J4{fyFF8bK6;I~H_x~USr z9EY7S&pZTVUzQkzZ22IoPJK4mll3y~p5~sx?NWZ6qAN+k&LLQ8jzTFeInrW%uD?>a z?%*!<2rm972iXD+Ch}|g)Hz-pH5H?EKcd}zCezeVPcsUYUunn|NMrK(h-Bs&s~2E< z&2R2eC37QB+~Fw{qav5~Ad*`>u;K;6yGxS4wx-J|=h5&|i#$XApl@~8vx6(D>o2|N zx!!kaDZOvt`kusYhM^@r-wAy_w zYO%eA+*O-v*`CsKJ>N(*8u^v~4NX7;*e?dXN}BfF9H_HoqFgP)&d?|vc4o*oj90j% zsdt52mI1$X8qX0JHM8u^p0A}KoDGp1&q?cNpb8oHopJOY#7WCv}%$ z?!XbIJ!47Ri{CNIRV}9kYlKce;5@3=t##=8Qd2RynopCzWo`H)7I-it#< z=d}Efzj0jTP1`WwNV@h}o28f}OJIs|L3Ok(zx~TVYixb=nBA4H(Xdh*YYu}EUF~tnE!iTI0nx@QrEJFT};w$&%M?(ZqMs4pL@Q*Ev*>;FRQh5A;o)Lw)ZIK{4@2W4d*8*2T<(eAqj*JIDE2l@O=w1$rP` zy<67$&Xms!I~>af+Z=4JS>$U4BBHYNY6nWI9)hLPEv)lkUw-N6r<=fXj=rr)zxMUZ z?ae!s6V?pu89!>S&Js=QlJ84Tk2GlHW^mpu%I!L!c=5~G-W{lIiRVJzMN67ll#(1? zFD*!axU(n|Rgu7*?9LX<{U8y3O-Mqh%W1==qYn{kYZda15{4FgCZ_jnzn6RH0()jA zD{Vj~e@{VH%ht%WeQ!5vzY=bJaM<*lTd^IRoJd^2qE2aMCFYnD2ehhBS(~IPy`@-g z>rhT79nQ5w_Vd>rXM{rTRPffG?fl4mrbCuZ#KKfp|d0aU4Ra$A1 zIE1tE)~s-Ik5z9oA11f4dyJWivG=_X?xL;D4cZm}i{N@dPo5~`>`@WkB?d2Da=el= zoO*>Ha!W9m(GI)LR*~?BTNw_fe)rWZZhP#yGqRe5;a)hm;vud*4J(WK9EEF^m!FEP zw%DO zs6mpIpB;5{6GZp9yR9GU+nBKP!0^k;FyMTB9`YS;AOF%n)>rnux1B|=-?#DV(~_~9 zn^I7*q|YDv)gEAR6MS>{RLFNe#vqv-Nj1&;i(J@lz%;n}o{qfVoHM9cyBWTiGF>OL z$t)3=imaoC>z-vO#O@(?tK6ln3j(Jib|$jxaWB#XMcmCfI(CvfxWCt9(?8`ExhELG z=l_xX&`mb4H`g3tv6L?wuj#QrMtPSsDnX|N;l zy7#ww6QFXBvy2PuzI7h!x$YP|&Ri<7Nb#p>}Ix58MU|w;M-y)4 z>|R>yk@+U`;rq=(nN2&Q)eax? z^hxNM2dib+4xdpEr0drFYkEiRJHj~je+==5A7Ht|u!=m-6@C5_kRc~FSr~-6}oImMzG3yro>K(y7wo>sVyJ#(bwhn+CIvN9{et(*U{e8 z_lR9Jv@>}>W29WN9ZYdq)&70QR>giQe@N-tYA5>QF3F}6tFCXREO%Fj?i<|x{^bW_ zvHAltyE2y0X@VUkr?L35_?j@JVX5c9YYV!qB^^6`SPh2GYF(fYqEi2o$b@#i&IP|UAnlLB zSfz@)EkN^OBjyww6_Hgmc85NH`wm>*#*c{%dzyKXeEAplv5S?4p?YJ|{Exe|)18D1 z3b8fi%68iv%O81ndcFJ#78*F!myz>(It}z1uilqVK@&1jwaBx<+UA;>exi3}Nd~?q z4jT*8w+Y*{CMz{Q~A9s02IjdBHx{%#nmK@=09Eyv3SjsckX`ANr zoegfZK(jq*Mp-Y#d^%zuIm^7c`L1od2SwosYGZpT;8NR_&>UKMJNuC1_xal0wm9IgbJhsTAL3G6 zr*MS2grUw&CGpA@W0>UN$zUPw!=#q-rtn*4FyzZKUQejtRBqb?k${}z_*gGUuNZL% zCaGK0SMDlbGFDhJCR*}b^ngV7;^viyJ*v$8fRB`_qj^CGjCI8pZfaG{V}rUyO>`7` zM`;~Q81L<_<$Z0-&w3-JQt=i^g{Ca+`=F>4og_uZlP#mc!{cnSnqr}JhXmO}4)M3A zpgQ&qZk5?-yrm)T={A|2Hv1gd-^Ilql+&+gd$&T>vrR`Rk?!&KvgK%{M$31dVsKR_ z@Lz2OBsi|^wzu=Vu!`9{fG3#j_~6RGYgP|pqc`NZiR?S&*zv*h&aM%95*gXUW9!oR zM_Ii5RwbBd^0RKH@AUK$ig~neE5E*yt#7^7`0)+jIj(azFEG5zbYndQzF#`v^gd- zYW?VOkX^!E>m=8;tGP;z!i9{Rg0H&X{`Y3vUc~J*5#muVPfB`48VqbvmaMUSzUZ+WLD+k7tFH$rF#O zB?Ym!oWd30jlxkWBl=*6;;-KlS8Y+C7ad&rQn!1uL9FbD%!JcbM;j$L>{Cv2E5?q41Xp-*|*0a&Fj_TSXKpwr07l5A4?Wx z@0A8Cr-(&{pH+N+1Haso@a(cw#Y4|cdQ*9VyN6{DW}C*Iy#T9WQGXLVGO9O7>Zh<* zdGkH5;!bt9XD_Iav@wqCE$q#Ix3}$!ZJQ{IN%q&+R~J(^(fOPj;5%VrIVx1*uESP# zYh+oMzM;wM#_&4$$)$h?zI)JT$C__9%bnONUgWg)au%CK1J!*#{$=0cB%T%gRqN9j zN-ZA8w{Qi0sFmP$%!=LkG-hLDx_V7!Ap3nkeVCxKPE&@$`EoXw(t1`e=?j%hHnKZt zZu{WJcajgMlZTQ0SzR@rY?%iHTfi99<5PKkR9xD-vVMV^20 z(z3X1?D9>it43KyS%JWT1>)VA2WX(!eqS?Y+UhE0w_SNB#obBn`*D(2@x@SPLgC$?Q3Bo zdG~#jFnE;tjx*gH>_+Ic?G-Ce}*mj1jF3|Z41HmBAURTb6K=QxS4GF5HVVXiCyC!BOyFZO1q z_at+jN5$p{vkFITtUc6KVA~pK&ri=O# z!>=O2A&7k112mBg!kV`(BZnDx6#-WKK!1t6=A-(0wIaQmwG;=c#1vRI#qiQQrc=4r zkPQrdOIOLMvWczUazK{m6Dl&@MYn~6wbaVZMa2{euMm7U=midN`)*npMkCn346E*! zy%GzxYaR4j9lEi=uA+CCS=Qe<%dL3N#ikC6_iwyuWIUuisI@B1bV<`Q*D|e0Jkp31 z3-{huXtYAFR#TCndVm=e%v^KpGS#gPho@QabL!q>~EzK zS)q$;tU{_fA6Q?_YXHQVo4dOepN%SqdJ=VOIrptCIU|o9#g2rzySd%z-2ChaO=3`7 zo@y;aXjSLi-HUx}UKD;?mgA^f{=Gm}^C~~x<0o;^uKR@90}&v5XE!#9@|_na&i` zAfd6vszWC<>1ITYV`;Vr8%wv5tfs217_}INwy3pE(`pH2yN~~1e%#;Q>w4bndan2S z-p~8o-|y!prKP2{-nuorlBJxDl3|(F&tFZZL;GL&{^Q;~c<^QBsp+g7`>+I|t)V@v$7~REz|9gf{gCM9IQ-7u{BI^Pkfx>!V|F$<0X3zY^gHs9NdC z4?z07Te~^i12fxePR06`Dwe!FKWN+2l(U_`EG;dyVQgyy)RqQeYs4QfT-Y5!zqXV} z6}|8c?TA@A?;ob5yH@p42KQut*Wf7uB`9ytXq}r5PRSvGKpLFMk}Re4Mz=v-QwfLz z`fC+r^?ZSTBNqSb;d>>1kDbH6JvWws(nh0}*Ct#22}F|__lOl*dhy|O=tOo-1c-2v z@i6UC9|e1I&9C$mwf0~tbpG!v^xQ~-Ot8m*zhY412;(!!IQC%X-UZ#}@aD?Lox+pN z)obE+*#XkH7rD8srSKngln_%;p>-W6f1)c1pYLwoQteH)F$T6;B|!9LkIgtiMhGm{ zNUC;P#G{XHvaQe69=_7tOl1Qb@{60^LqfAuWo!IE4iKQ!n@%pPqmol?Q$iA{d|mU z9$d?}`{}~z%>814x2lKE0!=Wkn1fZj6-LASU2Rbutg*xPob_FRo4{iLmK<(AZ~J;B z>y&Ld8Jq?UjoO*_AIncgxsfiiARpd-_dZ<8@moV;5?62(LO{+VMo)O$KgCLiv-(_# zB{o(Oat4=X8cIObYb7WX17o`4Vt*^rT~cx2YjX);_*^*ilzOlb!z?G7H=>-0Q)0uuB6{pCMMN{9E2RefoPI8Q5B zp6K3EY;QXv+}72%6iB@J&y3Kx{^ySw#Ao19=}SV9I9v`nyBjLxV*zu3kjb$Z*a+jdZMBAQDJTyfDHIo z^)YyXVP`Z1MRCPTN;f!8&3Rn5*K;{h8B2BwURYeAhsM$4WjWjHj+=L=`U`*Bin8Rwy95Q%u(a@|=Ugl(6rc@Aoc0*Rw28RC&M0Sx*4CVJQv57=cgNB+ zH&)$^NO-F_rwzw;6KK}l0HLx6RImC0l1(dqb}*h(GPSq zaC6x!?mW8^#UZV`Hkl!`(&5i}*tYSf(D;V1BZ;fitfasTWOA$xSGOOOvTK8XYt@c z75cZ$H2%iX$N$6Elwd)ew*XcGpS=CJ||wx<2XjfG0wEhsFa3K*^;86Qb{zF zrc!BXX-PXuL)-s4r*q|nQ{Vgh|Jv~_W@q9kt@9W|cT1cT#`>`*6 zK0ZDH>|4exmJ}LBCwq`%&~GfCFGykF0vE(mqRFw;FmfDzSoXJ&C6UTGj~Mn3$@}(vov!!9BrVBtq}Z@% zJTB}Z@(DQ+Bgy!`^cKVtNz^bBF@iv55+kD{$b^Xm7aB2&8b)Oi$Z^!LNFsZ0!;nz% zh1lrWVT{8=%>I(bw^~qWQB-_HobX`-U4mT*_uK;9%_45Z*bp-3lVh-d8e<1~g#BH} zn?i}iqrZ4!=UibAEEI!ICC=V5>@?yFNzo2O7KKKIpOvtQrO={>eOSt7zL`T`kxVHOuhjtq=oS<@mSU>F^($&pyB!$P7AZDNUWaiNrG zEJp?eZpoS&Pcbw$oNPGRfM7w3pweQ=rcq=XHI^7*Kv+Nvj0hvylUZ(*aB`Gs6n11; z{4}8A*=G^M4Ks}pPTScgRPb1>+c^E!psY(+ zTRBerHD1v_okMP*;+zB7dHfwOdv=BW+BPU^?Cm1Iw&T6Y{W1sJ+;Smfmr!Z1D+{`CoMy1Av1=6U$3YZUXt6zcV|JMSq@{a?L z{qH{vyhf{+SK$+L=QU1O*KT<~cNz$M{Dh}2t@}JJw&;)!;EF~9D{_p z(EHLCbW-PO^GuN)d!rk_oWvjzF7$1UQ1GF-m#w#GCQqla?rg>&Q7&|;;G>9Ew9Ndq zkqwhR$nIgEON;qoI&Bfjicpu(d4@q!T!?>Ht47MC=T>{8 zDkVA(h~LE^X)csD_Y)~)XMuT9y1V&^>yh3VB*TT4J@&J4la{j2UXymfcH2`E43gzS z>-~P-n4Us6Z#Z>dUwC{R`+y_3&=(uNyC2r*TUGwJvWpV^xdDUZxX_B;*_|PC%AI!E zj;~MUtN${r8%F-A8Jn9UE|%rqptC8;8E9jH}I%yyc?Q&t|)DNzuBoFHA$(SJY4~F!?F8K zO={t>Xqi&^(!EYsE`V-0p4cAUR7^A9H%|4iwWjY9&aqF(xhSLf-rX&$ zLUs%*UfDkt?@$K&7m8Q#PsMxsr={*hg{2lp7dss3iKM(4bS@Fsa59w?I=Fh-DP<>! zS6#}R5#q>fJH#%`APOZYf*i;568$vYGw+1&w%L%Lv`)jeXNoHnX5NDGX_RrKGs^+~jN1JO1UA1Vf&axQsYvR4SP(T7j|_GSB*eZL_Fv_>AK~|4|7px_Tyo?Z7e)+X7u;MM3&iii z&qYoMQ*zbrvVC`hjo9ar z8iHi(dPE6b6o?_xTx8b8x5quUg&<49gT0lJL=2JPA|vXrsCT}NMkmEKZ*3`BfFZJ6 zWYdDw6|Xbm(6XlowbHcM`;6cs?Ijw*NlG+;$o(O6l9<<}l9|Kgh?9JL&Nw*v9c$#O zb`i;FQQQ~x6C(mZ@*D3zuCHv4La)QpzFrY@0?Ge0qS>tH9uXjde>fVi0SVy)65u(Y z52XZKgZ@C|w)Ny`2?`MmXtLVM!fs1{bp86bwAzyk!GQeIAA8M-U5IS@E7xxLLIMLC zdbGa|NRa1%dN##0k8KS^9Si{$rqL3XWrc9ZT0g8_}PIQ7P>;Eu3(wBJPNR?@5>5XQQ%Sv~nG322l6 z^-eVj(w?AV#xsGs1mw|n_1f0fU=YR|o2(XIo1BQ8l{H^I4h{ujyk&Jx*>rg#8l#zZ zm0+<1&|Z=1r7qUqMAR*?W@pyS2ta#t${JSZ?M_5fW}e<-H#G{-o_R8qHkR}J~0N+o{N3cmUo*Ikdw)L zJKCNYKzr*(Fcx?jmUG6_g~gr-2Rq@ zGH$1CC>+gh4FxW;s8LzmbPfwW*!XC+O9UGk#YLW6YMeGInThsm2FB+XvJpitGAX9s za8@1zG@23@d35+yYqcS4L1iwYhL{JJ`^6&XC>hzE>)6+$!bN6D(QN0GG5|6fkDGh@ zm)8>52n-l}yE55`Di=|IF8)F~nu(;R)-^ARWFu-^gkYo+9-_@cind|Q+oRZsIu|)h z8&z`i5O$@4t4pXw>@1AoB9)dg3to(iN4*Wpw#Ue`5e+VK1u_3-Q0>YcIuavnaM}u_*OXHUBU8TD}2ai+^N*;CHr0joxr66d9cwS#h|C4ha6d z*Ose+S3?mi{rkhV0y@uxvNQPGH%SaT_z{IIiF$>xXzz^!<=!Ij;5ZWJI3u4mjtaojvgL|xP96*GIAOq(S9)g@-Y_xkeCZ7Z9fuCmp5gjtN0YvN%*TX9$ z;(Wll5r&1tZ%xp|j9eD-OOVOmRzL$G+3@k%%KJquB$BK@E2f+VLQ*i{=(X<^EY#e$ z;2C)b4TNOY{Jmgw+>B(gtuxQNuUP+qq66q+g>gybwGYmdYZ7OKm-CnrCH4nk7A-0EXxF$=Xt&o=0D zrUOA0NDr&Hmd8S>iqz);UUVR+x=)w==vmD|tnVL-YXj&&P!0SKzbZ~*p?b=RK)p~p z5Y+H0=B@Tf>^vLK_?v{&fuJ5-k@QpFkA+M^guW{-p#wqvekOgBt}_e0y38sWNu~oq z{V~D*k&hV*tvofZCft_}1a&tvTi(rtg#@RI=8zZAfuNpai7hGBXQ6v4>iaCr=s-|| zJ}@;dVq!w`5015+L0>^rU5~%Z15Yo*A$C&Y_?osDGdnfjDDxh zdu>?g?v3N7>o(GWpk_3g-P^a2g?0)_(`wh#fS_({xP2`bi>S3qnxOs~8W7ad>ch-g z;Vd-CaI%S3HVp{sCEN7oG$soL`)PWd;_QP9s;lR{T`rj{6n!eBcKQYy5Y(Z)z^k1! z_`tkFaacQf6gCSgnbJ|%j|Y3+t%L2f_V&iL`^@P`@RH`8kX+bKN8MVVf48BdXHgq2 zgl&fHbVje_rm71ar3dytL8fYiO z_~qvNAJEVf*CqARbu`dUawpDD&VNcnD}z_@kK&Xc-cH&rveU%g(a;Htjm#ItG|*18 zPvR4de$o(CRam2+lLfq;UTzD0I76C_jMW`Jo#zw`-cIZ0+%vXOr=w10XaCVvG|)~& z z5zb1Rv3Li^&aM6~6hU1sWN$jnD(T=WRsLqs!9nP8zvF;yJ}FqvisOv0-Hun@?7`4S%K(Q%_I%Y zeXwadm*xH>SOy}6vzt$9pN35%?DuipOAPsWH=XeOHf)+VE8qY0pA(3rlHRaZbi<~} z{jgEXMlTSpoq0u8Qvfzi)~Z(%gJc5Ho3aU7ZSt^bddv6e9KKCNhsZ?>;>N?KA!e$) zD<~%-^ASB#>PE0>%%^y5$qFMP%Y`*<8$H&3Bt0@-Ht3Ai)XG4xM`r`S;9<;*32P1CY)I z!84!F!ls!s`&xQLdjR^`IIr{AUf48OyUQm$e;t4@hSoh(1e@kQ-wjK9Ng}d3R`+b_ zApX_7JbnAI$wc&gYG52W6*kR>y1cRBK1AeVTA}`g37clesD^abN+P-=UOOX(4x2{E zHoANyMh`Pu&nTv{2HBY*^~S4YRq&E!7sBu*t;44dXMfo0gC?+^*svO4$x`Nei0SS3 zLA1WlQvE%!WZf4%Vo9C$L2a8_W-Sqblah7wQZCK9?}KK#=}??y;iTm5I3dBjH$I4B zoUKwT4<{wIW&VmSKYh?NsRiP7igZx2%PKbRxF_d}Y8HFy`6@#P-af9Dcv;668C0wa ztyG33`&RW}$5vBcq~~>GPmU5SS@pziP5vIf=*~B_*V?0C$sTfwuvnMviz+|cyq_%v zOZKHjrm^gPUvyhV`SwadSh8(iDh20``68|FAu)+Rp=G$VShVHL8DF$HOepkXAG8dN zZKQ_%mwl07<|F=TjnFdSNUW&MQ6mN{+4`^7Pq|H53=q6z8D{Tpbml{3~H!oUl~CMj-O`$!Atg-;GX5}e2bCwn2oohI0#;{P0Kf>u^#)PvNlS_Mvl{08gf0x zC6A@oaVDpD$&#+kC=R{ki|mERm6VU61D;=DnJUGt_o6kEXrs<1XcZ@k~&lxq&^W&YG0zbF; zpt6tO?>bJS0|$Om<3h`>8Vnh0x!j6_;7eL_9|iZPukk^J9<>^)rm_(N7rCKPn4J{k zgFd#;X!%8V_>xw37)4-%rw`J4ac<{#eKvwGX;B?sy*z<@(8^ZV7do6#<4an1-4(Bk zO!PrD=UTQGa$V2)?9+^T7ZzVF-dV#h;e6IAp_aRPAA8qr)FOmG10?(8(IH*UKT< z;7Hrd6F15?L9($Lxpe``gZuoR?o&jLeQxza<{}$tMoCZ~ttHa#etF@A=7oOm>108D zT(DkNjZfGcEzzBM;wJ;@W7^!Dr-@^{k3Uu&Xx;DZZ6@J_nM`@}ILi#ZA4@i^sCZ59LF$8GHJRi0W8x zl)L7`vWuG`*)%4}>rUqLMpu_DoqM?ul1-8QqebYh7y44ZkF>l9l1)ylGE-*17g{V8 ztzcdZ$%f{$T1az?7y3{dP;XNL$;MNngO%>7-o7y6ohYz(ss>SK+&NBjOzFI2Qd`0evuP#?psefie9d7-U$<;tk%pg!VN zMaXz(Hn|U)N*o!WJDhANy(hEHKQ96ZPByRKQXdk^A)+<}86aHsA;>^GjTv&D0R$(T z)}xz7UeNJE8>etz@U~?a_V9(v#XCZ&TjiN3#5-qE#WEm*w{2m0*6On~CaQ~jXh8i2+t#4s=?*n26ZI1gjWzUvZQHnQ``U*VOcZ!Z z{<60hY+HP6@;gs|UF8YecIfr|b>Wizm*KW)R&|iwB83F>{xs#y9#0sOsx?Xh70=?) zsH&@0WnqxX6i9k23R~k*C%Ly(hyj^wTGjGXr5EB+eDigNN*H9aPwV?k7o3kr1%}5d zDMT2OyRS>zo}7$FO^=^+j9d&ua^!UPk>y44JVMgsUGX)T5|3&_q7#=73JH$rDVg3W z`vRE^M+VY`GufEQ8>*B_Ao6?R^5n!@%@-jeH3S)09K@L{Na?+Q)TMYd+oaO9unRKT zD4~~(+8gmGo0YIurU5b;Wuf)7jbWM=A%7p&}!M=|oz3i^Yb{#IiT-z@?OsEu?kr9B@qnb^XJHM><3 z(BY+46I62`lcgnH)t_dNfL!$&D-v=blTluzD!!SLfHpMM7_{d?Cd+=~AYC&n0lm;t zbv(NXGFkTsXZz(S0d=oFc7w)DgtjRy@_T|uuShfJ# zrlCynSKGvHEz@CSGl`fawoi+NRJMyhc;o}ghM_n%Qc9MEO-}oxMg~E$Ib!;r5ci#l z=3LMB(V#%GVNrc=6n8MuF7oq+Wve0Cc<32C*?yLZ^baR>Q1?NykxjoLDb~nD-}P@+ z_}ztMle6uDgh@RU^{U2nSBb(oT4CMN(#qpZgr2q*ADIH@Xezgtthmy~MD@?Za|9N{ zIodhnuW1H7OjMfMva2%{l8t4$kwYCn3sqgpAv{?F$tEK;R6kFVh4NXmYaKU3ve|Uk zPDgDb3%%JkS3s!@lFb#{bh8pm7P3lI+&8TPE-Uz@G%bztWudVerv4RM;Iaa7^3GQe z;#laz0fXJHC2%cnwA|Y?t1K3>B>B&tn-A}jRNt88+*`sz+nk+ucxA!6Bu8s#?>ZY; zsPoSJ_zF6_OVY97!q4LvBDZ3XLHTkxM;lXCy1loKh2l4nvv2Q!b2M4u+2_{oVj)>G zH%7!cI7b_Ee8FtxA{M&7Lu9AyLpVokXxVUADwBoY{}g?}dg(fSw2gm+^w&}@(fN6SsEL5?J-&OiO zv`w`>?o8>IOw_YzSF!YKNH%Zo^*(HU%tYj^j#J*ggk3#Y38%%WTntoE+dq_4lQsbU#U1p*WuSse;!VEw*w2!4{ z6)rH*sZUF9I4Cdx*?dyAo=U_J6{8ZF4Jr&kHeY+^wH$9{qC->jrJt!Y0NFhMuu(7f zDihr?T~U8{ECY~@z`8}B%8maVQ;$Nox^!V;+zmknDhQII zC)|Sb?oC-$W4lH((Bkxa*P`FUdG{5;^LZ6m8_mAFX@!q86cBR>sr$yE40L5uy3>t8 zZnfj)x(y#97)U8+by&~?X00-}|1 zEPpbFoG7|vp0^MRh)#CK$zbegQ)YGTFe;T3krzV*+&hUA`G-*re&_S8x#;?bf@g$emW8t=$o$Y3I!zcXN6w= z7dkp8d^*$G6ADQ3i{ja8Y`NR{{;4$)3dk45k)P$B($RsM9lq%?P(XG+aQde4gpLx6 z=Z-kXfC8czb$Q_t4Ea#ftYwn~7x{urt@Op7)6qM-t6O}Q4O-+oN8G243Dn4$f}8!9 z!$m%4es`7|R=s(%3{^^U;3A*$inE7OY3`Fg*mz>P;<+y;M{e3Z=0JU%z3m0 z7m&HjPY9mB%0M1sdhhnSLIH`XdD=ALIs?^L6Pn#Dp@3*huB4b^`v~?plsTI~0kLh6 zyMN>&18ooL3z(||1!VuN7k2`h8HlnmwBsn}<^nDtcsG7OQz)_ZA{3DDmoqGb1F%uI zB+@P)fdW#0!f8*1Hv?ttSkD@D5DJLu+ZWo69t?CyzstH}Hx!UH5|UvX-5BV!qC$55 zHYgx6+iK@&VaThgjo+lopn#-%K8mn)$12{LVXj>O1?1=cjR!t>V%<2YYsA-FC?Jdl zH}A;$GEiYjx#F&MP(W^Rc}JAVDK~ZW=a%YOlCow{Yiiky^&q?2!cwq-=lnVT#p$SIqGvIYkCa>&738Zxs-#LbCJuZTPBU)&p-)j8jEE)>z5W> z#Nor2rmjN_G-I~onWcGb#FC4I%~B7!e}sXe=2bhDb8hZhaS;P=(>y(_M)z->@=iRF zjaYM$$46D}(OVcudQsxkGR~@u4c_(2UYp3+K9}6@K9~~6M&@%7-~Ly*MrRo4d~ss` z^(Z!C%SASeG#8CJfyH{#>e3BM*oYk$Idi`M%ZOSAvYWhZeRUukvF9RsV!5J*C0GnR zRw{ksm>dT#(w}`}y$;6yHzf3frgBVyBNy=-yZUGiRtInLs^92v5GTBPhiE-7yWq^n zwF_*aV;3s>Yrrl%Qh43p-%I1MxRpFxbhK?d4F!G{l(`WA?ZT^SomUTz(U4rEg#G47 zXcrt0Q}ixX(~#b&@J;E1mg!qhimp}PL_=dsM!X!e4%&q!x(!=JFl#Z@_iR{dBeV;5 zDnh%SW65yX5f}F36|@WeKTIV?VhQwE<-OvDI-GC5>kqnkc?AtE6gWYi?+E9c1<7u; zb2rk^w{6u&f5{PU7jk07x+vJFgGRnC%cH~jX3x}Zs*%TODECRU;K}9CF1#4yDvfT_ zkmoVN?eBTeE?h2H`C0cP4ehYBI7TUfc0o>OZBjNyOsII|TEju}&7vO{9#mq&?!9zl zMOiVl3z{3q0`oDkne=MTJl{d{&66!Tw&vKDEuB$x>S|~gE{~}{=vYceUu8!Z?8=08 zLG`@QtyPtDwA*VOEix6_h5NM;S5&L$sD93(kPETUF5H>jP$-K@itt=Rku8DHE_@mP zY>NgqTJ=fmeqQl~c42|?f%5K6bo5N{bywyhXcx@Ck2;Z>OGn3R_*KukL%Tp|=GVJ} z$&ioc`tP}J&@Sj6vP*oQK}TmMs-tHf&@NcjZ(NQr89I~lb$c5T+6AV%cEJZ{I=U;I zQQi{_?LuKvQ`ZDcQlu7?s}~1DyFjCu7JXHvquA~#($fang(EA&ds2nzXnM?8qM|3X z3*IDExpu677KA!U6wHTq;X{u46s0a2dPXY!qBafM1>zp_+lgI%Cw+k~K&f8kGijD-{)m^(L4DEti{@oL4Wpu>6+a9DM z1noi#=~3P0-E?#)Q7SHm588!&YA=`U+K1KK&CQ-Wf5649#?4P=cpRXk)IIV6 zT@bKJ+j#0A9kq4tt3UUV2JAxV3g!>(IyzeGv@1LLEe+U(glnbRReR~^=A3LJ>nk*1 z7gA2SuQ{}hj#^W)uWzcM0lToiO+J(ltE!h}g2DSa&u!v%VVV8n#O`!Dday>;@eb!^ z32qm9mL1G{6G=w})7##j$YAM+WX6 z;Z(e|=-bHgb`Zg-cwznctLnrcw9WO?*I##*a4N3p9eW@hoq>#3Xi z5`xgPpLFXLsgR177_gHY%XqmmJ#kc#hmJo~XgF9<2zOMNLI1F5+1!zY5PNf6Sl`&?Kz5>jz@+Wtgk z%OLb}&za1}qaYOvU00hs(K86`d!v+Mstl=E!tv3)N0cCR=diZM4pm6Sbt<(fE0{qj z`bC9gfjXpOp%={BOUXef$90Weg$AVJos2hEQqqHv&c_c)ceEfCJDi(uw{&R`T6ycU z3BN9+;=~=fll|#INN>iho^$$;ig&%alUGR!Lb6U?I-Q1)idAkTjVqcEgyJ*y@!c47 z$MjQHVeUSuAXMJ5R=R&Oq~ejsl2t=Kl2A#DvXYP?q~gUlURushL^YQx60*NoI<9&Zyw5;?B>s3?2?@v1Yxcy8vm z9S2Crcz^I?YdWOj85_@CwLd~ayI%Aae~E=u929MxqSr)1Q~InP(<2}iLS zgj8%ky*{$OnS?4{`i=^5gH-J0S`}b@mV}x;Q#O`6Ln>CT$TT^7k%UNd#I=9gLn@xy z6W6rjItjhh-+tfI7E-Y)-})Q3?vv2&!@{pt+CVDalhe`d^PPmUf7UJUw1QN8rCef{ zqGS-VQQA@xYYk^^G5ech*UMvkF!$>1qqcD7rfeAI7poM6*46F{HF1G6x1p@ei`Zx2 z#LlJ{%VESWWdE)+Q^^w%SNTXE^M%B2MLpF0P2CgSHU6~v=%5?ONAt^`@6-20d|&4M z_!td|y}SEj|EBq#XlnQKAAwXz?6vj2f#r#wC`qf_kdF?D-E!giSr;ok(b3m2evGbz@(%Cvw;qw#6tO5_^&Bj*~_=J<-;8Tc3s}L1MpjY*LPXhbKBc5lwlP3W>e< zoYwW^Tb}50m*+~0L65@ReZNLo@|-7X+AQ{xupAP*!UH$iWB?oH+);pO!P$7 z_S+uma@@o38_0e?TJ<$N5p_xhRg2T=II$~z^Xor7(i17ZUbwkq4-F7|;{8np4$7YB zQn-rW6V7c_oY?oNnmw4UM&ld7|7&H-mTTLSk=R z;#qXN|oA+bO0UzK$w))Ps_Rov<}hQxk(S+$3zwkL|5@r7=M_ZF@7Kn_=gq6cfyAzxH|fklV-FxYzlnYG zGZ&(U2M`^c*iXcin|AYg0MWsT-MB!`C0o`5h|Z)T=NS+koY-%vEj$=(?|~!^#P9kg zIykZGBsWak;_ZRF-)`*gi-p8~iICVm zdnI@J1$&^8l>L@8A4u$!$9`jL!?C#WJ=ePE4v9Ve_0{H|aUSSey7Ba<3m~zVQ`5Iz zNcKSbQLEmaaezy5=kBk)QM$?lT`_!hI>r_*$vs{p7bZ~Pfkw}?8~@T8F3F`n9~To} z?SZcUEL$jeb? z_fKsOa7m7QP}V0>$`hG{l)N-{flG2jHH(+*u@~t$vd5;_;j$Oa|Ki(&nE_~%tI(8n z#!&XMzu%htz%c-+w;lGMJRQnj%-&v$7|#H7k9@yIVh)tOocP{j$rvK{`bUPYIg~xi z`dt0DP6242=~lZ9c2M?4J2gbEvI#)1kpv~g3CiA0=P_ee&j~>N>a!M~c80P?yOH%h zN-h93eEGC`rahEBAET33PrUL+Pqx$dRM~-hH+H zsO9eCqjVc6d*f!TOcdSXkC>s?74Of7vPX8_>70?|kNR!QM87#g*_(4=l1i?hKl--& zs>4lJD0@0v4!^Lo_eW39i^-hwg0lCfmE{_4>5uj`-glT20A;V$ru=!Goj($(aF#q2 z0%gxmoH)A&JI~8f5BpuwQ1-keUv}JB>W|vmx@B?`pzOKVtNI-H3aB}-i_0uZ5#Ww%5b%3jHC-GzZ;uo}&;__|&j%HE8(Q-hCo z`6Ij9+oc*4q3qqP7TUFYxj*v$COUJA5tO}Y!a^knb^XzrX`@e989~`INudXQyyS;Y zkN<9da?o>AyK_s&XQ%q1x->Ks=2A?HliWRet= zy&YziX6k$V&?DCKMQ0?T>@h-GMFJ%JQOUl?pQn$2ccR9-udpkK^+)!bw4=$VvP`PqrMq6J;K^ z)hpwRKO(fcQ{<%Kov8Zobc+n(05oGxq=~mEyc5-1>-_SuL;!l~%|Bx;AG{M4(6M*S zIVp_ACU!@(e}=Lrby(YPtYiQZJ0#oU^%lzB7bfL-Gd2Q80pj(l4k&vHKKCcf9rs7s zi*E=YI1gn{{%c@lZ;(IoeBmIyf6$$%2klQq?sfa2Sow~!rp-|HGSxz8E6@6&hbfaw zyjBgG&nRnjZr|mHzQ*Rf<4c0FH#cnau|36p=-s$;W}l;=?Cq)vpsN)4A%m;=CQFG> z_OvtmnTyN)P|x1xxQ;=OG6=8bGx<>Kha$eoS2)>1*>eu*R`$T^TI`j>62*B?_N;ch zZur*gheQugiKb73vWMBjk&6lb=t@bp&)!K;_ELY;2)}ptNB%c7t_kZy*~_zRxMQ-x zAGzf3NvhX{vX>bb!dKGnk4}#k5RjMvWpAiv{Z;nZL~6zN>uW&v>SFoPUU_$9eCuml z_f#l*d#m?Jd>ZGD^xuuv44nyO&o5$Q$?eJR$mHe+pQyQmW_$V1pL9-jN9G<;_p&XZ z>@5?%d#2df9o5Z?%?_>?kJbou5IT4W$&s+f`FyEJECRfZ0mP|vZq+2 zQz-w@4cQoMFll#!vbT+~zCvydhDa4}(;Fmv`#lbZU7YKNPANKHG#(^-KTa0y4S-H4z8@re=+tQqqL>@1y)K(5Z4YJd!Uek9%}=hV^#pk|$r;MtHM>uJuV1+$)5}(? zZn;6(`&pZ{_uMmA#COSerHc=gy(P4G?d+GX$Y!nQ<$Zxr_A&&ezApZNAx|DFbu59h zxBXH^yPvQdk}lb)ekcygp86wuixg8gG$*~vUSv6xz3~==J=}V+1IBefnL7WB0nD{3NQ`$wA9_$ES);c4oSv?Xv6FIy@Q5UW(0O>VryG^v%BX5NXhC&uQ~3gI$KMs5H8gFH;A~ z-i4JDEMSFl)c83oN0ai3(?xk=JgEltkkcG0>DY3DS{M{7^ z%bh;tuK;E5P`V&dP{$30zEluN93*=-vfGr3?c7jvp4$(3c_@3AO4P@G3UfoRn(u|$ zkASlGN=H1cEzJ$3juTO^mV&a^RVZrFyU`7KgimN0FA8NZ_uZjj)opIb+`805fge7A zF+uI{d)XQ{^dz_`ebQGbdsVVKdUE!-Ao$tgR2140OfAy`%Tpt_3D=FqacPM)uFSRzzvv)P!N;CLprRlQ;~R|<2K4cD2Snvk*;T3 zsK~yuC@se8ga9>TwUN8Y=qP?3H_Z5`4sF}OPJnSSV0Dxz)idw$;sK4K8i9RBd_k2rMd z@wW*x{ox}9IP$>g+U}NPP!Ms%_Ei6#fH6=IyFY0xUoo4CI%e4_E*c93G5A(ppGF)N z?Km<&`l1dL#4fw(7Q51^NH8GjprZj4#GyImRTlDiS+I998CDjDKI}Z05Jy7g+DwsN zJy;epq|Uu|R1$hLS-e$nGAxUPx$2H75hRqLHm|*73M`Agea_ePO-RVNDC^qx*|02* z1sr&DT#tk@>+MZKOkr8r9BmMIHkO2x_O$gWAy^hoL3^eZjwYcW2h7@XEnrzNYVPm8 zsX#)c{w7Af4fIKZy}7G5j3A->W@`Cj2k4V-W{&B*AWcGhrY#flcY!|XAb$tnCMgnX z_&L}4*H3%kW%2G#;u}dh5|ZX0D?Tb1`lN($Wm7yxkPfAx717M-I$-_|^%!m^m&lj6HWBIups<(s%ebUt)ohkB5NZ{5o?vs=cY1ym}At9TT ze&wU-&?n(XQ!p8~f9rDSlkgD~w9Y&1x)S;%eAEN?3~-;s>b{lnZX`r-pY-^Q(d`i! zBD&rasB#JDf=aK50YG z%{sm0K$KG8MSa9sE5?0NK+Me%rD=i4f5y(ImpR$SeUhS}&Pr^&4xi&eF$ns9kQWU95xyE!Cu`|akH+DI%X)uL z!mlk9{PZABxZ+u(Dl?VC(9@d&&WVem4v*P*>q5=5Ftl{@qt_jkkZ|kKw)T4^OOVIG zQ!5e$AmO_2KWenSc?q(-R#eschzbbT7(+Hx_ya_0NOT4eX+GW&<&_i}JSl9xQy!KS zioolV`5ABS$uFv+RyrGli) zvv+dz%8NtZ#;f;OYC#oLy>^tKnHz_!sM?N~k3$v2k%7?TNtyS=?)rEUDvzY3RhKS% zv4V=`6kANR%7aO%52&c`+e<}C^IRG`vYO z^@GB=3OcyZmsen3d2e>yh7oa41uNaBtnb0>Qq06;gXXzV1t$t6CSL8MB8jy@Vd?Tv z1y>mve|&kLib(Bs`;!Hr3QpKs!-zjgMbqayGYvmdfeOaIK*?X!sp#4LXN3Xxs6Yiv zLkf;>IUR?3zS((M-lhT-6iQh4EMR*aa&tPfl@ zy)%wR4^>PSZEJ*_fFr|y+&@Bei+qSrG>;$mucN!Kzn2!xw2~ zeTL;%R#Mdwf+0T};@|bUK@(PWg71*%=4iBQtl#Hjnb3skJbG%bArXTvx;0wXq{H$v zo>*)$O)dtF%iL-!nFGsjLi&+JnnDcP+I7rbHy@VYWOOQ4RXGOD@6cd8*aXY(crM@6 zLbVvwoABauL;);6^@B(6g=oeg-z%m%(uL5Qi;REeeqc%r(!U|ImtFv$Idk<@-+9R; z22C_kd{D9pK6AEabtFx0LkuE)E_7Wl1)n*q6n>kc*b#$dMkr0a8wtyg&*|{H=0`DT zL-#iEC!w(Xyw>clb?uBnB4b;6>ms2E>qs_^V?2pL7Ef9vyO_{~t@gQ~f}X~JU&nx# zUsWhIZaanyzUyt=@TaNbhqi>1WA8 z1aI~0<$f9?e4=>BKaLDM%OXAm8U71H_vh?CNO>E@>lcQmi8)-(pa4W_2r{sEAUy=J zPHEY4ON~>Tl2L80BoB z00eLK*!YKeSJqNc<->%1zWq>XJh%1y5ME6|SInxNYwts)iFsRb<6$LiL)a!OX2k9WQO^%vH$4>$aG+$#1+mNng3!lPtyWO&KWcyQQ%tz|fml1;oE zqTyE)&ZA^;MEi7O)+S3>vN%$fs_Y;82C9=!(~*NmEg}Gdm+ZIcN9OC?hKSe@B#com zH{)D=W0)n)vTob9ZQHgvt!dk~ZTGb8X-wO;HEr9rv2O40?tRZa`%gTzGUE+ZuBv=8 zGNV9T{%{%LmAIctqSI-8@PS4gB-FtZsfZ$F-ZkK#3fF$?$)~$XqW7_>(YC?_PS~!= zedQWE*;S3$A-DedNMbK%4n{@ZX|mcQJ^U>E&*invqfN>w6l6(A8eQ&upo+@QzAmKy zCw|Mt+dQ7SjIUK*To>+?SY_^oKzlvt+XZNOY>wsHS^*w&Ba2~%~&U+3EHbwi< z6I1U#{=;fZ%}mZE`HR?H#dmDx-@yFroz~(8fdx_HL)5H zc36tc1a{6zXCAr|dtfe@ifdQD1@m7}k>& z-_zoqPtUNzEw$ERprGvpRU;nY5|;7+Ds5m*_!y-H zA({vk1F2kei-csDAEjo+(oqmwk_bgAIU+*;n$=8_CEd5y;=;huNqzF9R5`|LI*-Q3f_6Ii~l&d7V8;j|fg=F0(nppar% zfDY2}NN2ESS=JeXm(`H=3x2qP!IL%lK(tC#ll%UdT?DhR>a7 z)GPk1OXvQ{yyi)LwcDBP&vVbdkNr|bXZ(q~N*xw;$;(g7c99tGZo|Nq?aVHNxbo4D z%hRjM%k-SfAOyoeuBYW^G1v~tQ009HN^pN?su}kyhb?S*3MGpL3!IeR)vV*iV+utB z8|77_?U#L=JXN(=toR0mjyL@*fMs91<_*71e?6^r-w0>Fkwf3z?V<6Br|g)85gqfK zARP=Y-7(R|_@S$%>Xa0j6I%+N*p5%OPz?DDiIgl72`M}j*#$4u`|uZRG)X89QqY)5 z1#lqx;QiWwIj7fAr|7?*`?b~)Ft1ZaB%pvJ2T`&~A^;$vkGYc-OBSxbUJ_w9qq0Sq zm4zD7=t!emr^jnHTsaMLxm@dq6qu(+&ez(<_UI3-`)!uTn+3qC9JG;gSR2ZV|B@|d z;{5rk=P@2`S+z!Wj62pxoU7%szL!Fbfuyx2MR+eDWsCQId5ibmpQ9+)8`1y$I`5AA z74g-jUqyQG3u>erzwSDs*WiNCaJExT^vFxz5|9YVF$63eKbNO}jk6KEghq!s&~dwb z1d!p(eYfV!1qf#G20Bot^EDUlm&R(`!2uHZ{+#xUu5hywDN!q5J@tGYkF&b+xFee9 znoTCr~7j zc#%WanyHXQfD{hfPwOnbH^HpwJ~Y}pK@-(y#8n-k!L{ViaME|gEO4=0>}2}ps*D?_ z#?JziO{JNGM`BSucj;L2`x7OfcYkrLnvW*v^{*K-d7$WXM~$4GCz7_b!;>V9>IphgP)lsf7=O$?wByu^7yh0EM&>t0Cv!KD!!~<{Y%x^InY#$2??vHIF3~-K#L(9Cdk#3zs`12 zkJ}F0# z1^Y+^?0=YiIG4~4(_pB-%TJe7=(R6@5Kb$q)OD8D-{aU0k4R!=F4u2ncRJ1A062g0 zT=1d^Uqpn84;k*k&}0i08{r0zPHKgW@dcOl)Jl4b`=$;}d(~OUj6nz}OX8$pVcm9& zLDH74FltMr^U>AYyg$}tVTsUldOVu(`5d-?V)f&o@qGc*Z(=+kuB}R~&)ymc)Wbzw zg7n9ACcn)4Soe_miU2A%C|@|8CL6#qpOG;mFeWcCf*$jJt~;;|f0xQ?f;IM6Q2m0m zl$5Z%4+d5>PY{Whhs;3wl2@ce$h`eY-2I!;@t8sl(=m5!>$fN5YpEwPjWV?A7abmj z@9KNtEH(4N@ut2EA3$=AW?@H+lE<1g`_+U=4k+OE_{VN&_N)k1v_e>#h4XkHss; z(2lZb@^S4hVXY#S12z~G08OC8aVXMXCGd@{wPi>k=9{$1D9B=QLoiG<5t|Jw$7MD# zGH|>2x7Omi)*Nw@_4NA0^+ne^?>c&-xORX2Z2{rLHg7?pjH$BfY6Eh^h;$*5e3PUd z(_cML-CzXcmjJ@mXL^;nV)#|n#QK=JYuQvZ2xID);gtq+c`|J+k&DSKf<4I2?XtKZqWP0X(vUrF@ z#T2a6 zQ(;y3$|*m0FM;5|x1jpDUz(QS zsv8pbcWe~ZDy1_^;WclV%H+2r^+2mcVtll0sudPvP}mXy{zU3(9Tj52)p1f z!Pyo`kaPMQ*r2534WYjA!Nur$=Q1>;BbaYTYQ^O!Ajp~Go-%^w>O*Kp?WQFQS!59y*xi{m5M)^y^R(RW zOZ3OY7J>^#^0ryt1Z?9fFt7=NcEGNAbYrm#(%)!@4-v^pMj&J*N3f52F?jT($v35t zhRSe)NoZ}o>~5RAvx^|t9Lu+M>F#Q65<@C3DXC4Hi6;+t%Fu)(9S?}ChV=GVRw;w zI>GG#JW@I&rI|c@f1U@fBl-t3Oxq*D2b62L5;6wA0(}i*g3bE85)WVzM02b`e31zF zV2{K$2#{xpVbg?Q+#3OlE+nE*R$F(VzaSKEm<7K_;nYsWdx?+(_Wr=4S3EgIFC>lu zgNdd%K5k7e?ZcR7l_h*l?qR=vmkGT#-{n8MgYBFC{WjP`v!(HEKcvtgYP9Aya3=WqIYEm05R$qC`4FQ)Y!@wxYT_NZal~6rnQJ0*& zLPx1Q2vUnHZr3^{t4UfD+-#e=6UlE_btjWF)1r@qFkYWzv+*4NRk42cAmG}&H!kKP zp>iiqF3f5yNy8z44w@Ol5nsW682wZ)8D)q^18N%q^e9IeZ5BTyVepI{SML z2T_Z+-e35L-9jfRX9M)9#3w}1vh(s%l&8L4#6~33p9Z&!(N=RvR-qMUI#hm?QndU5c>UAAu~8SvqKb>;~Y8nPl&Dt zvDxwD*~ylN9qQBP><+^6l>zV`kmPzs_k{k64s!P@iD5^yD$c>J{%#&nMsvCPZS&?@6T@PsR2v3G|5E zy5r|g66sNFnQX|%PzB7|dF)wPSzUxW=+&*Wu*fz#7G39#f>Z+a!T_uZjA$zlvKYoP z<-?j3)!$ct2>QOIeZmDMZ4v7;9H4h@nvEYNLwNd{i>3Z;JMv$M+audK;Doi6VFAq` z1EV9$Tp25L)vOAK?=v|(b_9{9KM*IRnoeaA($ju2i0|{DyIK}x;}E@#zf60=Htk#E zGnDEwb=TD@nC3a2#i&bkYmYEqhOem8AUV>)3}d(40e;)rcIkopWtoMYszb=~{$E)r zQ&mixQSHdz(l(;JZASXrQ%r}e%1AXw?=82T4Wt!Un2FgCWpAn>3BWM1dO==|8`EY*dX_I1g91?;+8fIQ4cW4;067s}$Oa>HaKBtnZq>yQ=6aSu>o% zho+Y6yny9Zxy$tG=nzE~Lf@GxAdu2PgCw>eb+NGtW8>e1@WgD@r*DiPkhIAdavyG+ zII4oY{|e`SX;c+3mvD&pTe%T74ej-!l0Zc0yh?UT5>P#k@i|KAolUmK;>UWHg!`uM zJxmga!<%R!v%!v>wgwLd8>SBV5r(Bu?nBU2M#UtZ7eHvtQ)s&^e)$oerBIwKfh4J` zZkyq%iZ>>K@mEuitRF67kW@xF)KMMOLnK&p6>ijya?JS@Iw1BjhNK+Bnqe6~GZ3r( zR&Rlx+oOHtGb0+u>~w|_FZ*MKt-Ffn4)r!$FEHP6&+1#q^+FABhD|KLi+ zW1+YtjA7ED{w%Jo78auwP({_@)dRqj!tt|QCX$x?vW31&{?U5BUZ_oz*2ya2*&WJc9J1R|r`^&cuvO`17GA!$Y}6!)WjN{~ zU#D?0D}6~SKzdVE07=5!|98V}D5Tyk!j5}h3Doyt(-_MzUC_-H8<9nBKS4DqQ2t85 zu(QmN0)u_S{G|U7!*)*a_$_`xb9{8lGa~a4a5{N_?+9zu@I-Pn+4uw%`}RN%IVn4m zs%|hXSB9&chGAva4__9Vld)96!&B&A!#Oo26vqVF3Q1$?BGiwpN95niISLBlOlDtw z=eG({7fBO*L5KUJD5@`~(hNDzvE{G-*_FI4WiLH-Qu@^r99)2${`X*7K}ZBfe)P^ ze$G`%_WH?-Z07stkX=-P1x`;W?pWA;2BgV>^_-ifnpF3`$!*yp_6hn}@yF;L&=*RR zd;!Q1cM%Bq>Io)&lo@Ny(0e}>i1=FI4dk;h&o!i{azq`EL%=&Xj!wS;RZuH6LbeJ@ z*b$d;Fu1A38ybNPs+?do;F{9Tp@^XRGBAV~NHRZOd7!y3Qv0JPZ=f%XrQ~W?suu=U z0va0Br5OGO8n;iEKcRFhH`f7d4h%w^@FLtcGEE5`h2m5?3ysV|WqVPS@GRWcgZeg# zY?3vBqeoK{5ery~BRyOQ9t8sXI0)<9v8)?zDAq?$L`^E)gv8bfNRa5X-qI#8 zjmWNL=ik`GReX_(=X{EzPj`xRl0+JJVf^CgNeb{pO|J|`tx$Urs!1>6fW~_{!lAk$ zw2cbs+i-w@`InJLd6j8aiiGOmzd_f(oRVCnJ41SFBm_ZHOQmZwr*Yf5D`NFqQs@R2F5u%i|Em==kz<7Z&(#^+{a>Np zC$9lMJRL)>d0I+4W@uGf>8!nMh&j9)0W?8Gvk?X|LkW-S9U(#JM^a)=EMnR3K}Z%; zMPh4n+sI5bbQ|LB(FfHQ{m+olm@!3~$_b=4;#!Ak_3S|5QhvdYI5;dZUJa8;^+P# zJ%yo+OZButVVIvIJJ^C@d}t-<9Qbe6os?fp6dW35lYDS5m}mtMk0CrjsIUrUNEIUe z2VQd&;I(on;>meZ^eACN(zqCz>@g{fnLq<%NU3pLJ~2PkP-=*nH8!UC+`R~)c^pTu zyZ#x2N>0^&-1l62pC~>3*_4YYpNkR@=`?J>BIsV4@UBTTSCUQ`l?5{9Xx2!J`X!oq zH@d1%e=RZ$J%Q&GrH_j^#p@_+V+u7@(X6A4n=e_?Rk81L{x}hi)L*R7=IN%KyJV-=Z{Yg#PW^7c2VtcI(L7Z%qZ|Kg{|e zg_@}NRsWxN|6?COV~B?>`kOGeXhS&X=-&YqultWMK)LrH|MA2BX#QW^0DGFHnS1G6m?XhU z&6zku|41W#FL{XXQ^Z9$LrbTxYOWh`g_^%OB>o+t|Hw4%0{I^Ws%YneYIR>#|E1=W z)a*NUslxwO_{c}K)E4^x+)=tgJ3o#Xv3%4R_%U6@Srf}=;vHx+l&SGO=QG0LkQP-; zhm_%V8%V8It{|2Dp zUI4RBgl!@Tkr~1k5pRMC;6aOlZ6a2J39t1ibfVVQKvc9RTa=qGk7UccKAs4`^BW}! zS?@L!nO~KBh36t)Tyc8Ujx^S^HUFY6+-bsUfKyETou_`F42Wb=>Gqz zBTYlBq9j{U{Y98n0A!${9B>J$s(iRNe5A$>RJ*AepgaS-!qV6wB*g_42ZP525>iM+ zq)0Uv%4EeGQe~-|3IBM9811G$+gNN+AR);mX2viRnj)U-s~5&u^A$P2c)W5I*`15{ zXG6*;6kmspRdW`p&nmhZ6)N&3ERZkYD8NT|b3=$pFdg)UAc-h{6#DEaRO<*>@{5WR ziX3v#ACNkMojHeDz$Ti8RCbw(=Qzh`nzi9_)l##Qj>$7VOR;S z;@LE0wzqVDWJoP;ACg{gKEfm`5*5nZ{-Tm_fO$GW3=olHL1tjK1Nl!EQchRoo)^It?U$m1O*&RQs#yN0NR)X39LA4Pb2?n^B2jGr00-3D(KiBl5;# zf+Y@^gg*m!7Bgj%!o-4t6BQ8-kj*wEDhnqa#Xmz_cnl2e+__>(=xS-e+`Xb%>xyVm zsS{~1&`&VmzL%#RwE)Qlh1MW-AH@Tm!=dk$ZtvZ;Z9Sb*1I{<$)$CrYs6r zAh&SWX2RY{BC4+~4?Z}^7Upgg7?bd31kD2oUl@PV3ura4G*8DQU(yX!VJ!#Ua7%$W zBg4MUCj8-YbZu}y691wI6dVDTI4lYp23fEXq6tkWw39AphZSzAj6n3;Iq@yqcfnKr%gN?ptLmrvJH_7w}}^o_+cpLtx6pG z$*v;>W42oK?Ongby0H&8j@Fvx%$4+9RE-5GFC$t%S~i=Z6gyG0YH-K;%!T2gB9d0* zOL6cT7=$ZWTVJ3*HxS~j2&LaV0G4lN5%iLTkw{fc5bGc$pd&bczCDdhYOZer@&E#C zS57gM#Ng!XowPtK-lyAPkRV0?fh?~SsN>n$U34gm43~8f$;7|{V$H4sfn{C=vK;#i z7aOMxH$AYCT}VA_T^OUH*FOt8C}u&P4Nm?+c+KpLqQY$L=!{4WRE?ij)mAkjqLNGw zr5M^Z*sH%w3|eCLFM4gv-w7ax5~Z6L6?2Ap{XSI2`lB*Mh8Czi<1q-nOH+Uq_RtoU1MMb zlsN4TkQ_nG90PtD#z=>NYD)Ty6@&RENU+NubI3;)`L3KIzkw@h+{_o{iQn@(7CCOo zqL`C`aUy?;XY1BEesN39z;0j}3m7igZ!4||vK?0cvivc_fyQ(g-&Gy?$^+InQd37H za6^0w>fed>i0Nxkc@?I&mnAW?Jha#cj(Sgsea^OK(gDPA|D*qVWd_4#I9L=esj>cy z;Rr6;fOv-MUBV**K&ORN3@S~69}~)E^^30@OnC?`Obmq14kz)n7$sujls#-7K z)xcksY|7(4_jL)8zM9ypG&(Iscbbg z={r3H2h0A(t;8#0`@PcY;Cd$+zVJW>x^}h8gPLP;ISs2jum~IiW=1HDl;AvNz^#io zy51b{U_dY}Byhxlpz`S87A(!vpFJeZ%Ii~LM->-HBg)7ud&P_dc`Dk~N%jon%G6R< zSRrS>n8Fr>;v#upiJ?`13bl#$3cVG4>j`CJiu)<>GXC^%80s)|@1Rl*bUES#4vKEc z!MhEsag0$Fhx*r5omW`*U1m4#Akn|Wft|1bSDMA8=nG1(-GNrM@v>@$z(W>?z(z)P zjGi;?gSFLyWq3Rpn*no5K0JH#GO&l`G1{46AFhQsW}=<*!?qs8>dX|^K8(TIcOwF| zT+Cu2J}6WuWIPLuq%870ZRyX$q|)cwBJ=@!mnlS71jxO!ct0MwFwRL_tTL3Ga>K+& zw-A3LPv}p@+Z%`@Pyc=-79F+*{=C()oXMoQmg6vvb$h)R5n(8ptiZoXKp~-y@8;kL z$}wNj+l$omG^bE5$w0=o7^`$Eu)DxpiaN`PX4uotP;E8J37+bjAaC3<)lM zigMpu;G(ra12&9Ch|`6G<;0t`;K{C*unUGZ=wuc#xet~YCt@=IoI z8^$7I5aNe+6hJK&CK(3ID3GSW^^BUGrh^R%!e;@1BB0ejFO=?Jw&N-IIbakv^7g~- zE(tV`4*137IOO}A2ATEY5)*I}unB%LJcM1xzyb@6LU`TBl1#fruW2{7L{R!eS+|SU zHu!zvAwS97GDtZRK(`@4Zfw(01ztCH)uuDiagfVxj8ye4wX#4K4o7H zp!zA_*DPJVfrG!80be7sdh`vHkOJHwH)B)K+ZNLS@dFd*J5+D|Dl=y_@b}2RT4Y6x zxTpea{?OYJK{qAd;5}G}KP!>p>9=2GoPZP%d~l(ATO1W$90W5t31`zpS>BwOcZ=S? ztt9yq<7?WXqO@v^b!hQkfQwxyi{O(5)!SnE&8_H=8-FrEitRh{%?n zZ}NJqVB{Zf5%bbZ0^K(I_9?gHeh-h5g>cqA$>iZs)QlyUFas9(P8?1!4qFRy)N@mL zm0B3g5fi=^ILi-&z@TCII7^_6Nx1YL87Tp)VUJ>%=Hg_~BTQiO>kKSjfUGj+U1bsH zJdbC8z_;qlih1?C2!vJ8aS(7x`YKx_bCRN*TpIROg>G?_n4dTE)66Q5GOo43C_mp8T!}joQEE%UW(i^pM9Xx>Y|X6pbtnZ{np$*f3GLK zSQ^3D54cwIAPng5)T_{mH*(y%%y-FOO^4w<<^2cJP96ao_>i!72;_ zCilO+A4#2J_E90E1|iSBx3gDgRSAd66PC>eD~*((-tg8(5+9{AI(hEH+syM1q#+0V zDd9qCRi91p-|KIoevrkSLACpBeCf2`W#x#Duh2%Qvv70!_4?i&8NXn*W(q@lfm~A1 zAlx2%DDY-2cu{Qlu3LiSSM`U~VAkyE=w)O!q8B}OC_c*NasBhYYkzbG7Ej>TW$`XA zaYGnLIgvI`&9;l@i?8lR+l^%@Kx2NL*R7x|f6qcumTmfixZZiB&9{5)_%C&;^0XL< zSKbt}dL3t$WN^szaTN&lvqr*6Z;+AW{L$zluCt`xz9`(zkAL+>buSGKEC}qbCdA!Qg;%rXOX_^jgpAOH}Ho?mfSZ zn|=Up_R?5dwV8{H;R@-B;q|8dV!4V>0*?${C)?ja-~fVi2I>v+Q$`8A@f!)(SUu0J z{5>dn#r^9+3F93MI;P`R@pOPrCqb!ImIZCCHqjs(7Mhf3QLGRlP)%}1YU#Ux7-iJy+|M1`)7!eP^L-(G88HuCsB!0fku zqxopibsB8HyzKtT{M~~rCJo0!;+K%VDq43VCAaPtz7sVmH4xNLyBi-GbwFs?8?VRz z%84g|ZBA^aMo5>7_sqM1vYG#jTY!Bz}y2i?1?y~QSE;Bb5$~>b6JeP^+Ovv2EU018pPQ( z@y!Pn3tG>wB-IeX;cdNuAfxl=h+sf(J`<6GffCjvX5j7?ZKh9&N3@l=VqI;*xZ&cq zh{0b5N||qxrwDStqHS$8U~M^?cr%c+w5Yf2&l)Jqn??0ayak};rv4hg#wl?R#LPqL zJf@P{ez0ZC_@9Os_r(X#6l3SQZTG%?}Rv21E9BqNI=3-N#B| zY${KMm)2}k6r#VaL&NbPM4(`~;7xJ{a@P;?tcw4h&bR0|{!S*dseB=U1S5bKfVsee>N%v_C z^?g(RC0p!+h^ayHY!5j-fM*7)oOCslTqHVMkW%X4m%M?xLC%>hLZTr_kN{Ztr~&_r zejWCICrpf{b|%kU=cm-t0*if+Nr>sX}f4})KXby@4GknSFh{^~O{-X8M-`;Ke& zrkvSwXM(HnTU%13W*;%(R&jpvQJW@?nK*7?rxvNK6@xbp+ysEC3yIKJw2raEba%I3 z(_`**HrM%XPWQ55FMq9@{ee1!4TZ8d^O@2a-B5d+gdixqWGSET^-3j``#*a^H~;mg z`X&N-7ZQev5QTf4(NEB=ici)^0zFL(L|*aS}#TK8{5U%R}SFXmIc?>MXAyNGRM$RC>tY6hfDw>6B9 zg)K3cp=CvC;;(UjA+DZoIK{*(CH|VML+#T8bvK89i@YaQaNqdf*|cL!oPcB5xy7+f zrJyx*LgruN#J7G&8wdqneprkt??b^Yqw*`FQyBh+a*q1J@8iX zEb#JHEE+Wqdgl*_@0Y=VrxszMbiw%au?N0e2W#-gfZHGKf0Kj>0b6_4mUUZqSV^)>sij@Oo%u$9y(uu#forYX=Y3mIR*< zvpOM|&ed!*mb%+Dd3woOD3HxV0!uF6vjS%Sqqm?|0F(6d?~lv~`S33z?7md}4W> zWhv8iR?VgcRi2-~?>1?tj5)hGmn^=X!aBJ!bBC5a6k78rixu?tVgv{}Kg&|;7xt~? zM{04@8!Vxt78<|P{zch23UjNH{_;7coKB&@86*3 zZe+n}^J>P39#*M0Ueu1$NoO`+1qI&X8f{-Y-wyTH;Ee&}XTify;%p3jFs<)bITi;B zoimYe(!4sfZow<1>)%?JUaEJu`p9j<0n1tBL{SzJCv)y9G<0MIZ9SK-_2g%Q%i5&k zkqh^>(6OUNS@WJsd4vK}QV_lu$buZ-wU30=)+`meAmS>kG?WoEP^*6OQD0|1#H6x! zShiFd%$EkR{5rP~3%Znhe{o}t+RzRnoE29FP1B#m*IgVL8aN$W2bX8*<6KP*DKWV> z#$#Yb@0gZ0Wmj;qo6-@(Agxolv5O%NtYZRvHOOvHHxWo#Tc6ts#xEI*vbu_JpqL1Ve_ya1sZ5UHmZU8n@)&wFOfaA~DO`s&d2eK5WGp zTzJQheopTPiEBx|7SxcST9L;9e9YcD4~7YQ*F@bDY(A?!H{u@Q&1$cvRe%iWC-ALlvu5Fc5WF^f;D$+E6EX0&TD@b&J84j-)+ z=|b&0nprjcK7#Atln|4oECdz;%TZ;t1L_Jvj5S+a$e`U$sK`c%UZR~TbbQwIU zf9Ty5nFs^jkU$5_)HrH${NZN@Q^wMLrFxE-Y3;i$4F-RgMKB<|iT4#GK;s&M4GJfe z<^%DMy-6ze{6jZP7!+!urkXvBxz1Ci@>OJ^XYqZeUBuinmkk{`lQP>$Yy6_KsgFDN zFQhRtceBYn-%s1#p_P!hIIuyYAFhLNw!v$le!{*@P;Aa~Z54?e!WXvcde{yNJ-_ua z2(fV-RXPa)@Hda-3u<~JX{v?6~S}m5kP4C(ePKnnDSl2APt4?%v)!t)$Z{bfhIV}NaC)} z`PF5P$%ROwhNBDNj8COP5y5RfFPSKIJ*)?$g;bvoVy5|r{eAB4e4U9p(SnbcR(E!DWsqmybF&IPV1CExWj*MOgjMm?Z+z4o#qD3 zW%p`XSML1N?;hXd?pySqwMF0faxS7272(~;vCV>meax)ALtgkP~H&w#vI^tvc z8?-N&9S6a6Apr-J?qgHuC_AC3?Fk4{i9G5gP`rsrNGGK%cB!J4!x|yP=Suj4B6s@Z z$K@H&>5AVnWh=;$hy*i?UQzzwUaf?-M1);k+S%^0kdZ=nd#bP%a+a4zm|a!>>fE;Z z?p#aIP+Q1_hcKL?o?)TM7r&3*YVHBy-%#X8h~Ki!S`xnu6#c0IK?`Xs=*m9L=q2+n zr2aROU%CTnP0~!3NHWP{je<@L>ll;&@Lx#8Z)EOA@#v392;D^%-n?|@zSz6_=-hGr zz})$`q(79FkqIo!&gn&qe@*XZwLz*JiwS=HEq5tn)Xwd-7e(;u#3Gd7dpV z#}x#C!3(brFb&az2%rrO8cE}E&Pa+kh9w-d>=FubW3T5;{OLV{@8p06VhB_YEn3+9 z8T$tIC`U*MU$&+XOm)SHFb0XnQT%oC7VVO=*E^AE3>Oo303>sB9>LWr`~|b&&@&_= zU`IFd3zPfL(>#w4d#TkP5m^e}#^{$3EJEs;KX_^@q{y%MlKF`2(Z%DXwcnDod7DdK zbxC-1WBi;rkTS77ATk@lr=#I_e)CEqk5wsa;z#+pg_|RO1#<}PAF{LFr`M;pSZ~UMS)}|`Ltd78FpWVzY(D5 z=d?7GmeC!;&36y>-K6JU+^d>uMi$sLc0L#m{@W*`CVv}R{1hK%A_Z#lC6w|G&r#Z( zIww{BmTK;Gygttf|6(8w?~sUmPG)gYzwZ=$MEfbls2qc~KOR?)c5GbYzMbqz(kRFV zgZC-rX`D2IyEc%kwLBR7h?vOOTU-(p)6hvF@Dy^&0GXlW@WoOs zm$K@Hgy+a5u4HneqKJG%v%`nAJKT{0z3Y{#>}J})MccAhn71KiqoexL{Mv8Qe#$DL zY;t6nv0imf+{B_NXjq{n+Gd+Hb<LJ*oXd_6c(ai)9n_sfk5!LV=AY* z=-J#{6^E-L-&MV~E`3xC2(69gIM#P1o7`sHL-84}=^qQQF|1haCQo&T!(+iUT%*p% zr^hZGUcOUMo%9PnF0Y|V))>vB)`bcg8L1B+ci0ea7+vk0#yT>z;R@HpdCb3UUI^umA`+{6l#d`=ofb%hEKT77P53IG4W$M1| z%qXAguYJ49vlK+Rq{wOB@xA|lFQ==%!isiaOViF$Ag@d$Zz>oqsK;`FPrZrVW#&s; z=M-ZNf*gOKCKk?>c0ViRbb;a8hP8dnmG3%Lk1)39_u4c@2H8y6dKII#k#)zGP80hq z|FmU4Qd8x^u)VAnpVA^1Z*rWXwwHhJldP=Q$xIjWbVOW2!=$3B(X2`N${(i&g=b&FDTt{0bCWc@1O6qNZn?M?CdTTriIQm1+k9@-Mv9^}YE{$B3k@CgM@BuY zvDS-FtG2gfJ+6F-=Zby>+8k@@d-syT0gVu+_Ao&;JJhpfZ>t6*R6sx{~{eP7iD6@IaP@*@%o_IcKv41Z3p9H zWwgI@G%>{PIRIsa-G6H4NEu?Nt~Q^}t&(^+4`DB6Fp9RZu{q#%=<0EKAMV@9jFJ^) zD8=BG=I*3$Ii8%s$=0*~;mOB2Ge6%jWfz&<+b0>BGu|ALNbNpUZ#Y9KUoLJ*>)EXD zn%J;B#meL36cMH1(|~uaf}{i}SYNutKO)TE7FDSS9f=9cyTh~5S;rdheD{qprIbJL z%3saE#*VpDdqP=?0*#UU`+$Z2E(hH={MQj`!W<=WCgO?9qYKDATJ8i&s0AOQSARITxaQf>!uplqiZ&{Vw zG9_I^xXyZ9!4xLGLKIWAPQ2R_h~uuq2O6mJ^0BOERgD19Zf@^ev1r@@(bZzY8+DMu z+ip` z&gXX>@WYn;LjC9T!N|M{JE8o?XHV*;+S^hu3HaNU&m>^c7j`{=_pW+pY&N_6j0+YQ z@b%@gu9}y%d>9cO8A^zajU5>s?R~o!dN~OD^)eIRb>(-h{rlrlRXXBpBKul&+9|29 z@NYuZwxC8BP+D`qmepv-3!HdRV$ykR;y1#O;h^15L`YT%bs_1(4?YiuDDcU+)6r}LO}KW z=`n*y!j6aqys7m5z2@+5{=FRuVM(KDo!UmXS-*gFcSm?dGY?FR zt|{<~V;g4ccDRe%bNMs;1JbTWpWkhvx#Dc)`Nu(PyEA|mvyCn1qaL;LSJfb&hrPzr ztzPXFgZF3)<`Z3c?!c=u?L?EeVqWtbuN2GMfiz@=ngc^y1rd(DX4|^POpyfO^#25} z6;SG@&`nR4iGMBZ8rDD6-fir$6!i$3+I?1nU6uBWnLsk3r8kS5GVikSX_|?;IoWvX zt!`kA1T)G78dflm8ZTLvF1g)N=RtE|h;3%@X3NRbN{R4PQK^rMEJvW{JE) ztlprKx!$7KP9jfCs?E4K=CIu-zB0cc<^yk&*9RMB3bBmrjO0y7Of)RG=_qTtHQ2zw zz}}d@Ad-!ZjguqEzrL3vyqgoku>L?pRGi+unhzsVdph_d6l;@CNT)6}%-?XP^V-K0 z1LwoqyB+M)2Ezr?v%sffHBQ(oQSbXgBT8$jE4;M7#$L%zy~uq1>0%f0w5&rfznX+Y zI;rYAxYwjKHNDo`UDCPr_-(_y4p%SvSmpfjZAXiIZ}lhcX>W}V&ksSSHtb(5kk#su zUe?t=)V${OiCb@d3&kZFZ&!Wf6+RFzsO!wTx8TL9Bdad;nq6nRnug84*kbFhGKeXdxpZr)cjZZM+!FQe!N639+tg&~ zux-&Q<9O{W0_)t&$ab}n9zJaPrrJ!%<>AQ4)@4lU+)18W1$8u5 z3B6h_gxDc5x~>O86MSz^af;nlzkQae z!`oIWoUB*1y=T$?p}IeN?6r3PpuP2jD%M@i@0-sRIH{`TUFh8@`7-q6+w!BVlQ#>@ zDilXsmm>!FH=c0}^8D7duU2KZn=rTTKgyH&!BZXMLC==Se@$E6y(V$j;d4S`F?XC| zA;*XABDdTT@BaFVDp^V)a-?eo`@}1jOL5M^9=0v+nhCBIjm}FwKl)aGtUz?l`j49TDbMgC!@nhHfJP2+8vVb zximP+zJz&l3f8<+9WA>#p=$uW`jXv0wb2eF$fW6z=OV{_Kyl4xrN&;wot$@Ra^~j* zJhb&=&06fsIF?4oJLx+68tPgH!fkC=C&^~sZao;n`KVIq(g0LHU{uLtUAnQ;V*1CYHy#L!-9kYFoc$s{IzdTYf`Jctm}{UH%VWrd97HY*UaHCP|hJZ@EO5e+blwI(xP- zV|%BWMP^S)<-tWdj1hM#nIjt@H?~&=eaPSVA+zp;_Ob`G&-`dtW#}ZHw~JQ|NYQeS zkH1jWK42!SG_v>OMLFLy9PCHc3#x5O_43F;4qIGV1E^F6B1QB(@nPF4!2_jz$ARGE`qvrXdtIWAKs%XOgD zFDkvy)J}frzg1LJv~lA`Uc~7aHSKO7!T0vMdNnZsM-V&D8~W8!M}${6!fI7xQr6TRFa3f`KSJQULS(iDC!Y4biOpNyV&w)Q0x365`cyb7`x z#j~=-eL2#+JL%&V;k7zOrkR^J?F)WncF(#03CC`e?&0=4=i?`2gPb8E-KyL5o~@bS zwRV;S<*zy2<|6kZ>%Aq!>hZC9yEg*^D?0)^F+qs9hKWY!P(S?6r zvc+d?=W@}puZv!JDMlsM$n3K>t-W{;IU!N;WN93vEa-!(ICqcHwWO!)YIPsf&wXI- zSbXvR(Cw7s^s(<2`aPd=Ki;d;Xm8;;d!2^G62bi5vcZ+9F7?(TpQDI|%gphUtP+lU z<6ch61R0*Pg!LV#XO1 z!OhyfFQ0Brtnw{RSK8u>kDO5%-|nFHq^at0kt@hp#=&tH7Z>@!&*C@uVnJ&UEqANWWf>3C zgXg{lUo9PC?PRZ`@;8bZ5^46}FTDRIW#gA*)Asxte<82*$Lp8dMDjM=0UKFZXs$lE zh51?YCjR5SVhtmL*913&QdRMMIq~wismM*WI)R+>^IFD-i(2ak5IdrmUv3TUOO{L% zNvv|-DkD;>x#eTyeNCvY?g77w&B`w3yLRb|Uxo4sKv|om`Ql9q_C*zSBnb!#X5Bd? zqFTFO*MD^&&&{Oh9@S$@LO#_TXIymT>Z7-p{9WSub@IQRHI40 zi^XrO$VvHUy(~P$M$#XWd?{FU%e%YbV0M-~quYaQ-}ZeyoYV2H+%iZ=`sHEMn5Z)x zCyN(l-0$qnb*4=&jroulbF=vT`J^0qtx%s!<>f0^$*>92r>IE?ua#$o zfMvCzO1@{p=Ec?{hu9}TvV~b2Pu$yEv-exfpjGvtv(GoLRj-^iqH3iMdw&s7n=%au z@)Ap(s_#IeY!=Y3?_#Lsyab9pn8I?up8mwgxCzBpCep**DgX~?dTKHY2(X|Aw5b#-F(4Yw_> z0-NF!5}ac*mffxlzi9LYEW+iM6b63SFBWQWRm8wp=1fq~MJq@@kD^-Tw$E*Bht_$f zHtd6oJ)O+DICiE$IqO4Jkog{$Z!4PD4EDMEUS40zKX%IG{d=<=Ld#R1j4)<4y*8bM zgVPGC>f?0{@|MDFRv4*6;+PwlEx6Lb*6!{SS6+p7K@>QX4}B39Tj3zP{2P7jD64(c=|;^KfwLq#nDGeT4DmsG!Eu;6e4rY{{VLyGmIqOsk-ldZ$ck zE-UGAe$Fi`OQznN^$&FST1zq74!dSiUh3E0^$&PzIVJkyHiK7|9!*V69qtIdAo(IL ziRK=2OB2$wN@NRLq)p$=+yV|;rw?ssSCIB;P|pi)(Wm+K5?f%M5Qs~_fP*)bdn zdzERy3u1H-K4tybC2jfIr&k>%vd1;RS3F}hP9$kTw(jFEp$hsZB#q~t2>jT-;Kb8k zP1N>STl@NM9&2rQlW-}|XXoh%?)O^}&E-a)kX;P_&}|zM_mP=^Y6)l^VbQT%11b|y zOpr1Dn8|8Q`{ouS&4goQ0bQW*x}6_rz}`1w9&rV!`(78ffic>g&!K&zwdkl3&Dc=r zm0X?0x8vSNz7g0F7IeR< z>q)O2E?v;z#K>=;drxl(he}iAUD@TEAMZV%o97u;o#-UK~ zZm=@jzP8esOSU(L693aWz$4GEGu) zLnQdk8#X->E$Io>3eHCJP<49vo;@dMW4Pbz zo!|aFxoc;0$B|96$cw$Sw{@;5#FgiFbWJ51lvbMY+M8UsZeb|>cxCcR`H>9_!A~bX z7CtQN>%F)nEvNhPSgS#wOT<>8MAhwtFq7O6M)3z z#Wkk)%}cHILUT4t*MR6pB9-b7J`@S(C=M6W(AcPM#^fcfA6vlvQhcqnG<(UXYiCEs z>V_3Qc3%9rtEu*_);M2hhmGyZ;i+Zr!=~-Eb(c1W=oOV!w^WT;Z`kwf+k=~5C1PXa z?<%sQF%aqgwSs)&Fi|NBiY> z2~!?|a$9z_M7+(6jsoAjbrf!P@Sn6azLjHwU$j?p^Y?7vN3=(?=9%mqpv$HWJ06!K zzez@^Pog;4nlr0)WoFm+r@p++22)=A--6*6zpQlrW)<0xT$kc|dm?a&Y5t&Ks&#JL z-huD2hd*uD-M@=NOEZ`;(!&&f<%=%jdV1eBLp|NZsFtZtM`;PB$hf_AaVg`$2Vw-+ zOPv&Q^|G_G%S3OV;T6c@E2Q7d8Bu>yroSOhmSzq3Q6;mj?$}OSnI4JoT+gYBegrQp zBV~Q<)*T;1%f82hdt>?g+siY0fafnR@!rYFTf6!E_gaDS4+)>zdqd1chhpJ@dQU$c zc{O??nF8`)g8Ss}nZ#h!;1)ULLEtE2kQD(AXOxh;I(FFRU zGOqA0If6?sW>g^BD#av7xnP1}#d}+u?c9r16ejA01DYMfH9uVxt@1zZ(SeT%?oSd*L+sBS-1C|?M>^t+%pn^$lbS=cZuv<_iS?k zLv4x4!|cZw4J3E0=P#;DyYysn_vich$2pbS#EQ+n>{E&fGt=pOD{>*1&*uGZ$Qmo% zfKO26(4th`hi;6_zEi0?krf)oIxB>N21mprbGAysk9|!Y=v1swY^}{Vsf52MQgrGR zdzKsgF1`)?Hl$ep%3fdl#-2R`n|-yGO&bSp>f>-%yUN)|CmlYhZ|UA6dX43k3M3*xHSa_DZ8k>iwG^PYswJ%gLq+3wo#^@e*_d(_?4 zwmVA*L~4!_m-L`u0o9J!VeObjt&&{^vI5$DO$Bn zzq994_N$IZP7h4l_pRkLnQR5yaDJ9L&b~9c;aM<9*RXBmKzGnRS5c?2rXhna#(U*` zW#3-*^c0u~`={(kw=TNxbNbryB?3pkp4L5eLIq0QWt8iA|Ab0!p=Maa_C%Vw{nT9}8MR7GrLArNDF)kx{~w^SPuBnd From c17b920bb666d3fa253c8d2c8c5d79cf4cd0d350 Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Thu, 18 Dec 2025 09:50:57 +0100 Subject: [PATCH 53/54] =?UTF-8?q?=F0=9F=90=9B=20`Diaphragm`=20load=20case?= =?UTF-8?q?=20type=20is=20added?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #1164 --- FemDesign.Core/Loads/Load cases/LoadCase.cs | 18 ++++++++++++++++-- .../Loads/Load cases/LoadCaseTypeEnum.cs | 6 ++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/FemDesign.Core/Loads/Load cases/LoadCase.cs b/FemDesign.Core/Loads/Load cases/LoadCase.cs index 316a3b66a..f9f425482 100644 --- a/FemDesign.Core/Loads/Load cases/LoadCase.cs +++ b/FemDesign.Core/Loads/Load cases/LoadCase.cs @@ -36,9 +36,23 @@ public string Name } [XmlAttribute("type")] public LoadCaseType Type { get; set; } // loadcasetype_type + [XmlAttribute("duration_class")] - public LoadCaseDuration DurationClass { get; set; } // loadcasedurationtype - + public LoadCaseDuration _durationClass; // loadcasedurationtype + + [XmlIgnore] + public LoadCaseDuration DurationClass // loadcasedurationtype + { + get => _durationClass; + set + { + if(Type == LoadCaseType.Diaphragm && value != LoadCaseDuration.ShortTerm) + throw new ArgumentException("Diaphragm load cases must have ShortTerm duration class!"); + else + _durationClass = value; + } + } + ///

- public MaterialSetTDA() : base("SetTDA", "SetTDA", "", CategoryName.Name(), SubCategoryName.Cat4a()) + public MaterialSetTDA() : base("SetConcreteTDA", "SetConcreteTDA", "Set concrete time dependant analysis", CategoryName.Name(), SubCategoryName.Cat4a()) { } protected override void RegisterInputParams(GH_InputParamManager pManager) { - pManager.AddGenericParameter("Material", "Material", "Material.", GH_ParamAccess.item); + pManager.AddGenericParameter("Material", "Material", "Concrete material.", GH_ParamAccess.item); pManager[pManager.ParamCount - 1].Optional = false; @@ -222,5 +222,8 @@ public override Guid ComponentGuid { get { return new Guid("{A80FC5B7-F548-4DBF-97C4-AE73FA07CCC6}"); } } + + public override GH_Exposure Exposure => GH_Exposure.tertiary; + } } \ No newline at end of file