Skip to content

Project file

A Bim-Struc project is one JSON file (*.bimstruc), schema 1. Entities carry stable integer ids; the solver model is index-based and built from it at run time. Unknown keys are preserved.

{"pframe": {"schema": 1, "app": "Bim-Struc"},
 "settings": {"solver": "skyline", "consistent_mass": true, "physical_members": true},
 "materials": [{"id": 1, "name": "Steel A992", "E": 2e11, "G": 7.7e10, "nu": 0.3, "rho": 7850, "alpha": 1.2e-5}],
 "sections":  [{"id": 1, "name": "W12X26", "shape": "W12X26", "A": ..., "Iyy": ..., "Izz": ..., "J": ..., "Asy": ..., "Asz": ...}],
 "nodes":     [{"id": 1, "x": 0, "y": 0, "z": 0, "mass": [6 numbers]}],
 "supports":  [{"node": 1, "restrained": [6 bools], "prescribed": [6], "spring": [6], "frame": [3]}],
 "members":   [{"id": 1, "n1": 1, "n2": 2, "section": 1, "material": 1, "type": "column", "beta": 0,
                "releases_i": [6 bools], "releases_j": [6 bools], "offset_i": [3], "offset_j": [3]}],
 "load_cases": [{"name": "D", "type": "dead", "self_weight": 1.0}],
 "loads": {"nodal": [...], "member_dist": [...], "member_point": [...], "settlements": [...]},
 "combinations": [{"name": "1.2D+1.6L", "factors": {"D": 1.2, "L": 1.6}, "kind": "linear"}],
 "constraints": [...], "links": [...], "layers": [...], "design_groups": [...],
 "grids": {"systems": [...], "levels": [{"name": "Base", "z": 0}]}}

Physical members are ordinary members with joints lying along them; settings.physical_members makes the solver subdivide them before a run. Grids: see the grids block described in python/pframe/gui/grids.py.