Changing Material
ClearCalcs offers users the ability to change from one material to another. Public documentation available here.Supported Widget Types
| Widget Type | Supported? | Comments |
|---|---|---|
| input | Yes | |
| table | Yes | Same table shape |
| lookup | No |
FAQ: Can you change between ASD & LRFD standards?
Answer: Yes, however, lookups are not supported so the member selector will not be transferred.
Values are plainly copy-pasted from referenceId to matching referenceId with no consideration for widget units. If one widget asks for spacing in feet and the new material asks for spacing in inches, the new spacing will be off by a factor of 12.
Load Combinations
Philosophy
The way load combinations are implemented follows these principles:- The set of load combinations used is the same for an entire project
- Load combinations can be set by users ONLY in Project Defaults, not overridden in individual sheets
- We provide common sets of load combinations with user selection, plus custom options
- All factoring of loads per load combinations happens in the solver
- Load factors are split between project and template levels:
- How to apply factors is defined on the project level
- What values to apply is defined on the template level
Implementation Structure
Working from project level downwards:Project Defaults
1
Hard-coding Load Types
loadTypesBase2: Currently hard-coded in Project DefaultscombConc2: Load types that should always be combined (e.g., distributed and concentrated live loads in AU/NZ)
2
Setting Load Combinations and Factors
LCs_str_type: Sets both the load combinations and how to apply factors
LCs_str2: Load combinations passed to solver in every sheetLCFact_str2: Mappings for applying load combination factors
3
Default Factor Values
LCFact_type: Set of load combination factors (e.g., ψ factors in Eurocode)
- Creates
LCFact_*databases available to templates
4
Default Selections
Default category of imposed load - can be overridden in individual sheets
Template Level
Templates pass through or modify values from Project Defaults:- Passed unchanged:
loadTypesBase2,combConc2,LCs_str2,LCFact_str2 - Potentially modified:
LCFact_DB- factor values can be overridden
Load Combination Factors Structure
Factor Values: LCFact_DB
The first item (index 0) is always ignored and set to 0. Think of index = 0 as meaning ‘don’t apply the factor’.
Application Instructions: LCFact_str
Array of length equal to number of load combinations:Data Linking Between Templates
Basic Load Linking
Load linking allows importing data from another calculation, commonly used for transferring beam reactions to column calculations.Creating an Export
- Create a equation widget with table format (
[[]]) - Check the “Export” box
- Set a unique
referenceId
Creating an Import
Create a table widget with matching columns and linkRow configuration:Advanced Linking
Advanced Linking Resources
Advanced Linking Resources
Video tutorial on backend implementation and design patternsKey considerations:
- Backend processing
- Designing new link types (not necessarily loads)
- Common pitfalls and solutions
Print/Export Rules
Current Export Modes
- Detail
- Standard
- Summary
- Format: Single column with references for equation widgets
- Widgets printed: All widgets
- Order: JSON file order
Widget References & Standards API
Structured References Format
NewreferencesJSON field for direct linking to standards:
URL Structure for Standards API
Pattern:/Authority/Standard/type/Type-reference/sub-type/Sub-type-reference
Examples:
section/5-6-3- Clause 5.6.3table/5-6-3A- Table 5.6.3(A)equation/9-2-2-4- Equation reference
Markdown Support
Supported elements in widget descriptions:| Element | Markdown Syntax |
|---|---|
| Bold | **bold text** |
| Italic | *italicized text* |
| Code | `code` |
| Link | [title](https://example.com) |
| Code Block | Triple backticks |
Units System
Unit Types
- units2: Default units (forces in kips for US)
- unitsMks: Metric units (kN, mm, MPa, kPa)
- unitsFps: Imperial units (forces in lb)
Non-Unit-Aware Features
The following features are NOT unit-aware and require extreme caution:
- All diagram code - Must handle different unit conditions
- Solver inputs/outputs - Units must be set manually
- Upgrade mappings - No automatic unit conversion
- Dynamic lookups - Units stripped from input tables
- Change material - No unit consideration
- Specific MathJS functions - Some functions incompatible with units