S3D.SB


The S3D.SB namespace exposes the functionality offered on SkyCiv's Section Builder platform. This includes access to the section database, creating custom sections, analyzing sections and more.


S3D.SB.getLibraryTree#

Get the list of sections from a specific library.

KeyTypeAcceptsDescription
section_maparrayAn array of up to 3 stringsAn array defining the keys of the map you wish to return. Use the Section Builder UI for reference.

Some examples:
["American"] - will return all American sections
["American", "AISC"] - will return all sections from AISC library
["American", "AISC", "W shapes"] - will return all W-Shapes
["Australian", "Cold Formed Steel (Lysaght)", "Angles"]
["Canadian", "CISC", "M Shapes"] - will return all M-Shapes from CISC catalog

Sample input for the S3D.SB.getLibraryTree function#

{
"function": "S3D.SB.getLibraryTree",
"arguments": {
"section_map": ["American", "AISC", "W shapes"]
}
}
Try S3D.SB.getLibraryTree

Sample response for the S3D.SB.getLibraryTree function#

{
"msg": "",
"status": 0,
"data": [
"W14x808",
"W18x192",
"W18x211",
"W18x234",
"W18x258",
"W18x283",
"W18x311",
"W24x408",
"W24x492",
"W27x448",
"W30x477",
"W36x230",
"etc..."
]
}


S3D.SB.buildCustomShape#

SkyCiv Section Builder uses a powerful FEM solver to calculate section properties such as area, moment of inertia, centroids, section moduli, shear properties and torsion properties. Users can use the API to calculate these properties via custom points and line data using S3D.SB.buildCustomShape.

KeyTypeAcceptsDescription
typestringpoints, lineThe type of custom shape being built, either:
• points - a shape defined by 2 points and the radius;
line - 2 points and the line thickness.
points[[integer]]An array of integer arraysArray of points.
For "type": "points", this is in format [x,y,radius]
For "type": line", this is in the format [x,y]
run_solvebooleantrue, falseIf solve should be executed following the build.
material_idintegerA material idMaterial id of shape. Use Structural 3D default materials as a guide.
tip

To add multiple shapes or to use S3D.SB.runGSD, set "run_solve": false.

Sample input for the S3D.SB.buildCustomShape function#

{
"function": "S3D.SB.buildCustomShape",
"arguments": {
"type": "points",
"points": [
[0, 1, 0],
[1, 1, 0],
[1, 0, 0],
[0, 0, 0]
],
"run_solve": false,
"material_id": 1
}
}
[
{
"function": "S3D.SB.buildCustomShape",
"arguments": {
"type": "points",
"material_id": 1,
"run_solve": false,
"points": [
[0, 1, 0],
[0.5, 2, 0],
[1, 1, 0],
[1, 0, 0],
[0, 0, 0]
]
}
},
{
"function": "S3D.SB.buildCustomShape",
"arguments": {
"type": "points",
"material_id": 4,
"run_solve": false,
"points": [
[10, 11, 0],
[10.5, 12, 0],
[11, 11, 0],
[11, 0, 0],
[0, 0, 0]
]
}
}
]
Try S3D.SB.buildCustomShape

Sample response for the S3D.SB.buildCustomShape function#

{
"status": 0,
"msg": "",
"data": {
"version": 2,
"name": "1 x 1",
"area": 1,
"Iz": 0.08333,
"Iy": 0.08333,
"material_id": 1,
"aux": {
"composite": false,
"Qz": 0.125,
"Qy": 0.125,
"centroid_point": [0.5, 0.5],
"centroid_length": [0.5, 0.5],
"depth": 1,
"width": 1,
"alpha": 0,
"Zy": 0.25,
"Zz": 0.25,
"polygons": [], //array of polygon data used in S3D rendering
"warping_constant": 0.000134425,
"shear_area_z": 0.8333333333333334,
"shear_area_y": 0.8333333333333334,
"torsion_radius": 0.675467
},
"J": 0.14058
}
}


S3D.SB.solve#

Submit section and calculate section properties. This may already be included in some functions such as S3D.SB.buildCustomShape where the run_solve property has been set to true.

info

Section should already be set via one of the earlier functions.

{
"function": "S3D.SB.solve"
}


S3D.SB.runGSD#

After a section is set via S3D.SB.buildCustomShape, further analysis may be performed on the section using the General Section Designer (GSD). This uses FEA to calculate the capacity of reinforced concrete sections. Provide loads, reinforcement and select from material databases to run FEA analysis and receive basic pass/fail results for complex concrete sections.

KeyTypeAcceptsDescriptionDefault
design_codestringACI 318, AS 3600, ENDesign code used to select material properties.
concrete_classstringAS: C20, C25, C32, C40, C50, C65, C80, C100

• ACI 318: C2500, C3000, C3500, C4000, C4500, C5000, C6000, C7000, C8000, C9000, C10000

EN: C20/25, C25/30, C30/37, C35/45, C40/50, C45/55, C50/60, C20/25, C60/75, C70/85, C80/95, C90/105
Concrete Class Code - this will determine the values used for Young's Modulus and Stress/Strain data of the concrete.
steel_gradestringAS: R250N, D500N, D500L

• ACI 318: Grade 40, Grade 50, Grade 60, Grade 75

EN: Class A, Class B, Class C
Steel Grade - this will determine the values used for Young's Modulus and Stress/Strain data of the steel reinforcement.
reinforcement[object]An array of objectsAn array of objects where each object contains the properties z, y and diam for reinforcement position and diameters.
loads[object]An array of objectsAn array of objects where each object contains design loads.
return_stress_resultsbooleantrue, falseSet this to true for detailed results of the mesh and material stresses/strains.false

Sample input for the S3D.SB.runGSD function#

{
"function": "S3D.SB.runGSD",
"arguments": {
"design_code": "AS 3600",
"concrete_class": "C50",
"steel_grade": "R250N",
"return_stress_results": false,
"reinforcement": [
{ "z": -500, "y": 500, "diam": 16 },
{ "z": 0, "y": 500, "diam": 16 },
{ "z": 500, "y": 500, "diam": 16 }
],
"loads": [
{ "N": 120, "Mz": 20, "My": 25 },
{ "N": 150, "Mz": -20, "My": -25 }
]
}
}
Try S3D.SB.runGSD

Sample response for the S3D.SB.runGSD function#

{
"msg": "General Section Designer run successfully",
"data": [
{
"result": "PASS",
"limRatioForce": 0.4335716625759198,
"limForce": {
"Nz": 276770.85556528415,
"Mx": 46128475.92754736,
"My": 57660594.90943419
}
},
{
"result": "PASS",
"limRatioForce": 0.43381624422203574,
"limForce": {
"Nz": 345768.51834812126,
"Mx": -46102469.11308283,
"My": -57628086.39135354
}
}
],
"status": 0
}

The following image is an example of a complex section that may be analyzed using GSD.