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[[number]]An array of number arraysArray of points.
For "type": "points", this is in format [x, y, radius]

For "type": "line", this is in the format [x, y]
filletnumbera positive numberThe fillet radius in mm
thicknessnumbera positive numberThe section thickness in mm
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": "line",
"points": [
[0, 0],
[100, 0],
[100, 100],
[200, 100],
[200, 0],
[300, 0],
],
"fillet": 8,
"thickness": 10,
}
}
// Composite shapes
[
{
"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.importDXF#

Build a Section via DXF data. Simply pass in the DXF in text format to build the Section. We strongly recommend importing your DXF via the Section Builder UI to test your DXF files first. Use these inputs as the basis of your options.

KeyTypeDescription
datastringDXF data in string format
optsobjectOptions to import DXF
• cutout_shapes - if any of the polygons generated are cutouts, they will need to be defined by adding them to this array;
• merge_tol - Merge points within this distance.;
• clear_previous - Clear previous shapes with this DXF section;
• translate_to_origin - Translate to Origin;
• plane - Plane that DXF importer will use as reference.
{
"function": "S3D.SB.importDXF",
"arguments": {
"data": "---DXF DATA---",
"opts": {
"cutout_shapes": [1],
"merge_tol": 0.01,
"radius_tol": 0.5,
"clear_previous": false,
"translate_to_origin": true,
"plane": "XY"
}
},
},


S3D.SB.save#

Save and load user-defined custom sections to cloud storage. After building your Section using one of the SB functions, you can save it to your My Sections storage for use in future projects.

KeyTypeDescription
NamestringUser-defined section name
{
'function': "S3D.SB.save",
'arguments': {
"name": "New Section"
}
},


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.

KeyTypeDescription
manual_Jstring(Optional) If J cannot be solved, user should provide a J value to use for analysis.
info

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

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


S3D.SB.submit#

Submit section to your S3D structural model

KeyTypeDescription
section_idintegerSection ID for this section to be submitted to your structural model
manual_Jstring(Optional) If J cannot be solved, user should provide a J value to use for analysis.
info

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

{
"function": "S3D.SB.submit",
"arguments": {
"section_id": 4
}
}


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_classstring• AS: 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_gradestring• AS: 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.