S3D.results


The S3D.results namespace provides post-processing functions to read and interpret analysis results produced by S3D.model.solve.


S3D.results.get#

Used to get the analysis results.

KeyTypeAcceptsDescriptionDefault
lc_filter[string]envelope, load_case, load_group, load_combo, envelope_abs_maxOnly return specific data in the response. You can also provide names you have applied to load combination. E.g. LC1.All cases
result_filter[string]reactions, member_displacements, member_forces, member_stresses, member_lengths, member_stations, member_discontinuities, member_minimums, member_maximums, member_peak_results, plate_displacements, plate_forces, plate_stresses, plate_minimums, plate_maximums, plate_peak_results, buckling, dynamic_frequencyOnly return specific data in the response.All results
Sample input for S3D.results.get
{
"function": "S3D.results.get",
"result_filter": ["member_peak_results", "member_discontinuities"],
"lc_filter": ["envelope", "envelope_abs_max"]
}

The analysis results will return an object of all load combination results in the following format.

Sample response for S3D.results.get
{
"1": {
"name": "LC1",
"type": "user_defined",
"reactions": {},
"member_displacements": {},
"member_forces": {},
"member_stresses": {},
"member_lengths": {},
"member_stations": {},
"member_discontinuities": {},
"member_minimums": {},
"member_maximums": {},
"member_peak_results": {},
"plate_displacements": {},
"plate_forces": {},
"plate_stresses": {},
"plate_minimums": {},
"plate_maximums": {},
"plate_peak_results": {}
},
"2": {} // etc
}


S3D.results.set#

Sets the results data for further processing.

tip

Analysis results from any source can be used. Simply provide the data in the same format that is returned from S3D.results.get.md.

KeyTypeDescription
analysis_resultsobjectResults of a structural analysis (from S3D.results.get)
Sample input for S3D.results.set
{
"function": "S3D.results.set",
"arguments": {
"analysis_results": {
"1": {
"name": "LC1",
"type": "user_defined",
"reactions": {},
"member_displacements": {},
"member_forces": {},
"member_stresses": {},
"member_lengths": {},
"member_stations": {},
"member_discontinuities": {},
"member_minimums": {},
"member_maximums": {},
"member_peak_results": {},
"plate_displacements": {},
"plate_forces": {},
"plate_stresses": {},
"plate_minimums": {},
"plate_maximums": {},
"plate_peak_results": {}
},
"2": {} // etc
}
}
}

The response will confirm whether or not the model was successfully set.

Sample response for S3D.results.set
{
"msg": "Results were successfully set.",
"status": 0,
"data": ""
}
Try S3D.results.set


S3D.results.fetchMemberResult#

Fetches results data for a particular member.

KeyTypeAcceptsDescriptionDefault
member_idintegerAn integerFetch the results of the member with this ID. A value of null will return all.
LC[integer]An array of integersLoad combinations to include. An empty array will return all load combinations.
res_keystringbmd_z, bmd_y, axial, sfd_y, sfd_z,
top_bending_stress_z, top_bending_stress_y,
btm_bending_stress_z, btm_bending_stress_y,
shear_stress_z, shear_stress_y,
displacement, displacement_x,
displacement_y, displacement_z
The type of results to be returned.
typestringarray, x,y, imageFormat of results.
  • array - array of results (no x location information)
  • x,y - object of results with x location and result
  • image - an image of the results.
Sample input for S3D.results.fetchMemberResult
{
"function": "S3D.results.fetchMemberResult",
"arguments": {
"member_id": 3,
"LC": [1],
"res_key": "bmd_z",
"type": "x,y"
}
}
Sample response for S3D.results.fetchMemberResult
{
"data": [
[
-0.19113528489304113,
-0.15415709542934292,
-0.11717890596564516,
-0.08020071650194674,
-0.04322252703824829,
-0.006244337574548954,
0.0307338518891493,
0.06771204135284795,
0.10469023081654624
]
],
"status": 0,
"msg": ""
}

If "type": "image" is provided, then an image will be returned in base64 format.



S3D.results.getAnalysisReport#

Generates a structural analysis report and returns a download link to retrieve the report.

important

S3D.model.set and S3D.model.solve must be executed earlier in the session for the Analysis Report to be generated.

Variables#

KeyTypeAcceptsDescriptionDefault
job_namestringAny string.The name of your project. This will be used as the analysis report name.
file_typestringpdf, txtThe report format to be returned.
load_combinations[integer]An array of integers or stringsAn array of load combination IDs or load combination names to report on. Users can also use shortcuts like load_combination = "all" or load_combination = "envelope" to only filter these.
sectionsobjectKey-value pairsThe different type of analysis results to include in your report (see below).
timezonenumberAny numberUTC offset of the timezone used for the time on the title page. For example Sydney, Australia would be 10 as it is GMT+10.
Sample input for S3D.results.getAnalysisReport
{
"function": "S3D.results.getAnalysisReport",
"arguments": {
"job_name": "Example Job Name",
"file_type": "pdf",
"load_combinations": [1, 2, 3, "Envelope Absolute Max"], // or "all", "envelope"
"sections": {
"title_page": true,
"job_setup": true,
"bom": true, // Bill of Materials
"nodal_reactions": true,
"nodal_forces": false,
"nodal_displacements": true,
"member_forces": false,
"member_displacements": true,
"member_stresses": false,
"buckling": false,
"plate_nodal_forces": false,
"plate_element_forces": false,
"plate_nodal_moments": false,
"plate_element_moments": false,
"plate_displacements": false,
"plate_nodal_stresses": false,
"plate_element_stresses": false,
"plate_nodal_equiv_stresses": false,
"plate_element_equiv_stresses": false
}
}
}

The function will return links to download and preview your analysis report in the format specified by the file_type property.

Sample response for S3D.results.getAnalysisReport
{
"status": 0,
"msg": "Analysis report successfully generated.",
"data": {
"view_link": "https://solver.skyciv.com/temp/view_report_9rxLAlPHg0VXxrei.php",
"download_link": "https://solver.skyciv.com/temp/download_report_9rxLAlPHg0VXxrei.php",
"html_download_link": "https://solver.skyciv.com/temp/download_html_report_9rxLAlPHg0VXxrei.php",
"file_type": "pdf"
}
}


S3D.results.getDynamicFreq#

Returns dynamic frequency analysis results, including modes, frequencies, periods, modal masses, and mass particpation percentages.

Note: A dynamic frequency analysis needs to be run using S3D.model.solve, before calling this function.

Sample Input:

{
"function": "S3D.results.getDynamicFreq",
"arguments": { }
}

Sample Response:

"data": {
"modes": {
"1": {
"frequency": 1.218436039866671,
"period": 0.8207242459024984,
"frequency_rad": 7.6556594234283475,
"node_shapes": {..detailed node shapes},
"member_shapes": {..detailed member shapes}
},
"2": {
"frequency": 1.64328431691,
"period": 0.783297390342,
"frequency_rad": 5.7432847625,
"node_shapes": {..detailed node shapes},
"member_shapes": {..detailed member shapes}
},
etc...
},
"effective_modal_mass": { ...effective modal masses },
"total_effective_modal_mass": {
"tx": 1325.6121419613362,
"ty": 1020.1733617219716,
"tz": 354.6243748683751
},
"total_structure_mass": {
"tx": 1596.4794357950404,
"ty": 1596.4794357950404,
"tz": 1596.4794357950404
},
"mass_participation_percentage": {
"tx": 83.03346176840581,
"ty": 63.90144081085074,
"tz": 22.212899641377064
}
},