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.
Files changed (393) hide show
  1. rs3/ApplicationManager.py +77 -0
  2. rs3/ColorPicker.py +123 -0
  3. rs3/CommonEnums.py +16 -0
  4. rs3/Compute.py +105 -0
  5. rs3/ExternalVolume.py +48 -0
  6. rs3/Geometry.py +74 -0
  7. rs3/Model.py +795 -0
  8. rs3/ModelEnums.py +9 -0
  9. rs3/RS3Modeler.py +109 -0
  10. rs3/Restraints.py +91 -0
  11. rs3/Selection.py +123 -0
  12. rs3/__init__.py +18 -0
  13. rs3/_client.py +57 -0
  14. rs3/_proxyObject.py +5 -0
  15. rs3/generatedFiles/BFPCommonMessage_pb2.py +38 -0
  16. rs3/generatedFiles/BFPCommonMessage_pb2.pyi +47 -0
  17. rs3/generatedFiles/BFPCommonMessage_pb2_grpc.py +24 -0
  18. rs3/generatedFiles/BeamDataService_pb2.py +37 -0
  19. rs3/generatedFiles/BeamDataService_pb2.pyi +5 -0
  20. rs3/generatedFiles/BeamDataService_pb2_grpc.py +226 -0
  21. rs3/generatedFiles/BeamService_pb2.py +37 -0
  22. rs3/generatedFiles/BeamService_pb2.pyi +5 -0
  23. rs3/generatedFiles/BeamService_pb2_grpc.py +140 -0
  24. rs3/generatedFiles/BeamStageFactorService_pb2.py +37 -0
  25. rs3/generatedFiles/BeamStageFactorService_pb2.pyi +5 -0
  26. rs3/generatedFiles/BeamStageFactorService_pb2_grpc.py +140 -0
  27. rs3/generatedFiles/BeamsResultsQueryService_pb2.py +50 -0
  28. rs3/generatedFiles/BeamsResultsQueryService_pb2.pyi +48 -0
  29. rs3/generatedFiles/BeamsResultsQueryService_pb2_grpc.py +141 -0
  30. rs3/generatedFiles/BoltDataService_pb2.py +37 -0
  31. rs3/generatedFiles/BoltDataService_pb2.pyi +5 -0
  32. rs3/generatedFiles/BoltDataService_pb2_grpc.py +226 -0
  33. rs3/generatedFiles/BoltService_pb2.py +37 -0
  34. rs3/generatedFiles/BoltService_pb2.pyi +5 -0
  35. rs3/generatedFiles/BoltService_pb2_grpc.py +140 -0
  36. rs3/generatedFiles/BoltsResultsQueryService_pb2.py +51 -0
  37. rs3/generatedFiles/BoltsResultsQueryService_pb2.pyi +75 -0
  38. rs3/generatedFiles/BoltsResultsQueryService_pb2_grpc.py +141 -0
  39. rs3/generatedFiles/ClientService_pb2.py +40 -0
  40. rs3/generatedFiles/ClientService_pb2.pyi +15 -0
  41. rs3/generatedFiles/ClientService_pb2_grpc.py +97 -0
  42. rs3/generatedFiles/CommonGeometryMessages_pb2.py +52 -0
  43. rs3/generatedFiles/CommonGeometryMessages_pb2.pyi +92 -0
  44. rs3/generatedFiles/CommonGeometryMessages_pb2_grpc.py +24 -0
  45. rs3/generatedFiles/CommonMessages_pb2.py +66 -0
  46. rs3/generatedFiles/CommonMessages_pb2.pyi +145 -0
  47. rs3/generatedFiles/CommonMessages_pb2_grpc.py +24 -0
  48. rs3/generatedFiles/CompositeLinerDataService_pb2.py +47 -0
  49. rs3/generatedFiles/CompositeLinerDataService_pb2.pyi +51 -0
  50. rs3/generatedFiles/CompositeLinerDataService_pb2_grpc.py +227 -0
  51. rs3/generatedFiles/CompositeLinerResultsQueryService_pb2.py +63 -0
  52. rs3/generatedFiles/CompositeLinerResultsQueryService_pb2.pyi +139 -0
  53. rs3/generatedFiles/CompositeLinerResultsQueryService_pb2_grpc.py +314 -0
  54. rs3/generatedFiles/CompositeLinerService_pb2.py +37 -0
  55. rs3/generatedFiles/CompositeLinerService_pb2.pyi +5 -0
  56. rs3/generatedFiles/CompositeLinerService_pb2_grpc.py +140 -0
  57. rs3/generatedFiles/ComputeService_pb2.py +48 -0
  58. rs3/generatedFiles/ComputeService_pb2.pyi +56 -0
  59. rs3/generatedFiles/ComputeService_pb2_grpc.py +147 -0
  60. rs3/generatedFiles/ExternalVolumesService_pb2.py +45 -0
  61. rs3/generatedFiles/ExternalVolumesService_pb2.pyi +34 -0
  62. rs3/generatedFiles/ExternalVolumesService_pb2_grpc.py +270 -0
  63. rs3/generatedFiles/FieldStressService_pb2.py +37 -0
  64. rs3/generatedFiles/FieldStressService_pb2.pyi +5 -0
  65. rs3/generatedFiles/FieldStressService_pb2_grpc.py +140 -0
  66. rs3/generatedFiles/FieldStressSourceService_pb2.py +85 -0
  67. rs3/generatedFiles/FieldStressSourceService_pb2.pyi +182 -0
  68. rs3/generatedFiles/FieldStressSourceService_pb2_grpc.py +657 -0
  69. rs3/generatedFiles/GaussPointFailureMessage_pb2.py +37 -0
  70. rs3/generatedFiles/GaussPointFailureMessage_pb2.pyi +14 -0
  71. rs3/generatedFiles/GaussPointFailureMessage_pb2_grpc.py +24 -0
  72. rs3/generatedFiles/HydraulicStageFactorService_pb2.py +45 -0
  73. rs3/generatedFiles/HydraulicStageFactorService_pb2.pyi +36 -0
  74. rs3/generatedFiles/HydraulicStageFactorService_pb2_grpc.py +227 -0
  75. rs3/generatedFiles/JointDataService_pb2.py +45 -0
  76. rs3/generatedFiles/JointDataService_pb2.pyi +30 -0
  77. rs3/generatedFiles/JointDataService_pb2_grpc.py +313 -0
  78. rs3/generatedFiles/JointResultsQueryService_pb2.py +54 -0
  79. rs3/generatedFiles/JointResultsQueryService_pb2.pyi +92 -0
  80. rs3/generatedFiles/JointResultsQueryService_pb2_grpc.py +141 -0
  81. rs3/generatedFiles/JointService_pb2.py +45 -0
  82. rs3/generatedFiles/JointService_pb2.pyi +30 -0
  83. rs3/generatedFiles/JointService_pb2_grpc.py +227 -0
  84. rs3/generatedFiles/JointStageFactorService_pb2.py +37 -0
  85. rs3/generatedFiles/JointStageFactorService_pb2.pyi +5 -0
  86. rs3/generatedFiles/JointStageFactorService_pb2_grpc.py +140 -0
  87. rs3/generatedFiles/LinerDataService_pb2.py +37 -0
  88. rs3/generatedFiles/LinerDataService_pb2.pyi +5 -0
  89. rs3/generatedFiles/LinerDataService_pb2_grpc.py +226 -0
  90. rs3/generatedFiles/LinerService_pb2.py +37 -0
  91. rs3/generatedFiles/LinerService_pb2.pyi +5 -0
  92. rs3/generatedFiles/LinerService_pb2_grpc.py +140 -0
  93. rs3/generatedFiles/LinerStageFactorService_pb2.py +37 -0
  94. rs3/generatedFiles/LinerStageFactorService_pb2.pyi +5 -0
  95. rs3/generatedFiles/LinerStageFactorService_pb2_grpc.py +140 -0
  96. rs3/generatedFiles/MaterialDataService_pb2.py +37 -0
  97. rs3/generatedFiles/MaterialDataService_pb2.pyi +5 -0
  98. rs3/generatedFiles/MaterialDataService_pb2_grpc.py +226 -0
  99. rs3/generatedFiles/MaterialDatumService_pb2.py +45 -0
  100. rs3/generatedFiles/MaterialDatumService_pb2.pyi +38 -0
  101. rs3/generatedFiles/MaterialDatumService_pb2_grpc.py +140 -0
  102. rs3/generatedFiles/MaterialHydraulicDataService_pb2.py +93 -0
  103. rs3/generatedFiles/MaterialHydraulicDataService_pb2.pyi +193 -0
  104. rs3/generatedFiles/MaterialHydraulicDataService_pb2_grpc.py +829 -0
  105. rs3/generatedFiles/MaterialHydraulicModelService_pb2.py +55 -0
  106. rs3/generatedFiles/MaterialHydraulicModelService_pb2.pyi +79 -0
  107. rs3/generatedFiles/MaterialHydraulicModelService_pb2_grpc.py +313 -0
  108. rs3/generatedFiles/MaterialInitialConditionsService_pb2.py +37 -0
  109. rs3/generatedFiles/MaterialInitialConditionsService_pb2.pyi +5 -0
  110. rs3/generatedFiles/MaterialInitialConditionsService_pb2_grpc.py +140 -0
  111. rs3/generatedFiles/MaterialJointService_pb2.py +49 -0
  112. rs3/generatedFiles/MaterialJointService_pb2.pyi +52 -0
  113. rs3/generatedFiles/MaterialJointService_pb2_grpc.py +183 -0
  114. rs3/generatedFiles/MaterialJointSetSlipCriterionService_pb2.py +69 -0
  115. rs3/generatedFiles/MaterialJointSetSlipCriterionService_pb2.pyi +130 -0
  116. rs3/generatedFiles/MaterialJointSetSlipCriterionService_pb2_grpc.py +398 -0
  117. rs3/generatedFiles/MaterialJointStageFactorService_pb2.py +45 -0
  118. rs3/generatedFiles/MaterialJointStageFactorService_pb2.pyi +42 -0
  119. rs3/generatedFiles/MaterialJointStageFactorService_pb2_grpc.py +140 -0
  120. rs3/generatedFiles/MaterialStageFactorsService_pb2.py +37 -0
  121. rs3/generatedFiles/MaterialStageFactorsService_pb2.pyi +5 -0
  122. rs3/generatedFiles/MaterialStageFactorsService_pb2_grpc.py +140 -0
  123. rs3/generatedFiles/MaterialStiffnessFormulaService_pb2.py +47 -0
  124. rs3/generatedFiles/MaterialStiffnessFormulaService_pb2.pyi +54 -0
  125. rs3/generatedFiles/MaterialStiffnessFormulaService_pb2_grpc.py +140 -0
  126. rs3/generatedFiles/MaterialStiffnessService_pb2.py +53 -0
  127. rs3/generatedFiles/MaterialStiffnessService_pb2.pyi +66 -0
  128. rs3/generatedFiles/MaterialStiffnessService_pb2_grpc.py +313 -0
  129. rs3/generatedFiles/MaterialStrengthService_pb2.py +105 -0
  130. rs3/generatedFiles/MaterialStrengthService_pb2.pyi +243 -0
  131. rs3/generatedFiles/MaterialStrengthService_pb2_grpc.py +833 -0
  132. rs3/generatedFiles/MaterialUnsaturatedSoilDataService_pb2.py +47 -0
  133. rs3/generatedFiles/MaterialUnsaturatedSoilDataService_pb2.pyi +43 -0
  134. rs3/generatedFiles/MaterialUnsaturatedSoilDataService_pb2_grpc.py +228 -0
  135. rs3/generatedFiles/MeshSettingsService_pb2.py +41 -0
  136. rs3/generatedFiles/MeshSettingsService_pb2.pyi +16 -0
  137. rs3/generatedFiles/MeshSettingsService_pb2_grpc.py +184 -0
  138. rs3/generatedFiles/ModelFunctionService_pb2.py +119 -0
  139. rs3/generatedFiles/ModelFunctionService_pb2.pyi +331 -0
  140. rs3/generatedFiles/ModelFunctionService_pb2_grpc.py +871 -0
  141. rs3/generatedFiles/ModelService_pb2.py +342 -0
  142. rs3/generatedFiles/ModelService_pb2.pyi +962 -0
  143. rs3/generatedFiles/ModelService_pb2_grpc.py +3322 -0
  144. rs3/generatedFiles/PileDataService_pb2.py +55 -0
  145. rs3/generatedFiles/PileDataService_pb2.pyi +63 -0
  146. rs3/generatedFiles/PileDataService_pb2_grpc.py +399 -0
  147. rs3/generatedFiles/PileForepoleResultsQueryService_pb2.py +51 -0
  148. rs3/generatedFiles/PileForepoleResultsQueryService_pb2.pyi +63 -0
  149. rs3/generatedFiles/PileForepoleResultsQueryService_pb2_grpc.py +141 -0
  150. rs3/generatedFiles/PileStageFactorService_pb2.py +37 -0
  151. rs3/generatedFiles/PileStageFactorService_pb2.pyi +5 -0
  152. rs3/generatedFiles/PileStageFactorService_pb2_grpc.py +140 -0
  153. rs3/generatedFiles/PlainStrandCableBoltService_pb2.py +44 -0
  154. rs3/generatedFiles/PlainStrandCableBoltService_pb2.pyi +30 -0
  155. rs3/generatedFiles/PlainStrandCableBoltService_pb2_grpc.py +140 -0
  156. rs3/generatedFiles/ProjectSettingsDataService_pb2.py +69 -0
  157. rs3/generatedFiles/ProjectSettingsDataService_pb2.pyi +119 -0
  158. rs3/generatedFiles/ProjectSettingsDataService_pb2_grpc.py +786 -0
  159. rs3/generatedFiles/RFCApplicationService_pb2.py +34 -0
  160. rs3/generatedFiles/RFCApplicationService_pb2.pyi +27 -0
  161. rs3/generatedFiles/RFCApplicationService_pb2_grpc.py +145 -0
  162. rs3/generatedFiles/RS3ModelerService_pb2.py +50 -0
  163. rs3/generatedFiles/RS3ModelerService_pb2.pyi +45 -0
  164. rs3/generatedFiles/RS3ModelerService_pb2_grpc.py +183 -0
  165. rs3/generatedFiles/RelativeStageFactorService_pb2.py +40 -0
  166. rs3/generatedFiles/RelativeStageFactorService_pb2.pyi +17 -0
  167. rs3/generatedFiles/RelativeStageFactorService_pb2_grpc.py +97 -0
  168. rs3/generatedFiles/RestraintsService_pb2.py +62 -0
  169. rs3/generatedFiles/RestraintsService_pb2.pyi +84 -0
  170. rs3/generatedFiles/RestraintsService_pb2_grpc.py +312 -0
  171. rs3/generatedFiles/ResultsQueryCommonMessage_pb2.py +56 -0
  172. rs3/generatedFiles/ResultsQueryCommonMessage_pb2.pyi +85 -0
  173. rs3/generatedFiles/ResultsQueryCommonMessage_pb2_grpc.py +24 -0
  174. rs3/generatedFiles/ResultsQueryService_pb2.py +87 -0
  175. rs3/generatedFiles/ResultsQueryService_pb2.pyi +185 -0
  176. rs3/generatedFiles/ResultsQueryService_pb2_grpc.py +745 -0
  177. rs3/generatedFiles/SelectionService_pb2.py +49 -0
  178. rs3/generatedFiles/SelectionService_pb2.pyi +51 -0
  179. rs3/generatedFiles/SelectionService_pb2_grpc.py +269 -0
  180. rs3/generatedFiles/SolidsResultsQueryService_pb2.py +93 -0
  181. rs3/generatedFiles/SolidsResultsQueryService_pb2.pyi +213 -0
  182. rs3/generatedFiles/SolidsResultsQueryService_pb2_grpc.py +195 -0
  183. rs3/generatedFiles/StageFactorService_pb2.py +58 -0
  184. rs3/generatedFiles/StageFactorService_pb2.pyi +79 -0
  185. rs3/generatedFiles/StageFactorService_pb2_grpc.py +226 -0
  186. rs3/generatedFiles/StiffnessStageFactorService_pb2.py +37 -0
  187. rs3/generatedFiles/StiffnessStageFactorService_pb2.pyi +5 -0
  188. rs3/generatedFiles/StiffnessStageFactorService_pb2_grpc.py +140 -0
  189. rs3/generatedFiles/StrengthStageFactorService_pb2.py +37 -0
  190. rs3/generatedFiles/StrengthStageFactorService_pb2.pyi +5 -0
  191. rs3/generatedFiles/StrengthStageFactorService_pb2_grpc.py +140 -0
  192. rs3/generatedFiles/WaterByLocationDataService_pb2.py +61 -0
  193. rs3/generatedFiles/WaterByLocationDataService_pb2.pyi +95 -0
  194. rs3/generatedFiles/WaterByLocationDataService_pb2_grpc.py +312 -0
  195. rs3/generatedFiles/WaterPressureGridDataService_pb2.py +63 -0
  196. rs3/generatedFiles/WaterPressureGridDataService_pb2.pyi +107 -0
  197. rs3/generatedFiles/WaterPressureGridDataService_pb2_grpc.py +312 -0
  198. rs3/generatedFiles/__init__.py +3 -0
  199. rs3/loadings/LoadingEnums.py +6 -0
  200. rs3/loadings/Loadings.py +15 -0
  201. rs3/loadings/__init__.py +0 -0
  202. rs3/loadings/fieldStress/AdvancedConstant.py +115 -0
  203. rs3/loadings/fieldStress/AdvancedGravity.py +176 -0
  204. rs3/loadings/fieldStress/Constant.py +119 -0
  205. rs3/loadings/fieldStress/FieldStress.py +38 -0
  206. rs3/loadings/fieldStress/Gravity.py +206 -0
  207. rs3/loadings/fieldStress/_PropertyAccessor.py +41 -0
  208. rs3/loadings/fieldStress/__init__.py +0 -0
  209. rs3/mesh/Graded.py +59 -0
  210. rs3/mesh/Mesh.py +50 -0
  211. rs3/mesh/MeshEnums.py +16 -0
  212. rs3/mesh/Uniform.py +35 -0
  213. rs3/mesh/_PropertyAccessor.py +10 -0
  214. rs3/mesh/__init__.py +0 -0
  215. rs3/projectSettings/Dynamic.py +110 -0
  216. rs3/projectSettings/Groundwater.py +118 -0
  217. rs3/projectSettings/ProjectSettingEnums.py +108 -0
  218. rs3/projectSettings/ProjectSettings.py +43 -0
  219. rs3/projectSettings/ShearStrengthReduction.py +130 -0
  220. rs3/projectSettings/SolverOptions.py +88 -0
  221. rs3/projectSettings/Stages.py +162 -0
  222. rs3/projectSettings/StressAnalysis.py +183 -0
  223. rs3/projectSettings/Units.py +82 -0
  224. rs3/projectSettings/_PropertyAccessor.py +133 -0
  225. rs3/projectSettings/__init__.py +0 -0
  226. rs3/properties/CustomHydraulicModel.py +129 -0
  227. rs3/properties/DiscreteFunction.py +147 -0
  228. rs3/properties/GeneralizedAnisotropicFunction.py +98 -0
  229. rs3/properties/IPropertyGroupAccessors.py +12 -0
  230. rs3/properties/PropertyEnums.py +387 -0
  231. rs3/properties/ShearNormalFunction.py +94 -0
  232. rs3/properties/SnowdenStrengthFunction.py +115 -0
  233. rs3/properties/_PropertyAccessor.py +111 -0
  234. rs3/properties/__init__.py +0 -0
  235. rs3/properties/beam/Beam.py +86 -0
  236. rs3/properties/beam/BeamCommon.py +175 -0
  237. rs3/properties/beam/Standard.py +97 -0
  238. rs3/properties/beam/Truss.py +23 -0
  239. rs3/properties/beam/_PropertyAccessor.py +9 -0
  240. rs3/properties/beam/__init__.py +0 -0
  241. rs3/properties/bolt/Bolt.py +81 -0
  242. rs3/properties/bolt/EndAnchored.py +77 -0
  243. rs3/properties/bolt/FullyBonded.py +78 -0
  244. rs3/properties/bolt/PlainStrandCable.py +151 -0
  245. rs3/properties/bolt/Swellex.py +106 -0
  246. rs3/properties/bolt/Tieback.py +176 -0
  247. rs3/properties/bolt/_PropertyAccessor.py +7 -0
  248. rs3/properties/bolt/__init__.py +0 -0
  249. rs3/properties/groundwater/WaterByLocation.py +83 -0
  250. rs3/properties/groundwater/WaterGrid.py +120 -0
  251. rs3/properties/groundwater/_PropertyAccessor.py +36 -0
  252. rs3/properties/groundwater/__init__.py +0 -0
  253. rs3/properties/joint/BartonBandis.py +118 -0
  254. rs3/properties/joint/GeosyntheticHyperbolic.py +158 -0
  255. rs3/properties/joint/Joint.py +176 -0
  256. rs3/properties/joint/MaterialDependent.py +107 -0
  257. rs3/properties/joint/MohrCoulomb.py +169 -0
  258. rs3/properties/joint/NoneSlip.py +68 -0
  259. rs3/properties/joint/_PropertyAccessor.py +9 -0
  260. rs3/properties/joint/__init__.py +0 -0
  261. rs3/properties/liner/Geosynthetic.py +85 -0
  262. rs3/properties/liner/Liner.py +83 -0
  263. rs3/properties/liner/ReinforcedConcrete.py +216 -0
  264. rs3/properties/liner/Standard.py +183 -0
  265. rs3/properties/liner/_PropertyAccessor.py +7 -0
  266. rs3/properties/liner/__init__.py +0 -0
  267. rs3/properties/liningComposition/LiningComposition.py +244 -0
  268. rs3/properties/liningComposition/_PropertyAccessor.py +7 -0
  269. rs3/properties/liningComposition/__init__.py +0 -0
  270. rs3/properties/material/Material.py +74 -0
  271. rs3/properties/material/__init__.py +0 -0
  272. rs3/properties/material/constitutiveModel/AnisotropicLinear.py +149 -0
  273. rs3/properties/material/constitutiveModel/AnisotropicLinearPlanarBase.py +72 -0
  274. rs3/properties/material/constitutiveModel/BarcelonaBasic.py +158 -0
  275. rs3/properties/material/constitutiveModel/BartonBandis.py +77 -0
  276. rs3/properties/material/constitutiveModel/BaseConstitutiveModel.py +11 -0
  277. rs3/properties/material/constitutiveModel/BoundingSurfacePlasticity.py +88 -0
  278. rs3/properties/material/constitutiveModel/CamClay.py +144 -0
  279. rs3/properties/material/constitutiveModel/ChSoil.py +111 -0
  280. rs3/properties/material/constitutiveModel/ConstitutiveModel.py +87 -0
  281. rs3/properties/material/constitutiveModel/CySoil.py +137 -0
  282. rs3/properties/material/constitutiveModel/DiscreteFunction.py +39 -0
  283. rs3/properties/material/constitutiveModel/DoubleYield.py +130 -0
  284. rs3/properties/material/constitutiveModel/DruckerPrager.py +136 -0
  285. rs3/properties/material/constitutiveModel/GeneralizedAnisotropic.py +39 -0
  286. rs3/properties/material/constitutiveModel/GeneralizedHoekBrown.py +226 -0
  287. rs3/properties/material/constitutiveModel/HardeningSoil.py +156 -0
  288. rs3/properties/material/constitutiveModel/HardeningSoilWithSmallStrain.py +170 -0
  289. rs3/properties/material/constitutiveModel/HoekBrown.py +125 -0
  290. rs3/properties/material/constitutiveModel/Hyperbolic.py +77 -0
  291. rs3/properties/material/constitutiveModel/JointedGeneralizedHoekBrown.py +184 -0
  292. rs3/properties/material/constitutiveModel/JointedMohrCoulomb.py +173 -0
  293. rs3/properties/material/constitutiveModel/ManzariAndDafalias.py +148 -0
  294. rs3/properties/material/constitutiveModel/ModifiedCamClay.py +11 -0
  295. rs3/properties/material/constitutiveModel/MohrCoulomb.py +147 -0
  296. rs3/properties/material/constitutiveModel/MohrCoulombUnsaturatedZoneCalculations.py +80 -0
  297. rs3/properties/material/constitutiveModel/MohrCoulombWithCap.py +154 -0
  298. rs3/properties/material/constitutiveModel/Norsand.py +146 -0
  299. rs3/properties/material/constitutiveModel/PowerCurve.py +119 -0
  300. rs3/properties/material/constitutiveModel/Shansep.py +214 -0
  301. rs3/properties/material/constitutiveModel/ShearNormalFunction.py +34 -0
  302. rs3/properties/material/constitutiveModel/SnowdenAnisotropicLinear.py +108 -0
  303. rs3/properties/material/constitutiveModel/SoftSoil.py +104 -0
  304. rs3/properties/material/constitutiveModel/SoftSoilCreep.py +111 -0
  305. rs3/properties/material/constitutiveModel/SofteningHardening.py +214 -0
  306. rs3/properties/material/constitutiveModel/SwellingRock.py +202 -0
  307. rs3/properties/material/constitutiveModel/UnsaturatedZoneCalculations.py +138 -0
  308. rs3/properties/material/constitutiveModel/VerticalStressRatio.py +113 -0
  309. rs3/properties/material/constitutiveModel/_PropertyAccessor.py +96 -0
  310. rs3/properties/material/constitutiveModel/__init__.py +0 -0
  311. rs3/properties/material/constitutiveModel/jointOption/BartonBandis.py +109 -0
  312. rs3/properties/material/constitutiveModel/jointOption/MaterialJoint.py +48 -0
  313. rs3/properties/material/constitutiveModel/jointOption/MaterialJointOptions.py +32 -0
  314. rs3/properties/material/constitutiveModel/jointOption/MohrCoulomb.py +142 -0
  315. rs3/properties/material/constitutiveModel/jointOption/PlaneOrientationBase.py +92 -0
  316. rs3/properties/material/constitutiveModel/jointOption/SimpleHyperbolic.py +112 -0
  317. rs3/properties/material/constitutiveModel/jointOption/_PropertyAccessor.py +61 -0
  318. rs3/properties/material/constitutiveModel/jointOption/__init__.py +0 -0
  319. rs3/properties/material/constitutiveModel/stiffness/BaseStiffness.py +11 -0
  320. rs3/properties/material/constitutiveModel/stiffness/DuncanChangHyperbolic.py +128 -0
  321. rs3/properties/material/constitutiveModel/stiffness/GeneralizedHoekBrownEstimation.py +50 -0
  322. rs3/properties/material/constitutiveModel/stiffness/LinearIsotropic.py +106 -0
  323. rs3/properties/material/constitutiveModel/stiffness/NonlinearIsotropic.py +104 -0
  324. rs3/properties/material/constitutiveModel/stiffness/Orthotropic.py +296 -0
  325. rs3/properties/material/constitutiveModel/stiffness/TransverselyIsotropic.py +186 -0
  326. rs3/properties/material/constitutiveModel/stiffness/_PropertyAccessor.py +33 -0
  327. rs3/properties/material/constitutiveModel/stiffness/__init__.py +0 -0
  328. rs3/properties/material/constitutiveModel/stiffness/formula/Formula1.py +96 -0
  329. rs3/properties/material/constitutiveModel/stiffness/formula/Formula2.py +136 -0
  330. rs3/properties/material/constitutiveModel/stiffness/formula/Formula3.py +113 -0
  331. rs3/properties/material/constitutiveModel/stiffness/formula/_PropertyAccessor.py +37 -0
  332. rs3/properties/material/constitutiveModel/stiffness/formula/__init__.py +0 -0
  333. rs3/properties/material/datum/CohesionDatumDependency.py +99 -0
  334. rs3/properties/material/datum/Datum.py +23 -0
  335. rs3/properties/material/datum/FrictionAngleDatumDependency.py +99 -0
  336. rs3/properties/material/datum/YoungsModulusDatumDependency.py +78 -0
  337. rs3/properties/material/datum/_PropertyAccessor.py +26 -0
  338. rs3/properties/material/datum/__init__.py +0 -0
  339. rs3/properties/material/hydraulic/FEAGroundwater/Brooks.py +71 -0
  340. rs3/properties/material/hydraulic/FEAGroundwater/Custom.py +79 -0
  341. rs3/properties/material/hydraulic/FEAGroundwater/FEAGroundwater.py +85 -0
  342. rs3/properties/material/hydraulic/FEAGroundwater/Fredlund.py +82 -0
  343. rs3/properties/material/hydraulic/FEAGroundwater/Gardner.py +72 -0
  344. rs3/properties/material/hydraulic/FEAGroundwater/HydraulicMethodVectors.py +97 -0
  345. rs3/properties/material/hydraulic/FEAGroundwater/HydraulicParametersCommon.py +157 -0
  346. rs3/properties/material/hydraulic/FEAGroundwater/Simple.py +37 -0
  347. rs3/properties/material/hydraulic/FEAGroundwater/VanGenuchten.py +94 -0
  348. rs3/properties/material/hydraulic/FEAGroundwater/_PropertyAccessor.py +16 -0
  349. rs3/properties/material/hydraulic/FEAGroundwater/__init__.py +0 -0
  350. rs3/properties/material/hydraulic/Hydraulic.py +111 -0
  351. rs3/properties/material/hydraulic/PhreaticConditions.py +37 -0
  352. rs3/properties/material/hydraulic/StaticGroundwater.py +100 -0
  353. rs3/properties/material/hydraulic/WaterConditions.py +110 -0
  354. rs3/properties/material/hydraulic/_PropertyAccessor.py +31 -0
  355. rs3/properties/material/hydraulic/__init__.py +0 -0
  356. rs3/properties/material/initialConditions/InitialConditions.py +108 -0
  357. rs3/properties/material/initialConditions/_PropertyAccessor.py +11 -0
  358. rs3/properties/material/initialConditions/__init__.py +0 -0
  359. rs3/properties/material/stageFactors/StageFactors.py +77 -0
  360. rs3/properties/material/stageFactors/_PropertyAccessor.py +7 -0
  361. rs3/properties/material/stageFactors/__init__.py +0 -0
  362. rs3/properties/pile/EndCondition.py +109 -0
  363. rs3/properties/pile/Linear.py +69 -0
  364. rs3/properties/pile/MohrCoulomb.py +123 -0
  365. rs3/properties/pile/MultiLinear.py +70 -0
  366. rs3/properties/pile/Pile.py +108 -0
  367. rs3/properties/pile/PileCommon.py +99 -0
  368. rs3/properties/pile/_PropertyAccessor.py +9 -0
  369. rs3/properties/pile/__init__.py +0 -0
  370. rs3/properties/stageFactors/IStageFactorBase.py +10 -0
  371. rs3/properties/stageFactors/StageFactorBaseInterfaces.py +24 -0
  372. rs3/properties/stageFactors/StageFactorInterfaces.py +70 -0
  373. rs3/properties/stageFactors/_StageFactorInterface.py +48 -0
  374. rs3/properties/stageFactors/_StageFactorPropertyAccessor.py +18 -0
  375. rs3/properties/stageFactors/__init__.py +0 -0
  376. rs3/results/BeamResults.py +181 -0
  377. rs3/results/BoltResults.py +214 -0
  378. rs3/results/CompositeLinerResults.py +374 -0
  379. rs3/results/JointResults.py +160 -0
  380. rs3/results/PileForepoleResults.py +219 -0
  381. rs3/results/ResultEnums.py +146 -0
  382. rs3/results/Results.py +661 -0
  383. rs3/results/ResultsCommon.py +66 -0
  384. rs3/results/SolidElementResults.py +175 -0
  385. rs3/results/SolidNodalResults.py +248 -0
  386. rs3/results/SolidResults.py +206 -0
  387. rs3/results/YieldedElement.py +33 -0
  388. rs3/results/__init__.py +0 -0
  389. rs3scripting-4.42.0.dist-info/METADATA +70 -0
  390. rs3scripting-4.42.0.dist-info/RECORD +393 -0
  391. rs3scripting-4.42.0.dist-info/WHEEL +5 -0
  392. rs3scripting-4.42.0.dist-info/licenses/License.txt +20 -0
  393. 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