RS3Scripting 4.42.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- rs3/ApplicationManager.py +77 -0
- rs3/ColorPicker.py +123 -0
- rs3/CommonEnums.py +16 -0
- rs3/Compute.py +105 -0
- rs3/ExternalVolume.py +48 -0
- rs3/Geometry.py +74 -0
- rs3/Model.py +795 -0
- rs3/ModelEnums.py +9 -0
- rs3/RS3Modeler.py +109 -0
- rs3/Restraints.py +91 -0
- rs3/Selection.py +123 -0
- rs3/__init__.py +18 -0
- rs3/_client.py +57 -0
- rs3/_proxyObject.py +5 -0
- rs3/generatedFiles/BFPCommonMessage_pb2.py +38 -0
- rs3/generatedFiles/BFPCommonMessage_pb2.pyi +47 -0
- rs3/generatedFiles/BFPCommonMessage_pb2_grpc.py +24 -0
- rs3/generatedFiles/BeamDataService_pb2.py +37 -0
- rs3/generatedFiles/BeamDataService_pb2.pyi +5 -0
- rs3/generatedFiles/BeamDataService_pb2_grpc.py +226 -0
- rs3/generatedFiles/BeamService_pb2.py +37 -0
- rs3/generatedFiles/BeamService_pb2.pyi +5 -0
- rs3/generatedFiles/BeamService_pb2_grpc.py +140 -0
- rs3/generatedFiles/BeamStageFactorService_pb2.py +37 -0
- rs3/generatedFiles/BeamStageFactorService_pb2.pyi +5 -0
- rs3/generatedFiles/BeamStageFactorService_pb2_grpc.py +140 -0
- rs3/generatedFiles/BeamsResultsQueryService_pb2.py +50 -0
- rs3/generatedFiles/BeamsResultsQueryService_pb2.pyi +48 -0
- rs3/generatedFiles/BeamsResultsQueryService_pb2_grpc.py +141 -0
- rs3/generatedFiles/BoltDataService_pb2.py +37 -0
- rs3/generatedFiles/BoltDataService_pb2.pyi +5 -0
- rs3/generatedFiles/BoltDataService_pb2_grpc.py +226 -0
- rs3/generatedFiles/BoltService_pb2.py +37 -0
- rs3/generatedFiles/BoltService_pb2.pyi +5 -0
- rs3/generatedFiles/BoltService_pb2_grpc.py +140 -0
- rs3/generatedFiles/BoltsResultsQueryService_pb2.py +51 -0
- rs3/generatedFiles/BoltsResultsQueryService_pb2.pyi +75 -0
- rs3/generatedFiles/BoltsResultsQueryService_pb2_grpc.py +141 -0
- rs3/generatedFiles/ClientService_pb2.py +40 -0
- rs3/generatedFiles/ClientService_pb2.pyi +15 -0
- rs3/generatedFiles/ClientService_pb2_grpc.py +97 -0
- rs3/generatedFiles/CommonGeometryMessages_pb2.py +52 -0
- rs3/generatedFiles/CommonGeometryMessages_pb2.pyi +92 -0
- rs3/generatedFiles/CommonGeometryMessages_pb2_grpc.py +24 -0
- rs3/generatedFiles/CommonMessages_pb2.py +66 -0
- rs3/generatedFiles/CommonMessages_pb2.pyi +145 -0
- rs3/generatedFiles/CommonMessages_pb2_grpc.py +24 -0
- rs3/generatedFiles/CompositeLinerDataService_pb2.py +47 -0
- rs3/generatedFiles/CompositeLinerDataService_pb2.pyi +51 -0
- rs3/generatedFiles/CompositeLinerDataService_pb2_grpc.py +227 -0
- rs3/generatedFiles/CompositeLinerResultsQueryService_pb2.py +63 -0
- rs3/generatedFiles/CompositeLinerResultsQueryService_pb2.pyi +139 -0
- rs3/generatedFiles/CompositeLinerResultsQueryService_pb2_grpc.py +314 -0
- rs3/generatedFiles/CompositeLinerService_pb2.py +37 -0
- rs3/generatedFiles/CompositeLinerService_pb2.pyi +5 -0
- rs3/generatedFiles/CompositeLinerService_pb2_grpc.py +140 -0
- rs3/generatedFiles/ComputeService_pb2.py +48 -0
- rs3/generatedFiles/ComputeService_pb2.pyi +56 -0
- rs3/generatedFiles/ComputeService_pb2_grpc.py +147 -0
- rs3/generatedFiles/ExternalVolumesService_pb2.py +45 -0
- rs3/generatedFiles/ExternalVolumesService_pb2.pyi +34 -0
- rs3/generatedFiles/ExternalVolumesService_pb2_grpc.py +270 -0
- rs3/generatedFiles/FieldStressService_pb2.py +37 -0
- rs3/generatedFiles/FieldStressService_pb2.pyi +5 -0
- rs3/generatedFiles/FieldStressService_pb2_grpc.py +140 -0
- rs3/generatedFiles/FieldStressSourceService_pb2.py +85 -0
- rs3/generatedFiles/FieldStressSourceService_pb2.pyi +182 -0
- rs3/generatedFiles/FieldStressSourceService_pb2_grpc.py +657 -0
- rs3/generatedFiles/GaussPointFailureMessage_pb2.py +37 -0
- rs3/generatedFiles/GaussPointFailureMessage_pb2.pyi +14 -0
- rs3/generatedFiles/GaussPointFailureMessage_pb2_grpc.py +24 -0
- rs3/generatedFiles/HydraulicStageFactorService_pb2.py +45 -0
- rs3/generatedFiles/HydraulicStageFactorService_pb2.pyi +36 -0
- rs3/generatedFiles/HydraulicStageFactorService_pb2_grpc.py +227 -0
- rs3/generatedFiles/JointDataService_pb2.py +45 -0
- rs3/generatedFiles/JointDataService_pb2.pyi +30 -0
- rs3/generatedFiles/JointDataService_pb2_grpc.py +313 -0
- rs3/generatedFiles/JointResultsQueryService_pb2.py +54 -0
- rs3/generatedFiles/JointResultsQueryService_pb2.pyi +92 -0
- rs3/generatedFiles/JointResultsQueryService_pb2_grpc.py +141 -0
- rs3/generatedFiles/JointService_pb2.py +45 -0
- rs3/generatedFiles/JointService_pb2.pyi +30 -0
- rs3/generatedFiles/JointService_pb2_grpc.py +227 -0
- rs3/generatedFiles/JointStageFactorService_pb2.py +37 -0
- rs3/generatedFiles/JointStageFactorService_pb2.pyi +5 -0
- rs3/generatedFiles/JointStageFactorService_pb2_grpc.py +140 -0
- rs3/generatedFiles/LinerDataService_pb2.py +37 -0
- rs3/generatedFiles/LinerDataService_pb2.pyi +5 -0
- rs3/generatedFiles/LinerDataService_pb2_grpc.py +226 -0
- rs3/generatedFiles/LinerService_pb2.py +37 -0
- rs3/generatedFiles/LinerService_pb2.pyi +5 -0
- rs3/generatedFiles/LinerService_pb2_grpc.py +140 -0
- rs3/generatedFiles/LinerStageFactorService_pb2.py +37 -0
- rs3/generatedFiles/LinerStageFactorService_pb2.pyi +5 -0
- rs3/generatedFiles/LinerStageFactorService_pb2_grpc.py +140 -0
- rs3/generatedFiles/MaterialDataService_pb2.py +37 -0
- rs3/generatedFiles/MaterialDataService_pb2.pyi +5 -0
- rs3/generatedFiles/MaterialDataService_pb2_grpc.py +226 -0
- rs3/generatedFiles/MaterialDatumService_pb2.py +45 -0
- rs3/generatedFiles/MaterialDatumService_pb2.pyi +38 -0
- rs3/generatedFiles/MaterialDatumService_pb2_grpc.py +140 -0
- rs3/generatedFiles/MaterialHydraulicDataService_pb2.py +93 -0
- rs3/generatedFiles/MaterialHydraulicDataService_pb2.pyi +193 -0
- rs3/generatedFiles/MaterialHydraulicDataService_pb2_grpc.py +829 -0
- rs3/generatedFiles/MaterialHydraulicModelService_pb2.py +55 -0
- rs3/generatedFiles/MaterialHydraulicModelService_pb2.pyi +79 -0
- rs3/generatedFiles/MaterialHydraulicModelService_pb2_grpc.py +313 -0
- rs3/generatedFiles/MaterialInitialConditionsService_pb2.py +37 -0
- rs3/generatedFiles/MaterialInitialConditionsService_pb2.pyi +5 -0
- rs3/generatedFiles/MaterialInitialConditionsService_pb2_grpc.py +140 -0
- rs3/generatedFiles/MaterialJointService_pb2.py +49 -0
- rs3/generatedFiles/MaterialJointService_pb2.pyi +52 -0
- rs3/generatedFiles/MaterialJointService_pb2_grpc.py +183 -0
- rs3/generatedFiles/MaterialJointSetSlipCriterionService_pb2.py +69 -0
- rs3/generatedFiles/MaterialJointSetSlipCriterionService_pb2.pyi +130 -0
- rs3/generatedFiles/MaterialJointSetSlipCriterionService_pb2_grpc.py +398 -0
- rs3/generatedFiles/MaterialJointStageFactorService_pb2.py +45 -0
- rs3/generatedFiles/MaterialJointStageFactorService_pb2.pyi +42 -0
- rs3/generatedFiles/MaterialJointStageFactorService_pb2_grpc.py +140 -0
- rs3/generatedFiles/MaterialStageFactorsService_pb2.py +37 -0
- rs3/generatedFiles/MaterialStageFactorsService_pb2.pyi +5 -0
- rs3/generatedFiles/MaterialStageFactorsService_pb2_grpc.py +140 -0
- rs3/generatedFiles/MaterialStiffnessFormulaService_pb2.py +47 -0
- rs3/generatedFiles/MaterialStiffnessFormulaService_pb2.pyi +54 -0
- rs3/generatedFiles/MaterialStiffnessFormulaService_pb2_grpc.py +140 -0
- rs3/generatedFiles/MaterialStiffnessService_pb2.py +53 -0
- rs3/generatedFiles/MaterialStiffnessService_pb2.pyi +66 -0
- rs3/generatedFiles/MaterialStiffnessService_pb2_grpc.py +313 -0
- rs3/generatedFiles/MaterialStrengthService_pb2.py +105 -0
- rs3/generatedFiles/MaterialStrengthService_pb2.pyi +243 -0
- rs3/generatedFiles/MaterialStrengthService_pb2_grpc.py +833 -0
- rs3/generatedFiles/MaterialUnsaturatedSoilDataService_pb2.py +47 -0
- rs3/generatedFiles/MaterialUnsaturatedSoilDataService_pb2.pyi +43 -0
- rs3/generatedFiles/MaterialUnsaturatedSoilDataService_pb2_grpc.py +228 -0
- rs3/generatedFiles/MeshSettingsService_pb2.py +41 -0
- rs3/generatedFiles/MeshSettingsService_pb2.pyi +16 -0
- rs3/generatedFiles/MeshSettingsService_pb2_grpc.py +184 -0
- rs3/generatedFiles/ModelFunctionService_pb2.py +119 -0
- rs3/generatedFiles/ModelFunctionService_pb2.pyi +331 -0
- rs3/generatedFiles/ModelFunctionService_pb2_grpc.py +871 -0
- rs3/generatedFiles/ModelService_pb2.py +342 -0
- rs3/generatedFiles/ModelService_pb2.pyi +962 -0
- rs3/generatedFiles/ModelService_pb2_grpc.py +3322 -0
- rs3/generatedFiles/PileDataService_pb2.py +55 -0
- rs3/generatedFiles/PileDataService_pb2.pyi +63 -0
- rs3/generatedFiles/PileDataService_pb2_grpc.py +399 -0
- rs3/generatedFiles/PileForepoleResultsQueryService_pb2.py +51 -0
- rs3/generatedFiles/PileForepoleResultsQueryService_pb2.pyi +63 -0
- rs3/generatedFiles/PileForepoleResultsQueryService_pb2_grpc.py +141 -0
- rs3/generatedFiles/PileStageFactorService_pb2.py +37 -0
- rs3/generatedFiles/PileStageFactorService_pb2.pyi +5 -0
- rs3/generatedFiles/PileStageFactorService_pb2_grpc.py +140 -0
- rs3/generatedFiles/PlainStrandCableBoltService_pb2.py +44 -0
- rs3/generatedFiles/PlainStrandCableBoltService_pb2.pyi +30 -0
- rs3/generatedFiles/PlainStrandCableBoltService_pb2_grpc.py +140 -0
- rs3/generatedFiles/ProjectSettingsDataService_pb2.py +69 -0
- rs3/generatedFiles/ProjectSettingsDataService_pb2.pyi +119 -0
- rs3/generatedFiles/ProjectSettingsDataService_pb2_grpc.py +786 -0
- rs3/generatedFiles/RFCApplicationService_pb2.py +34 -0
- rs3/generatedFiles/RFCApplicationService_pb2.pyi +27 -0
- rs3/generatedFiles/RFCApplicationService_pb2_grpc.py +145 -0
- rs3/generatedFiles/RS3ModelerService_pb2.py +50 -0
- rs3/generatedFiles/RS3ModelerService_pb2.pyi +45 -0
- rs3/generatedFiles/RS3ModelerService_pb2_grpc.py +183 -0
- rs3/generatedFiles/RelativeStageFactorService_pb2.py +40 -0
- rs3/generatedFiles/RelativeStageFactorService_pb2.pyi +17 -0
- rs3/generatedFiles/RelativeStageFactorService_pb2_grpc.py +97 -0
- rs3/generatedFiles/RestraintsService_pb2.py +62 -0
- rs3/generatedFiles/RestraintsService_pb2.pyi +84 -0
- rs3/generatedFiles/RestraintsService_pb2_grpc.py +312 -0
- rs3/generatedFiles/ResultsQueryCommonMessage_pb2.py +56 -0
- rs3/generatedFiles/ResultsQueryCommonMessage_pb2.pyi +85 -0
- rs3/generatedFiles/ResultsQueryCommonMessage_pb2_grpc.py +24 -0
- rs3/generatedFiles/ResultsQueryService_pb2.py +87 -0
- rs3/generatedFiles/ResultsQueryService_pb2.pyi +185 -0
- rs3/generatedFiles/ResultsQueryService_pb2_grpc.py +745 -0
- rs3/generatedFiles/SelectionService_pb2.py +49 -0
- rs3/generatedFiles/SelectionService_pb2.pyi +51 -0
- rs3/generatedFiles/SelectionService_pb2_grpc.py +269 -0
- rs3/generatedFiles/SolidsResultsQueryService_pb2.py +93 -0
- rs3/generatedFiles/SolidsResultsQueryService_pb2.pyi +213 -0
- rs3/generatedFiles/SolidsResultsQueryService_pb2_grpc.py +195 -0
- rs3/generatedFiles/StageFactorService_pb2.py +58 -0
- rs3/generatedFiles/StageFactorService_pb2.pyi +79 -0
- rs3/generatedFiles/StageFactorService_pb2_grpc.py +226 -0
- rs3/generatedFiles/StiffnessStageFactorService_pb2.py +37 -0
- rs3/generatedFiles/StiffnessStageFactorService_pb2.pyi +5 -0
- rs3/generatedFiles/StiffnessStageFactorService_pb2_grpc.py +140 -0
- rs3/generatedFiles/StrengthStageFactorService_pb2.py +37 -0
- rs3/generatedFiles/StrengthStageFactorService_pb2.pyi +5 -0
- rs3/generatedFiles/StrengthStageFactorService_pb2_grpc.py +140 -0
- rs3/generatedFiles/WaterByLocationDataService_pb2.py +61 -0
- rs3/generatedFiles/WaterByLocationDataService_pb2.pyi +95 -0
- rs3/generatedFiles/WaterByLocationDataService_pb2_grpc.py +312 -0
- rs3/generatedFiles/WaterPressureGridDataService_pb2.py +63 -0
- rs3/generatedFiles/WaterPressureGridDataService_pb2.pyi +107 -0
- rs3/generatedFiles/WaterPressureGridDataService_pb2_grpc.py +312 -0
- rs3/generatedFiles/__init__.py +3 -0
- rs3/loadings/LoadingEnums.py +6 -0
- rs3/loadings/Loadings.py +15 -0
- rs3/loadings/__init__.py +0 -0
- rs3/loadings/fieldStress/AdvancedConstant.py +115 -0
- rs3/loadings/fieldStress/AdvancedGravity.py +176 -0
- rs3/loadings/fieldStress/Constant.py +119 -0
- rs3/loadings/fieldStress/FieldStress.py +38 -0
- rs3/loadings/fieldStress/Gravity.py +206 -0
- rs3/loadings/fieldStress/_PropertyAccessor.py +41 -0
- rs3/loadings/fieldStress/__init__.py +0 -0
- rs3/mesh/Graded.py +59 -0
- rs3/mesh/Mesh.py +50 -0
- rs3/mesh/MeshEnums.py +16 -0
- rs3/mesh/Uniform.py +35 -0
- rs3/mesh/_PropertyAccessor.py +10 -0
- rs3/mesh/__init__.py +0 -0
- rs3/projectSettings/Dynamic.py +110 -0
- rs3/projectSettings/Groundwater.py +118 -0
- rs3/projectSettings/ProjectSettingEnums.py +108 -0
- rs3/projectSettings/ProjectSettings.py +43 -0
- rs3/projectSettings/ShearStrengthReduction.py +130 -0
- rs3/projectSettings/SolverOptions.py +88 -0
- rs3/projectSettings/Stages.py +162 -0
- rs3/projectSettings/StressAnalysis.py +183 -0
- rs3/projectSettings/Units.py +82 -0
- rs3/projectSettings/_PropertyAccessor.py +133 -0
- rs3/projectSettings/__init__.py +0 -0
- rs3/properties/CustomHydraulicModel.py +129 -0
- rs3/properties/DiscreteFunction.py +147 -0
- rs3/properties/GeneralizedAnisotropicFunction.py +98 -0
- rs3/properties/IPropertyGroupAccessors.py +12 -0
- rs3/properties/PropertyEnums.py +387 -0
- rs3/properties/ShearNormalFunction.py +94 -0
- rs3/properties/SnowdenStrengthFunction.py +115 -0
- rs3/properties/_PropertyAccessor.py +111 -0
- rs3/properties/__init__.py +0 -0
- rs3/properties/beam/Beam.py +86 -0
- rs3/properties/beam/BeamCommon.py +175 -0
- rs3/properties/beam/Standard.py +97 -0
- rs3/properties/beam/Truss.py +23 -0
- rs3/properties/beam/_PropertyAccessor.py +9 -0
- rs3/properties/beam/__init__.py +0 -0
- rs3/properties/bolt/Bolt.py +81 -0
- rs3/properties/bolt/EndAnchored.py +77 -0
- rs3/properties/bolt/FullyBonded.py +78 -0
- rs3/properties/bolt/PlainStrandCable.py +151 -0
- rs3/properties/bolt/Swellex.py +106 -0
- rs3/properties/bolt/Tieback.py +176 -0
- rs3/properties/bolt/_PropertyAccessor.py +7 -0
- rs3/properties/bolt/__init__.py +0 -0
- rs3/properties/groundwater/WaterByLocation.py +83 -0
- rs3/properties/groundwater/WaterGrid.py +120 -0
- rs3/properties/groundwater/_PropertyAccessor.py +36 -0
- rs3/properties/groundwater/__init__.py +0 -0
- rs3/properties/joint/BartonBandis.py +118 -0
- rs3/properties/joint/GeosyntheticHyperbolic.py +158 -0
- rs3/properties/joint/Joint.py +176 -0
- rs3/properties/joint/MaterialDependent.py +107 -0
- rs3/properties/joint/MohrCoulomb.py +169 -0
- rs3/properties/joint/NoneSlip.py +68 -0
- rs3/properties/joint/_PropertyAccessor.py +9 -0
- rs3/properties/joint/__init__.py +0 -0
- rs3/properties/liner/Geosynthetic.py +85 -0
- rs3/properties/liner/Liner.py +83 -0
- rs3/properties/liner/ReinforcedConcrete.py +216 -0
- rs3/properties/liner/Standard.py +183 -0
- rs3/properties/liner/_PropertyAccessor.py +7 -0
- rs3/properties/liner/__init__.py +0 -0
- rs3/properties/liningComposition/LiningComposition.py +244 -0
- rs3/properties/liningComposition/_PropertyAccessor.py +7 -0
- rs3/properties/liningComposition/__init__.py +0 -0
- rs3/properties/material/Material.py +74 -0
- rs3/properties/material/__init__.py +0 -0
- rs3/properties/material/constitutiveModel/AnisotropicLinear.py +149 -0
- rs3/properties/material/constitutiveModel/AnisotropicLinearPlanarBase.py +72 -0
- rs3/properties/material/constitutiveModel/BarcelonaBasic.py +158 -0
- rs3/properties/material/constitutiveModel/BartonBandis.py +77 -0
- rs3/properties/material/constitutiveModel/BaseConstitutiveModel.py +11 -0
- rs3/properties/material/constitutiveModel/BoundingSurfacePlasticity.py +88 -0
- rs3/properties/material/constitutiveModel/CamClay.py +144 -0
- rs3/properties/material/constitutiveModel/ChSoil.py +111 -0
- rs3/properties/material/constitutiveModel/ConstitutiveModel.py +87 -0
- rs3/properties/material/constitutiveModel/CySoil.py +137 -0
- rs3/properties/material/constitutiveModel/DiscreteFunction.py +39 -0
- rs3/properties/material/constitutiveModel/DoubleYield.py +130 -0
- rs3/properties/material/constitutiveModel/DruckerPrager.py +136 -0
- rs3/properties/material/constitutiveModel/GeneralizedAnisotropic.py +39 -0
- rs3/properties/material/constitutiveModel/GeneralizedHoekBrown.py +226 -0
- rs3/properties/material/constitutiveModel/HardeningSoil.py +156 -0
- rs3/properties/material/constitutiveModel/HardeningSoilWithSmallStrain.py +170 -0
- rs3/properties/material/constitutiveModel/HoekBrown.py +125 -0
- rs3/properties/material/constitutiveModel/Hyperbolic.py +77 -0
- rs3/properties/material/constitutiveModel/JointedGeneralizedHoekBrown.py +184 -0
- rs3/properties/material/constitutiveModel/JointedMohrCoulomb.py +173 -0
- rs3/properties/material/constitutiveModel/ManzariAndDafalias.py +148 -0
- rs3/properties/material/constitutiveModel/ModifiedCamClay.py +11 -0
- rs3/properties/material/constitutiveModel/MohrCoulomb.py +147 -0
- rs3/properties/material/constitutiveModel/MohrCoulombUnsaturatedZoneCalculations.py +80 -0
- rs3/properties/material/constitutiveModel/MohrCoulombWithCap.py +154 -0
- rs3/properties/material/constitutiveModel/Norsand.py +146 -0
- rs3/properties/material/constitutiveModel/PowerCurve.py +119 -0
- rs3/properties/material/constitutiveModel/Shansep.py +214 -0
- rs3/properties/material/constitutiveModel/ShearNormalFunction.py +34 -0
- rs3/properties/material/constitutiveModel/SnowdenAnisotropicLinear.py +108 -0
- rs3/properties/material/constitutiveModel/SoftSoil.py +104 -0
- rs3/properties/material/constitutiveModel/SoftSoilCreep.py +111 -0
- rs3/properties/material/constitutiveModel/SofteningHardening.py +214 -0
- rs3/properties/material/constitutiveModel/SwellingRock.py +202 -0
- rs3/properties/material/constitutiveModel/UnsaturatedZoneCalculations.py +138 -0
- rs3/properties/material/constitutiveModel/VerticalStressRatio.py +113 -0
- rs3/properties/material/constitutiveModel/_PropertyAccessor.py +96 -0
- rs3/properties/material/constitutiveModel/__init__.py +0 -0
- rs3/properties/material/constitutiveModel/jointOption/BartonBandis.py +109 -0
- rs3/properties/material/constitutiveModel/jointOption/MaterialJoint.py +48 -0
- rs3/properties/material/constitutiveModel/jointOption/MaterialJointOptions.py +32 -0
- rs3/properties/material/constitutiveModel/jointOption/MohrCoulomb.py +142 -0
- rs3/properties/material/constitutiveModel/jointOption/PlaneOrientationBase.py +92 -0
- rs3/properties/material/constitutiveModel/jointOption/SimpleHyperbolic.py +112 -0
- rs3/properties/material/constitutiveModel/jointOption/_PropertyAccessor.py +61 -0
- rs3/properties/material/constitutiveModel/jointOption/__init__.py +0 -0
- rs3/properties/material/constitutiveModel/stiffness/BaseStiffness.py +11 -0
- rs3/properties/material/constitutiveModel/stiffness/DuncanChangHyperbolic.py +128 -0
- rs3/properties/material/constitutiveModel/stiffness/GeneralizedHoekBrownEstimation.py +50 -0
- rs3/properties/material/constitutiveModel/stiffness/LinearIsotropic.py +106 -0
- rs3/properties/material/constitutiveModel/stiffness/NonlinearIsotropic.py +104 -0
- rs3/properties/material/constitutiveModel/stiffness/Orthotropic.py +296 -0
- rs3/properties/material/constitutiveModel/stiffness/TransverselyIsotropic.py +186 -0
- rs3/properties/material/constitutiveModel/stiffness/_PropertyAccessor.py +33 -0
- rs3/properties/material/constitutiveModel/stiffness/__init__.py +0 -0
- rs3/properties/material/constitutiveModel/stiffness/formula/Formula1.py +96 -0
- rs3/properties/material/constitutiveModel/stiffness/formula/Formula2.py +136 -0
- rs3/properties/material/constitutiveModel/stiffness/formula/Formula3.py +113 -0
- rs3/properties/material/constitutiveModel/stiffness/formula/_PropertyAccessor.py +37 -0
- rs3/properties/material/constitutiveModel/stiffness/formula/__init__.py +0 -0
- rs3/properties/material/datum/CohesionDatumDependency.py +99 -0
- rs3/properties/material/datum/Datum.py +23 -0
- rs3/properties/material/datum/FrictionAngleDatumDependency.py +99 -0
- rs3/properties/material/datum/YoungsModulusDatumDependency.py +78 -0
- rs3/properties/material/datum/_PropertyAccessor.py +26 -0
- rs3/properties/material/datum/__init__.py +0 -0
- rs3/properties/material/hydraulic/FEAGroundwater/Brooks.py +71 -0
- rs3/properties/material/hydraulic/FEAGroundwater/Custom.py +79 -0
- rs3/properties/material/hydraulic/FEAGroundwater/FEAGroundwater.py +85 -0
- rs3/properties/material/hydraulic/FEAGroundwater/Fredlund.py +82 -0
- rs3/properties/material/hydraulic/FEAGroundwater/Gardner.py +72 -0
- rs3/properties/material/hydraulic/FEAGroundwater/HydraulicMethodVectors.py +97 -0
- rs3/properties/material/hydraulic/FEAGroundwater/HydraulicParametersCommon.py +157 -0
- rs3/properties/material/hydraulic/FEAGroundwater/Simple.py +37 -0
- rs3/properties/material/hydraulic/FEAGroundwater/VanGenuchten.py +94 -0
- rs3/properties/material/hydraulic/FEAGroundwater/_PropertyAccessor.py +16 -0
- rs3/properties/material/hydraulic/FEAGroundwater/__init__.py +0 -0
- rs3/properties/material/hydraulic/Hydraulic.py +111 -0
- rs3/properties/material/hydraulic/PhreaticConditions.py +37 -0
- rs3/properties/material/hydraulic/StaticGroundwater.py +100 -0
- rs3/properties/material/hydraulic/WaterConditions.py +110 -0
- rs3/properties/material/hydraulic/_PropertyAccessor.py +31 -0
- rs3/properties/material/hydraulic/__init__.py +0 -0
- rs3/properties/material/initialConditions/InitialConditions.py +108 -0
- rs3/properties/material/initialConditions/_PropertyAccessor.py +11 -0
- rs3/properties/material/initialConditions/__init__.py +0 -0
- rs3/properties/material/stageFactors/StageFactors.py +77 -0
- rs3/properties/material/stageFactors/_PropertyAccessor.py +7 -0
- rs3/properties/material/stageFactors/__init__.py +0 -0
- rs3/properties/pile/EndCondition.py +109 -0
- rs3/properties/pile/Linear.py +69 -0
- rs3/properties/pile/MohrCoulomb.py +123 -0
- rs3/properties/pile/MultiLinear.py +70 -0
- rs3/properties/pile/Pile.py +108 -0
- rs3/properties/pile/PileCommon.py +99 -0
- rs3/properties/pile/_PropertyAccessor.py +9 -0
- rs3/properties/pile/__init__.py +0 -0
- rs3/properties/stageFactors/IStageFactorBase.py +10 -0
- rs3/properties/stageFactors/StageFactorBaseInterfaces.py +24 -0
- rs3/properties/stageFactors/StageFactorInterfaces.py +70 -0
- rs3/properties/stageFactors/_StageFactorInterface.py +48 -0
- rs3/properties/stageFactors/_StageFactorPropertyAccessor.py +18 -0
- rs3/properties/stageFactors/__init__.py +0 -0
- rs3/results/BeamResults.py +181 -0
- rs3/results/BoltResults.py +214 -0
- rs3/results/CompositeLinerResults.py +374 -0
- rs3/results/JointResults.py +160 -0
- rs3/results/PileForepoleResults.py +219 -0
- rs3/results/ResultEnums.py +146 -0
- rs3/results/Results.py +661 -0
- rs3/results/ResultsCommon.py +66 -0
- rs3/results/SolidElementResults.py +175 -0
- rs3/results/SolidNodalResults.py +248 -0
- rs3/results/SolidResults.py +206 -0
- rs3/results/YieldedElement.py +33 -0
- rs3/results/__init__.py +0 -0
- rs3scripting-4.42.0.dist-info/METADATA +70 -0
- rs3scripting-4.42.0.dist-info/RECORD +393 -0
- rs3scripting-4.42.0.dist-info/WHEEL +5 -0
- rs3scripting-4.42.0.dist-info/licenses/License.txt +20 -0
- rs3scripting-4.42.0.dist-info/top_level.txt +1 -0
rs3/results/Results.py
ADDED
|
@@ -0,0 +1,661 @@
|
|
|
1
|
+
import rs3.generatedFiles.ResultsQueryService_pb2 as ResultsQueryService
|
|
2
|
+
import rs3.generatedFiles.ResultsQueryService_pb2_grpc as ResultsQueryServiceGrpc
|
|
3
|
+
from rs3._proxyObject import _ProxyObject
|
|
4
|
+
from rs3._client import Client
|
|
5
|
+
from typing import Optional
|
|
6
|
+
from rs3.results.SolidResults import SolidResults
|
|
7
|
+
from rs3.results.BeamResults import BeamResults
|
|
8
|
+
from rs3.results.PileForepoleResults import PileForepoleResults
|
|
9
|
+
from rs3.results.ResultEnums import SolidsDataType
|
|
10
|
+
from rs3.results.CompositeLinerResults import CompositeLinerResults
|
|
11
|
+
from rs3.results.JointResults import JointResults
|
|
12
|
+
from rs3.results.BoltResults import BoltResults
|
|
13
|
+
|
|
14
|
+
class NodeInformation:
|
|
15
|
+
def __init__(self, grpcNodeInfo):
|
|
16
|
+
self._grpcNodeInfo = grpcNodeInfo
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def nodeID(self):
|
|
20
|
+
return self._grpcNodeInfo.nodeID
|
|
21
|
+
|
|
22
|
+
@property
|
|
23
|
+
def location(self) -> tuple[float, float, float]:
|
|
24
|
+
loc = self._grpcNodeInfo.location
|
|
25
|
+
return (loc.x, loc.y, loc.z)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class ElementInformation:
|
|
29
|
+
def __init__(self, grpcElementInfo):
|
|
30
|
+
self._grpcElementInfo = grpcElementInfo
|
|
31
|
+
|
|
32
|
+
@property
|
|
33
|
+
def elementID(self):
|
|
34
|
+
return self._grpcElementInfo.elementID
|
|
35
|
+
|
|
36
|
+
@property
|
|
37
|
+
def nodeIDs(self):
|
|
38
|
+
return self._grpcElementInfo.nodeIDs
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class PileForepoleElementInformation:
|
|
42
|
+
def __init__(self, grpcPileForepoleElementInfo):
|
|
43
|
+
self._grpcPileForepoleElementInfo = grpcPileForepoleElementInfo
|
|
44
|
+
|
|
45
|
+
@property
|
|
46
|
+
def beamElementID(self):
|
|
47
|
+
return self._grpcPileForepoleElementInfo.beamElementID
|
|
48
|
+
|
|
49
|
+
@property
|
|
50
|
+
def interfaceElementID(self):
|
|
51
|
+
return self._grpcPileForepoleElementInfo.interfaceElementID
|
|
52
|
+
|
|
53
|
+
@property
|
|
54
|
+
def nodeIDs(self):
|
|
55
|
+
return self._grpcPileForepoleElementInfo.nodeIDs
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class SRFValue:
|
|
59
|
+
def __init__(self, grpcSRFValue):
|
|
60
|
+
self._grpcSRFValue = grpcSRFValue
|
|
61
|
+
|
|
62
|
+
@property
|
|
63
|
+
def SRF(self):
|
|
64
|
+
return self._grpcSRFValue.srf
|
|
65
|
+
|
|
66
|
+
@property
|
|
67
|
+
def MaxTotalDisplacement(self):
|
|
68
|
+
return self._grpcSRFValue.maxTotalDisplacement
|
|
69
|
+
|
|
70
|
+
@property
|
|
71
|
+
def Converged(self):
|
|
72
|
+
return self._grpcSRFValue.converged
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
class Results(_ProxyObject):
|
|
76
|
+
"""
|
|
77
|
+
Entry point for querying analysis results (nodes, elements, SRF) by stage and SRF value.
|
|
78
|
+
|
|
79
|
+
Examples:
|
|
80
|
+
See :ref:`beam_result_example`, :ref:`bolt_result_example`, :ref:`solid_result_example`,
|
|
81
|
+
:ref:`pile_result_example`, :ref:`composite_liner_result_example`, :ref:`joint_result_example`.
|
|
82
|
+
"""
|
|
83
|
+
|
|
84
|
+
def __init__(self, client : Client, projectID : str):
|
|
85
|
+
super().__init__(client, projectID)
|
|
86
|
+
self._queryService = ResultsQueryServiceGrpc.ResultsQueryServiceStub(self._client.channel)
|
|
87
|
+
self._srfValues = None
|
|
88
|
+
|
|
89
|
+
def getResultsAvailability(self, stageNumber: int, srfResultIndex: int = 0):
|
|
90
|
+
'''
|
|
91
|
+
Read cached results for a specific stage and SRF value.
|
|
92
|
+
Parameters:
|
|
93
|
+
stageNumber: int: The analysis stage index (1-based) at which to perform the query.
|
|
94
|
+
srfResultIndex: int: The SRF result index. Defaults to 0 to query SRF-None.
|
|
95
|
+
Raises:
|
|
96
|
+
Exception if:
|
|
97
|
+
- stageNumber is less than 1
|
|
98
|
+
- stageNumber is greater than the number of stages in the project
|
|
99
|
+
- srfResultIndex is less than 1
|
|
100
|
+
- srfResultIndex is greater than the number of SRF results in the project
|
|
101
|
+
Returns:
|
|
102
|
+
bool: True if results are available, False otherwise.
|
|
103
|
+
'''
|
|
104
|
+
request = ResultsQueryService.ReadResultsByStageSRFRequest(_projectId = self._objectId, stageNumber=stageNumber, srfValueNumber=srfResultIndex)
|
|
105
|
+
response = self._client.callFunction(self._queryService.ReadResultsByStageSRFValue, request)
|
|
106
|
+
return response.resultsAvailable
|
|
107
|
+
|
|
108
|
+
def _checkResultsAvailability(self, stageNumber: int, srfResultIndex: int = 0) -> bool:
|
|
109
|
+
if not self.getResultsAvailability(stageNumber, srfResultIndex):
|
|
110
|
+
raise Exception(f"Results are not available for stage {stageNumber} and SRF result index {srfResultIndex}")
|
|
111
|
+
return True
|
|
112
|
+
|
|
113
|
+
def _processNodeInformationStream(self, stream, wrapper_class):
|
|
114
|
+
"""
|
|
115
|
+
Process streaming node information response chunks and wrap them.
|
|
116
|
+
|
|
117
|
+
Parameters:
|
|
118
|
+
stream: The streaming RPC response.
|
|
119
|
+
wrapper_class: The class to wrap each node information item.
|
|
120
|
+
|
|
121
|
+
Returns:
|
|
122
|
+
list: A list of wrapped node information objects.
|
|
123
|
+
|
|
124
|
+
Raises:
|
|
125
|
+
RuntimeError: If the number of nodes received does not match the expected count.
|
|
126
|
+
"""
|
|
127
|
+
allNodes = []
|
|
128
|
+
totalNodesCount = None
|
|
129
|
+
|
|
130
|
+
for chunk in stream:
|
|
131
|
+
if chunk.HasField('header'):
|
|
132
|
+
# Process header chunk
|
|
133
|
+
header = chunk.header
|
|
134
|
+
totalNodesCount = header.totalNodesCount
|
|
135
|
+
elif chunk.HasField('data'):
|
|
136
|
+
# Process data chunk
|
|
137
|
+
allNodes.extend(chunk.data.NodesInformation)
|
|
138
|
+
|
|
139
|
+
if totalNodesCount != len(allNodes):
|
|
140
|
+
raise RuntimeError(f"Number of nodes received does not match the expected total nodes count. Expected {totalNodesCount}, but received {len(allNodes)}.")
|
|
141
|
+
|
|
142
|
+
return list(wrapper_class(n) for n in allNodes)
|
|
143
|
+
|
|
144
|
+
def _processElementInformationStream(self, stream, wrapper_class):
|
|
145
|
+
"""
|
|
146
|
+
Process streaming element information response chunks and wrap them.
|
|
147
|
+
|
|
148
|
+
Parameters:
|
|
149
|
+
stream: The streaming RPC response.
|
|
150
|
+
wrapper_class: The class to wrap each element information item.
|
|
151
|
+
|
|
152
|
+
Returns:
|
|
153
|
+
list: A list of wrapped element information objects.
|
|
154
|
+
|
|
155
|
+
Raises:
|
|
156
|
+
RuntimeError: If the number of elements received does not match the expected count.
|
|
157
|
+
"""
|
|
158
|
+
allElements = []
|
|
159
|
+
totalElementsCount = None
|
|
160
|
+
|
|
161
|
+
for chunk in stream:
|
|
162
|
+
if chunk.HasField('header'):
|
|
163
|
+
# Process header chunk
|
|
164
|
+
header = chunk.header
|
|
165
|
+
totalElementsCount = header.totalElementsCount
|
|
166
|
+
elif chunk.HasField('data'):
|
|
167
|
+
# Process data chunk
|
|
168
|
+
allElements.extend(chunk.data.ElementsInformation)
|
|
169
|
+
|
|
170
|
+
if totalElementsCount != len(allElements):
|
|
171
|
+
raise RuntimeError(f"Number of elements received does not match the expected total elements count. Expected {totalElementsCount}, but received {len(allElements)}.")
|
|
172
|
+
|
|
173
|
+
return list(wrapper_class(e) for e in allElements)
|
|
174
|
+
|
|
175
|
+
def queryNodeInfoFromVolume(self, stageNumber: int) -> list[NodeInformation]:
|
|
176
|
+
"""
|
|
177
|
+
Query node information on meshed external solid volumes at a specific stage.
|
|
178
|
+
|
|
179
|
+
Parameters:
|
|
180
|
+
stageNumber (int): The analysis stage index (1-based) at which to perform the query.
|
|
181
|
+
|
|
182
|
+
Raises:
|
|
183
|
+
Exception if:
|
|
184
|
+
- stageNumber is less than 1
|
|
185
|
+
- stageNumber is greater than the number of stages in the project
|
|
186
|
+
Returns:
|
|
187
|
+
list[NodeInformation]: A list of node information wrappers for the requested stage.
|
|
188
|
+
"""
|
|
189
|
+
self._checkResultsAvailability(stageNumber)
|
|
190
|
+
request = ResultsQueryService.QueryNodeInformationRequest(_projectId = self._objectId, stageNumber=stageNumber)
|
|
191
|
+
stream = self._queryService.QueryNodeInformationFromMeshedExternalSolidVolumes(request)
|
|
192
|
+
return self._processNodeInformationStream(stream, NodeInformation)
|
|
193
|
+
|
|
194
|
+
def queryNodeInfoFromBolts(self, stageNumber: int) -> list[NodeInformation]:
|
|
195
|
+
"""
|
|
196
|
+
Query node information on bolts at a specific stage.
|
|
197
|
+
|
|
198
|
+
Parameters:
|
|
199
|
+
stageNumber (int): The analysis stage index (1-based) at which to perform the query.
|
|
200
|
+
|
|
201
|
+
Raises:
|
|
202
|
+
Exception if:
|
|
203
|
+
- stageNumber is less than 1
|
|
204
|
+
- stageNumber is greater than the number of stages in the project
|
|
205
|
+
Returns:
|
|
206
|
+
list[NodeInformation]: A list of node information wrappers for the requested stage.
|
|
207
|
+
"""
|
|
208
|
+
self._checkResultsAvailability(stageNumber)
|
|
209
|
+
request = ResultsQueryService.QueryNodeInformationRequest(_projectId = self._objectId, stageNumber=stageNumber)
|
|
210
|
+
stream = self._queryService.QueryNodeInformationFromBolts(request)
|
|
211
|
+
return self._processNodeInformationStream(stream, NodeInformation)
|
|
212
|
+
|
|
213
|
+
def queryNodeInfoFromBeams(self, stageNumber: int) -> list[NodeInformation]:
|
|
214
|
+
"""
|
|
215
|
+
Query node information on beams at a specific stage.
|
|
216
|
+
|
|
217
|
+
Parameters:
|
|
218
|
+
stageNumber (int): The analysis stage index (1-based) at which to perform the query.
|
|
219
|
+
|
|
220
|
+
Raises:
|
|
221
|
+
Exception if:
|
|
222
|
+
- stageNumber is less than 1
|
|
223
|
+
- stageNumber is greater than the number of stages in the project
|
|
224
|
+
Returns:
|
|
225
|
+
list[NodeInformation]: A list of node information wrappers for the requested stage.
|
|
226
|
+
"""
|
|
227
|
+
self._checkResultsAvailability(stageNumber)
|
|
228
|
+
request = ResultsQueryService.QueryNodeInformationRequest(_projectId = self._objectId, stageNumber=stageNumber)
|
|
229
|
+
stream = self._queryService.QueryNodeInformationFromBeams(request)
|
|
230
|
+
return self._processNodeInformationStream(stream, NodeInformation)
|
|
231
|
+
|
|
232
|
+
def queryNodeInfoFromPilesForepoles(self, stageNumber: int) -> list[NodeInformation]:
|
|
233
|
+
"""
|
|
234
|
+
Query node information on piles and forepoles at a specific stage.
|
|
235
|
+
|
|
236
|
+
Parameters:
|
|
237
|
+
stageNumber (int): The analysis stage index (1-based) at which to perform the query.
|
|
238
|
+
|
|
239
|
+
Raises:
|
|
240
|
+
Exception if:
|
|
241
|
+
- stageNumber is less than 1
|
|
242
|
+
- stageNumber is greater than the number of stages in the project
|
|
243
|
+
Returns:
|
|
244
|
+
list[NodeInformation]: A list of node information wrappers for the requested stage.
|
|
245
|
+
"""
|
|
246
|
+
self._checkResultsAvailability(stageNumber)
|
|
247
|
+
request = ResultsQueryService.QueryNodeInformationRequest(_projectId = self._objectId, stageNumber=stageNumber)
|
|
248
|
+
stream = self._queryService.QueryNodeInformationFromPilesForepoles(request)
|
|
249
|
+
return self._processNodeInformationStream(stream, NodeInformation)
|
|
250
|
+
|
|
251
|
+
def queryNodeInfoFromLiners(self, stageNumber: int) -> list[NodeInformation]:
|
|
252
|
+
"""
|
|
253
|
+
Query node information on liners at a specific stage.
|
|
254
|
+
|
|
255
|
+
Parameters:
|
|
256
|
+
stageNumber (int): The analysis stage index (1-based) at which to perform the query.
|
|
257
|
+
|
|
258
|
+
Raises:
|
|
259
|
+
Exception if:
|
|
260
|
+
- stageNumber is less than 1
|
|
261
|
+
- stageNumber is greater than the number of stages in the project
|
|
262
|
+
Returns:
|
|
263
|
+
list[NodeInformation]: A list of node information wrappers for the requested stage.
|
|
264
|
+
"""
|
|
265
|
+
self._checkResultsAvailability(stageNumber)
|
|
266
|
+
request = ResultsQueryService.QueryNodeInformationRequest(_projectId = self._objectId, stageNumber=stageNumber)
|
|
267
|
+
stream = self._queryService.QueryNodeInformationFromLiners(request)
|
|
268
|
+
return self._processNodeInformationStream(stream, NodeInformation)
|
|
269
|
+
|
|
270
|
+
def queryNodeInfoFromJoints(self, stageNumber: int) -> list[NodeInformation]:
|
|
271
|
+
"""
|
|
272
|
+
Query node information on joints at a specific stage.
|
|
273
|
+
|
|
274
|
+
Parameters:
|
|
275
|
+
stageNumber (int): The analysis stage index (1-based) at which to perform the query.
|
|
276
|
+
|
|
277
|
+
Raises:
|
|
278
|
+
Exception if:
|
|
279
|
+
- stageNumber is less than 1
|
|
280
|
+
- stageNumber is greater than the number of stages in the project
|
|
281
|
+
Returns:
|
|
282
|
+
list[NodeInformation]: A list of node information wrappers for the requested stage.
|
|
283
|
+
"""
|
|
284
|
+
self._checkResultsAvailability(stageNumber)
|
|
285
|
+
request = ResultsQueryService.QueryNodeInformationRequest(_projectId = self._objectId, stageNumber=stageNumber)
|
|
286
|
+
stream = self._queryService.QueryNodeInformationFromJoints(request)
|
|
287
|
+
return self._processNodeInformationStream(stream, NodeInformation)
|
|
288
|
+
|
|
289
|
+
def queryNodeInfoFromCompositeLinerInterfaces(self, stageNumber: int) -> list[NodeInformation]:
|
|
290
|
+
"""
|
|
291
|
+
Query node information on composite liner interfaces at a specific stage.
|
|
292
|
+
|
|
293
|
+
Parameters:
|
|
294
|
+
stageNumber (int): The analysis stage index (1-based) at which to perform the query.
|
|
295
|
+
|
|
296
|
+
Raises:
|
|
297
|
+
Exception if:
|
|
298
|
+
- stageNumber is less than 1
|
|
299
|
+
- stageNumber is greater than the number of stages in the project
|
|
300
|
+
Returns:
|
|
301
|
+
list[NodeInformation]: A list of node information wrappers for the requested stage.
|
|
302
|
+
"""
|
|
303
|
+
self._checkResultsAvailability(stageNumber)
|
|
304
|
+
request = ResultsQueryService.QueryNodeInformationRequest(_projectId = self._objectId, stageNumber=stageNumber)
|
|
305
|
+
stream = self._queryService.QueryNodeInformationFromCompositeLinerInterfaces(request)
|
|
306
|
+
return self._processNodeInformationStream(stream, NodeInformation)
|
|
307
|
+
|
|
308
|
+
def queryElementInfoFromVolume(self, stageNumber: int) -> list[ElementInformation]:
|
|
309
|
+
'''
|
|
310
|
+
Query element information on meshed external solid volumes at a specific stage.
|
|
311
|
+
|
|
312
|
+
Parameters:
|
|
313
|
+
stageNumber (int): The analysis stage index (1-based) at which to perform the query.
|
|
314
|
+
|
|
315
|
+
Raises:
|
|
316
|
+
Exception if:
|
|
317
|
+
stageNumber is less than 1
|
|
318
|
+
stageNumber is greater than the number of stages in the project
|
|
319
|
+
Returns:
|
|
320
|
+
list[ElementInformation]: A list of element information wrappers for the requested stage.
|
|
321
|
+
'''
|
|
322
|
+
self._checkResultsAvailability(stageNumber)
|
|
323
|
+
request = ResultsQueryService.ElementInformationQueryRequest(_projectId = self._objectId, stageNumber=stageNumber)
|
|
324
|
+
stream = self._queryService.QueryElementInformationFromMeshedExternalSolidVolumes(request)
|
|
325
|
+
return self._processElementInformationStream(stream, ElementInformation)
|
|
326
|
+
|
|
327
|
+
def queryElementInfoFromBolts(self, stageNumber: int) -> list[ElementInformation]:
|
|
328
|
+
"""
|
|
329
|
+
Query element information on bolts at a specific stage.
|
|
330
|
+
|
|
331
|
+
Parameters:
|
|
332
|
+
stageNumber (int): The analysis stage index (1-based) at which to perform the query.
|
|
333
|
+
|
|
334
|
+
Raises:
|
|
335
|
+
Exception if:
|
|
336
|
+
- stageNumber is less than 1
|
|
337
|
+
- stageNumber is greater than the number of stages in the project
|
|
338
|
+
Returns:
|
|
339
|
+
list[ElementInformation]: A list of element information wrappers for the requested stage.
|
|
340
|
+
"""
|
|
341
|
+
self._checkResultsAvailability(stageNumber)
|
|
342
|
+
request = ResultsQueryService.ElementInformationQueryRequest(_projectId = self._objectId, stageNumber=stageNumber)
|
|
343
|
+
stream = self._queryService.QueryElementInformationFromBolts(request)
|
|
344
|
+
return self._processElementInformationStream(stream, ElementInformation)
|
|
345
|
+
|
|
346
|
+
def queryElementInfoFromBeamsForepolesPiles(self, stageNumber: int) -> list[ElementInformation]:
|
|
347
|
+
"""
|
|
348
|
+
Query element information on beams, forepoles, and piles at a specific stage.
|
|
349
|
+
|
|
350
|
+
Parameters:
|
|
351
|
+
stageNumber (int): The analysis stage index (1-based) at which to perform the query.
|
|
352
|
+
|
|
353
|
+
Raises:
|
|
354
|
+
Exception if:
|
|
355
|
+
- stageNumber is less than 1
|
|
356
|
+
- stageNumber is greater than the number of stages in the project
|
|
357
|
+
Returns:
|
|
358
|
+
list[ElementInformation]: A list of element information wrappers for the requested stage.
|
|
359
|
+
"""
|
|
360
|
+
self._checkResultsAvailability(stageNumber)
|
|
361
|
+
request = ResultsQueryService.ElementInformationQueryRequest(_projectId = self._objectId, stageNumber=stageNumber)
|
|
362
|
+
stream = self._queryService.QueryElementInformationFromBeamsForepolesPiles(request)
|
|
363
|
+
return self._processElementInformationStream(stream, ElementInformation)
|
|
364
|
+
|
|
365
|
+
def queryElementInfoFromLiners(self, stageNumber: int) -> list[ElementInformation]:
|
|
366
|
+
"""
|
|
367
|
+
Query element information on liners at a specific stage.
|
|
368
|
+
|
|
369
|
+
Parameters:
|
|
370
|
+
stageNumber (int): The analysis stage index (1-based) at which to perform the query.
|
|
371
|
+
|
|
372
|
+
Raises:
|
|
373
|
+
Exception if:
|
|
374
|
+
- stageNumber is less than 1
|
|
375
|
+
- stageNumber is greater than the number of stages in the project
|
|
376
|
+
Returns:
|
|
377
|
+
list[ElementInformation]: A list of element information wrappers for the requested stage.
|
|
378
|
+
"""
|
|
379
|
+
self._checkResultsAvailability(stageNumber)
|
|
380
|
+
request = ResultsQueryService.ElementInformationQueryRequest(_projectId = self._objectId, stageNumber=stageNumber)
|
|
381
|
+
stream = self._queryService.QueryElementInformationFromLiners(request)
|
|
382
|
+
return self._processElementInformationStream(stream, ElementInformation)
|
|
383
|
+
|
|
384
|
+
def queryElementInfoFromJoints(self, stageNumber: int) -> list[ElementInformation]:
|
|
385
|
+
"""
|
|
386
|
+
Query element information on joints at a specific stage.
|
|
387
|
+
|
|
388
|
+
Parameters:
|
|
389
|
+
stageNumber (int): The analysis stage index (1-based) at which to perform the query.
|
|
390
|
+
|
|
391
|
+
Raises:
|
|
392
|
+
Exception if:
|
|
393
|
+
- stageNumber is less than 1
|
|
394
|
+
- stageNumber is greater than the number of stages in the project
|
|
395
|
+
Returns:
|
|
396
|
+
list[ElementInformation]: A list of element information wrappers for the requested stage.
|
|
397
|
+
"""
|
|
398
|
+
self._checkResultsAvailability(stageNumber)
|
|
399
|
+
request = ResultsQueryService.ElementInformationQueryRequest(_projectId = self._objectId, stageNumber=stageNumber)
|
|
400
|
+
stream = self._queryService.QueryElementInformationFromJoints(request)
|
|
401
|
+
return self._processElementInformationStream(stream, ElementInformation)
|
|
402
|
+
|
|
403
|
+
def queryElementInfoFromCompositeLinerInterfaces(self, stageNumber: int) -> list[ElementInformation]:
|
|
404
|
+
"""
|
|
405
|
+
Query element information on composite liner interfaces at a specific stage.
|
|
406
|
+
|
|
407
|
+
Parameters:
|
|
408
|
+
stageNumber (int): The analysis stage index (1-based) at which to perform the query.
|
|
409
|
+
|
|
410
|
+
Raises:
|
|
411
|
+
Exception if:
|
|
412
|
+
- stageNumber is less than 1
|
|
413
|
+
- stageNumber is greater than the number of stages in the project
|
|
414
|
+
Returns:
|
|
415
|
+
list[ElementInformation]: A list of element information wrappers for the requested stage.
|
|
416
|
+
"""
|
|
417
|
+
self._checkResultsAvailability(stageNumber)
|
|
418
|
+
request = ResultsQueryService.ElementInformationQueryRequest(_projectId = self._objectId, stageNumber=stageNumber)
|
|
419
|
+
stream = self._queryService.QueryElementInformationFromCompositeLinerInterfaces(request)
|
|
420
|
+
return self._processElementInformationStream(stream, ElementInformation)
|
|
421
|
+
|
|
422
|
+
def queryElementInfoFromBeams(self, stageNumber: int) -> list[ElementInformation]:
|
|
423
|
+
"""
|
|
424
|
+
Query element information on beams at a specific stage.
|
|
425
|
+
|
|
426
|
+
Parameters:
|
|
427
|
+
stageNumber (int): The analysis stage index (1-based) at which to perform the query.
|
|
428
|
+
|
|
429
|
+
Raises:
|
|
430
|
+
Exception if:
|
|
431
|
+
- stageNumber is less than 1
|
|
432
|
+
- stageNumber is greater than the number of stages in the project
|
|
433
|
+
Returns:
|
|
434
|
+
list[ElementInformation]: A list of element information wrappers for the requested stage.
|
|
435
|
+
"""
|
|
436
|
+
self._checkResultsAvailability(stageNumber)
|
|
437
|
+
request = ResultsQueryService.ElementInformationQueryRequest(_projectId = self._objectId, stageNumber=stageNumber)
|
|
438
|
+
stream = self._queryService.QueryElementInformationFromBeams(request)
|
|
439
|
+
return self._processElementInformationStream(stream, ElementInformation)
|
|
440
|
+
|
|
441
|
+
def queryElementInfoFromPilesForepoles(self, stageNumber: int) -> list[PileForepoleElementInformation]:
|
|
442
|
+
"""
|
|
443
|
+
Query element information on piles and forepoles at a specific stage.
|
|
444
|
+
|
|
445
|
+
Parameters:
|
|
446
|
+
stageNumber (int): The analysis stage index (1-based) at which to perform the query.
|
|
447
|
+
|
|
448
|
+
Raises:
|
|
449
|
+
Exception if:
|
|
450
|
+
- stageNumber is less than 1
|
|
451
|
+
- stageNumber is greater than the number of stages in the project
|
|
452
|
+
Returns:
|
|
453
|
+
list[PileForepoleElementInformation]: A list of pile forepole element information wrappers for the requested stage.
|
|
454
|
+
"""
|
|
455
|
+
self._checkResultsAvailability(stageNumber)
|
|
456
|
+
request = ResultsQueryService.ElementInformationQueryRequest(_projectId = self._objectId, stageNumber=stageNumber)
|
|
457
|
+
stream = self._queryService.QueryElementInformationFromPilesForepoles(request)
|
|
458
|
+
return self._processElementInformationStream(stream, PileForepoleElementInformation)
|
|
459
|
+
|
|
460
|
+
# SRF Values
|
|
461
|
+
def querySRFValues(self) -> list[SRFValue]:
|
|
462
|
+
"""
|
|
463
|
+
Query SRF values at a specific stage.
|
|
464
|
+
"""
|
|
465
|
+
if self._srfValues is None:
|
|
466
|
+
self._srfValues = self._querySRFValues()
|
|
467
|
+
return self._srfValues
|
|
468
|
+
|
|
469
|
+
def _querySRFValues(self) -> list[SRFValue]:
|
|
470
|
+
"""
|
|
471
|
+
Query SRF values at a specific stage.
|
|
472
|
+
|
|
473
|
+
Parameters:
|
|
474
|
+
ProjectID (str): The project ID.
|
|
475
|
+
|
|
476
|
+
Raises:
|
|
477
|
+
Exception if:
|
|
478
|
+
- projectID is invalid
|
|
479
|
+
- results are not available
|
|
480
|
+
Returns:
|
|
481
|
+
list[SRFValue]: A list of SRF value wrappers for the requested stage.
|
|
482
|
+
"""
|
|
483
|
+
request = ResultsQueryService.SRFValuesQueryRequest(_projectId = self._objectId)
|
|
484
|
+
response = self._client.callFunction(self._queryService.QuerySRFValues, request)
|
|
485
|
+
return list(SRFValue(s) for s in response.srfValues)
|
|
486
|
+
|
|
487
|
+
# end SRF Values
|
|
488
|
+
|
|
489
|
+
def _getMeshResults(self, srfResultIndex: int = 0, stageNumber: int = 1, requiredDataTypes: Optional[set[SolidsDataType]] = None) -> SolidResults:
|
|
490
|
+
'''
|
|
491
|
+
Get the mesh results for a specific stage and SRF value.
|
|
492
|
+
Parameters:
|
|
493
|
+
srfResultIndex: int: The SRF result index. Defaults to 0 to query SRF-None.
|
|
494
|
+
stageNumber: int: The stage number. Defaults to 1.
|
|
495
|
+
requiredDataTypes: Optional[set[SolidsDataType]]: Optional set of SolidsDataType enum values to check availability for.
|
|
496
|
+
If None or empty, all data types are queried.
|
|
497
|
+
Raises:
|
|
498
|
+
Exception if:
|
|
499
|
+
- stageNumber is less than 1
|
|
500
|
+
- stageNumber is greater than the number of stages in the project
|
|
501
|
+
- srfResultIndex is less than 0
|
|
502
|
+
- srfResultIndex is greater or equal to the number of SRF results in the project
|
|
503
|
+
- Results are not available for the specified stage, SRF value, and data types
|
|
504
|
+
Returns:
|
|
505
|
+
SolidResults: A SolidResults object.
|
|
506
|
+
'''
|
|
507
|
+
return SolidResults.createWithAvailabilityCheck(self._client, self._objectId, stageNumber, srfResultIndex, requiredDataTypes)
|
|
508
|
+
|
|
509
|
+
def getMeshResults(self, srfResultIndex: int = 0, stageNumber: list[int] = [1], requiredDataTypes: Optional[set[SolidsDataType]] = None) -> list[SolidResults]:
|
|
510
|
+
'''
|
|
511
|
+
Get the mesh results for specific stages and SRF value.
|
|
512
|
+
Parameters:
|
|
513
|
+
srfResultIndex: int: The SRF result index. Defaults to 0 to query SRF-None.
|
|
514
|
+
stageNumber: list[int]: The stage number list. Defaults to [1].
|
|
515
|
+
requiredDataTypes: Optional[set[SolidsDataType]]: Optional set of SolidsDataType enum values to check availability for.
|
|
516
|
+
If None or empty, all data types are queried.
|
|
517
|
+
Raises:
|
|
518
|
+
Exception if:
|
|
519
|
+
- a selected stageNumber is less than 1
|
|
520
|
+
- a selected stageNumber is greater than the number of stages in the project
|
|
521
|
+
- srfResultIndex is less than 0
|
|
522
|
+
- srfResultIndex is greater or equal to the number of SRF results in the project
|
|
523
|
+
- Results are not available for the specified stage, SRF value, and data types
|
|
524
|
+
Returns:
|
|
525
|
+
list[SolidResults]: SolidResults objects for the requested stages.
|
|
526
|
+
'''
|
|
527
|
+
if not isinstance(stageNumber, list) or len(stageNumber) == 0:
|
|
528
|
+
raise ValueError("stageNumber must be a non-empty list of ints")
|
|
529
|
+
result_list: list[SolidResults] = []
|
|
530
|
+
for st in stageNumber:
|
|
531
|
+
result_list.append(self._getMeshResults(srfResultIndex, st, requiredDataTypes))
|
|
532
|
+
return result_list
|
|
533
|
+
|
|
534
|
+
def getBeamResults(self, srfResultIndex: int = 0, stageNumber: list[int] = [1]) -> list[BeamResults]:
|
|
535
|
+
'''
|
|
536
|
+
Get the beam results for specific stages and SRF value.
|
|
537
|
+
Parameters:
|
|
538
|
+
srfResultIndex: int: The SRF result index. Defaults to 0 to query SRF-None.
|
|
539
|
+
stageNumber: list[int]: The stage number list. Defaults to [1].
|
|
540
|
+
Raises:
|
|
541
|
+
Exception if:
|
|
542
|
+
- a selected stageNumber is less than 1
|
|
543
|
+
- a selected stageNumber is greater than the number of stages in the project
|
|
544
|
+
- srfResultIndex is less than 0
|
|
545
|
+
- srfResultIndex is greater or equal to the number of SRF results in the project
|
|
546
|
+
Returns:
|
|
547
|
+
list[BeamResults]: BeamResults objects for the requested stages.
|
|
548
|
+
'''
|
|
549
|
+
if not isinstance(stageNumber, list) or len(stageNumber) == 0:
|
|
550
|
+
raise ValueError("stageNumber must be a non-empty list of ints")
|
|
551
|
+
result_list: list[BeamResults] = []
|
|
552
|
+
for st in stageNumber:
|
|
553
|
+
resultsAvailable = self.getResultsAvailability(st, srfResultIndex)
|
|
554
|
+
if not resultsAvailable:
|
|
555
|
+
raise Exception(f"Cached results are not available for stage {st} and SRF result index {srfResultIndex}")
|
|
556
|
+
result_list.append(BeamResults(self._client, self._objectId, st, srfResultIndex))
|
|
557
|
+
return result_list
|
|
558
|
+
|
|
559
|
+
def getPileForepoleResults(self, srfResultIndex: int = 0, stageNumber: list[int] = [1]) -> list[PileForepoleResults]:
|
|
560
|
+
'''
|
|
561
|
+
Get the pile forepole results for specific stages and SRF value.
|
|
562
|
+
Parameters:
|
|
563
|
+
srfResultIndex: int: The SRF result index. Defaults to 0 to query SRF-None.
|
|
564
|
+
stageNumber: list[int]: The stage number list. Defaults to [1].
|
|
565
|
+
Raises:
|
|
566
|
+
Exception if:
|
|
567
|
+
- a selected stageNumber is less than 1
|
|
568
|
+
- a selected stageNumber is greater than the number of stages in the project
|
|
569
|
+
- srfResultIndex is less than 0
|
|
570
|
+
- srfResultIndex is greater or equal to the number of SRF results in the project
|
|
571
|
+
Returns:
|
|
572
|
+
list[PileForepoleResults]: PileForepoleResults objects for the requested stages.
|
|
573
|
+
'''
|
|
574
|
+
if not isinstance(stageNumber, list) or len(stageNumber) == 0:
|
|
575
|
+
raise ValueError("stageNumber must be a non-empty list of ints")
|
|
576
|
+
result_list: list[PileForepoleResults] = []
|
|
577
|
+
for st in stageNumber:
|
|
578
|
+
resultsAvailable = self.getResultsAvailability(st, srfResultIndex)
|
|
579
|
+
if not resultsAvailable:
|
|
580
|
+
raise Exception(f"Cached results are not available for stage {st} and SRF result index {srfResultIndex}")
|
|
581
|
+
result_list.append(PileForepoleResults(self._client, self._objectId, st, srfResultIndex))
|
|
582
|
+
return result_list
|
|
583
|
+
|
|
584
|
+
def getJointResults(self, stageNumber: list[int] = [1], srfResultIndex: int = 0) -> list[JointResults]:
|
|
585
|
+
'''
|
|
586
|
+
Get the joint results for a specific stage and SRF value.
|
|
587
|
+
Parameters:
|
|
588
|
+
srfResultIndex: int: The SRF result index. Defaults to 0 to query SRF-None.
|
|
589
|
+
stageNumber: int: The stage number. Defaults to 1.
|
|
590
|
+
Raises:
|
|
591
|
+
Exception if:
|
|
592
|
+
- stageNumber is less than 1
|
|
593
|
+
- stageNumber is greater than the number of stages in the project
|
|
594
|
+
- srfResultIndex is less than 0
|
|
595
|
+
- srfResultIndex is greater or equal to the number of SRF results in the project
|
|
596
|
+
Returns:
|
|
597
|
+
JointResults: A JointResults object.
|
|
598
|
+
'''
|
|
599
|
+
if not isinstance(stageNumber, list) or len(stageNumber) == 0:
|
|
600
|
+
raise ValueError("stageNumber must be a non-empty list of ints")
|
|
601
|
+
result_list: list[JointResults] = []
|
|
602
|
+
for stage in stageNumber:
|
|
603
|
+
resultsAvailable = self.getResultsAvailability(stage, srfResultIndex)
|
|
604
|
+
if not resultsAvailable:
|
|
605
|
+
raise Exception(f"Cached results are not available for stage {stage} and SRF result index {srfResultIndex}")
|
|
606
|
+
|
|
607
|
+
jointResult = JointResults(self._client, self._objectId, stage, srfResultIndex)
|
|
608
|
+
result_list.append(jointResult)
|
|
609
|
+
return result_list
|
|
610
|
+
|
|
611
|
+
def getCompositeLinerResults(self, stageNumber: list[int] = [1], srfResultIndex: int = 0) -> list[CompositeLinerResults]:
|
|
612
|
+
'''
|
|
613
|
+
Get the mesh results for a specific stage and SRF value.
|
|
614
|
+
Parameters:
|
|
615
|
+
srfResultIndex: int: The SRF result index. Defaults to 0 to query SRF-None.
|
|
616
|
+
stageNumber: int: The stage number. Defaults to 1.
|
|
617
|
+
Raises:
|
|
618
|
+
Exception if:
|
|
619
|
+
- stageNumber is less than 1
|
|
620
|
+
- stageNumber is greater than the number of stages in the project
|
|
621
|
+
- srfResultIndex is less than 0
|
|
622
|
+
- srfResultIndex is greater or equal to the number of SRF results in the project
|
|
623
|
+
Returns:
|
|
624
|
+
CompositeLinerResults: A CompositeLinerResults object.
|
|
625
|
+
'''
|
|
626
|
+
if not isinstance(stageNumber, list) or len(stageNumber) == 0:
|
|
627
|
+
raise ValueError("stageNumber must be a non-empty list of ints")
|
|
628
|
+
result_list: list[CompositeLinerResults] = []
|
|
629
|
+
for stage in stageNumber:
|
|
630
|
+
resultsAvailable = self.getResultsAvailability(stage, srfResultIndex)
|
|
631
|
+
if not resultsAvailable:
|
|
632
|
+
raise Exception(f"Cached results are not available for stage {stage} and SRF result index {srfResultIndex}")
|
|
633
|
+
|
|
634
|
+
compositeLinerResult = CompositeLinerResults(self._client, self._objectId, stage, srfResultIndex)
|
|
635
|
+
result_list.append(compositeLinerResult)
|
|
636
|
+
return result_list
|
|
637
|
+
|
|
638
|
+
def getBoltResults(self, srfResultIndex: int = 0, stageNumber: list[int] = [1]) -> list[BoltResults]:
|
|
639
|
+
'''
|
|
640
|
+
Get the bolt results for specific stages and SRF value.
|
|
641
|
+
Parameters:
|
|
642
|
+
srfResultIndex: int: The SRF result index. Defaults to 0 to query SRF-None.
|
|
643
|
+
stageNumber: list[int]: The stage number list. Defaults to [1].
|
|
644
|
+
Raises:
|
|
645
|
+
Exception if:
|
|
646
|
+
- a selected stageNumber is less than 1
|
|
647
|
+
- a selected stageNumber is greater than the number of stages in the project
|
|
648
|
+
- srfResultIndex is less than 0
|
|
649
|
+
- srfResultIndex is greater or equal to the number of SRF results in the project
|
|
650
|
+
Returns:
|
|
651
|
+
list[BoltResults]: BoltResults objects for the requested stages.
|
|
652
|
+
'''
|
|
653
|
+
if not isinstance(stageNumber, list) or len(stageNumber) == 0:
|
|
654
|
+
raise ValueError("stageNumber must be a non-empty list of ints")
|
|
655
|
+
result_list: list[BoltResults] = []
|
|
656
|
+
for st in stageNumber:
|
|
657
|
+
resultsAvailable = self.getResultsAvailability(st, srfResultIndex)
|
|
658
|
+
if not resultsAvailable:
|
|
659
|
+
raise Exception(f"Cached results are not available for stage {st} and SRF result index {srfResultIndex}")
|
|
660
|
+
result_list.append(BoltResults(self._client, self._objectId, st, srfResultIndex))
|
|
661
|
+
return result_list
|