- The Settings: A toggle for Live Load Reduction rules.
- The Input: A table where you (or the user) define the loads.
- The Solver: A โblack boxโ engine that processes the physics and load factors.
- The Output: A table that summarizes the results per load combination (e.g.,
1.2D + 1.6L).
Download the Complete Templates
If you prefer to skip the manual setup, you can download the complete file to import into your calculator. We provide templates for both Load and Resistance Factor Design (LRFD) and Allowable Stress Design (ASD).Download LRFD Template
LRFD: Click here to get the complete factored load template.
Download ASD Template
ASD: Click here to get the complete allowable stress template.
The explanations below apply to LRFD since that is the code demonstrated in the steps. For ASD, the difference lies only in the mathematical factors used in the โSolverโ and โOutputโ steps. For that, you can use the ASD template.
Step 1: Live Load Reduction Setting
Before defining specific loads, we need a global setting to handle Live Load Reduction (LLR). Why do we need this? ASCE 7 allows a reduction (typically 0.5) for live loads when they act as a โcompanionโ load (not the primary load) in a combination. However, this is conditional, it applies to loads under 100 psf that are not in garages or places of public assembly. By adding this widget, you allow the user to toggle this code provision on or off, ensuring the solver applies the correct factor ( vs ) during calculation.1
Open the JSON Editor
Open your calculatorโs JSON editor.
2
Paste the LLR Code
Copy the
llr_widget.json code block and paste it into your calculator.llr_widget.json
Step 2: The Input Table
Next, you need a place to input your loads. We will create a table called โPoint & Moment Loadsโ that allows for vertical loads () and moment loads (). What is happening in this table? The code for this table defines the structure of your input:- Label: A text field to name the load (e.g., โColumn Aโ).
- Location: A coordinate defining where the load applies.
- Load Magnitudes: This is an object that groups the Type (Dead, Live, Snow, etc.), the Vertical Force (), and the Moment () together.
- Link Row: This is the most powerful feature. It allows users to โchainโ reactions from other calculators. When a user clicks the link icon, the table automatically imports the reactions from a beam or column calculation elsewhere in the project.
1
Locate Insertion Point
Find the end of the LLR widget you just pasted.
2
Paste the Input Table Code
Copy the
input_table.json code block and paste it immediately after the LLR widget.input_table.json
Step 3: The Solver (The Engine)
Next, you need a program that manages those loads. We call this the Solver. You donโt need to write the complex math code for this, but it is important to understand the logic the solver uses. How the Solver Works:- Separation of Types: The solver separates every load by type (D, L, S, W, etc.). It calculates the forces for only dead loads, then only live loads, etc. It does not combine them yet.
- The โVirtual Beamโ Logic: Even though we are just calculating factored loads, we use a โVirtual Beamโ in the background. We set this beam to be 20 ft long with fixed supports.
- Why use a Beam? This creates a stable mathematical environment for the solver to run without errors. Crucially, by using โBeam Logicโ instead of โColumn Logic,โ the solver respects the direct Moment inputs you entered in the table. If we used simple column logic, it might ignore the moments or look only for eccentricity.
1
Scroll to the End
Scroll to the bottom of your
included array.2
Paste the Solver Code
Copy the
solver_logic.json code block and paste it at the end of the array.solver_logic.json
Step 4: The Analysis (The Output)
Finally, we need to display the results. The Solver calculated the physics for each individual load type; now we need a table that combines them. How this Table works: This table takes the raw data from the solver and applies the specific ASCE 7 load factors.- For LRFD: It will generate rows for combinations like or .
- For ASD: It will generate rows for combinations like or .
1
Locate Insertion Point
Find the spot immediately after your Input Table.
2
Paste the Output Table Code
Copy the
output_table.json code block and paste it there.output_table.json