# OpenStaad Python > Open-source (MIT), unofficial Python library to automate Bentley STAAD.Pro through the > OpenSTAAD COM API. Install with `pip install openstaad`. Runs on Windows only, with > STAAD.Pro installed and a .STD model open. This file indexes the documentation at https://www.openstaad.com. Every link points to the plain-markdown version of a page. The whole reference is also available as one file: https://www.openstaad.com/llms-full.txt (730 functions). ## Rules for writing openstaad code - Use the session API: `from openstaad import ops` then `s = ops.connect()` (the active STAAD.Pro instance) or `s = ops.connect(path)` (a .STD already open, by path). Every function below is a method on `s`, e.g. `s.GetBeamList()`. - Do NOT use the legacy classes `Root()`, `Geometry()`, `Load()`, `Output()`, `Properties()`, `View()`, `Design()`, `Command()` or `Support()`: they are deprecated in 0.0.x and removed in 0.1.0. See the migration guide if you meet them in existing code. - Two unit systems apply. Every value that comes back arrives in the model's base unit, which the script cannot choose and which is an STAAD.Pro application setting, not a file property. Call `s.GetBaseUnit()` first. `"Metric"` means meters and kilonewtons (not mm); `"English"` means inches and kips (not feet, not pounds). Convert explicitly before comparing or reporting. - Every value the script sends is read in the model's input units (`GetInputUnitForLength()` / `GetInputUnitForForce()`, set with `SetInputUnits()`), which are independent of the base unit. Read them before writing and align them with the base unit. - Function names mirror the OpenSTAAD API names (e.g. `GetMemberIncidence`, `AddNodalLoad`), so OpenSTAAD knowledge transfers directly; check the reference below for the Python signature and return type. - Results (forces, displacements, reactions) are only available after the model has been analyzed. ## Guides - [What is OpenStaad Python?](https://www.openstaad.com/guides/what_is_openstaad.md): What the openstaad library is, what it automates in STAAD.Pro, and the shape of a first script. - [Start from Scratch](https://www.openstaad.com/guides/start_from_scratch.md): Install STAAD.Pro, Python and openstaad, then write and run your first script end to end. - [Unit Systems: One to Get, One to Set](https://www.openstaad.com/guides/unit_systems.md): OpenStaad has two unit systems: base units govern every value it returns, input units govern every value you send. What each one is, who controls it, and what it means for your scripts. - [Base Units](https://www.openstaad.com/guides/base_units.md): Base units decide the unit of every value OpenStaad returns: meters and kN, or inches and kips. They are an STAAD.Pro application setting, not a file property, and every derived quantity follows them. - [Input Units](https://www.openstaad.com/guides/input_units.md): Input units decide how OpenStaad interprets every value you send: the model's UNIT command. How to read them, set them, the integer unit codes, and why a silent change corrupts later writes. ## API reference - [Node](https://www.openstaad.com/docs/node.md): 36 functions. The most fundamental modeling primitive — beams, plates, and solids all connect to nodes and are defined from them. Node-related loads and definitions live in their own domains (Load, Group). - [Member: Geometry](https://www.openstaad.com/docs/member/geometry.md): 35 functions. The members themselves — add, delete, renumber, and query incidences between two nodes. Loads on members live in Load › Member Loads; section and material in Section & Material. - [Member: Section & Material](https://www.openstaad.com/docs/member/section-material.md): 20 functions. Links each member to a cross-section (from Section/Property) and a material (from Material), plus its beta angle — what the member is made of, not its shape in space. - [Member: Specifications](https://www.openstaad.com/docs/member/specifications.md): 29 functions. Member behavior modifiers — end releases, offsets, and truss / tension-only / compression-only / cable specs. Changes how a member acts, not its geometry. - [Member: Fireproofing](https://www.openstaad.com/docs/member/fireproofing.md): 9 functions. Fireproofing material and thickness on members — adds to self-weight for fire-rated assemblies; doesn’t change analytical stiffness. - [Member: Custom Attributes](https://www.openstaad.com/docs/member/custom-attributes.md): 9 functions. User-defined attributes and metadata attached to members for tagging and downstream workflows. - [Member: Results](https://www.openstaad.com/docs/member/results.md): 12 functions. Per-member results after analysis — end forces, moments, displacements, and section stresses. Read-only. - [Member: View/Annotation](https://www.openstaad.com/docs/member/view-annotation.md): 7 functions. Member labels, highlighting, and annotation in the viewport. Visual only. - [Plate: Geometry](https://www.openstaad.com/docs/plate/geometry.md): 30 functions. The plate/shell elements — add, delete, and query three- and four-node plate incidences. Thickness comes from Thickness & Specifications; pressures live in Plate › Loads. - [Plate: Thickness & Specifications](https://www.openstaad.com/docs/plate/thickness-specifications.md): 16 functions. Plate thickness, material, and behavior specs (plane-stress, in-plane/bending releases) for shell elements. - [Plate: Loads](https://www.openstaad.com/docs/plate/loads.md): 9 functions. Pressure and hydrostatic loads on plates — this is where loads on Plate elements are defined. - [Plate: Custom Attributes](https://www.openstaad.com/docs/plate/custom-attributes.md): 5 functions. User-defined attributes and metadata attached to plate elements. - [Plate: Results](https://www.openstaad.com/docs/plate/results.md): 11 functions. Per-plate results after analysis — center and corner stresses, moments, and shears. Read-only. - [Solid (3D)](https://www.openstaad.com/docs/solid-3d.md): 27 functions. Eight-node solid (brick) elements — geometry, material, and stress results. Loads on solids are applied through the Load domain. - [Parametric Surface](https://www.openstaad.com/docs/parametric-surface.md): 20 functions. Parametric surfaces used to generate plate meshes — define, mesh, and query the surface, its regions, and density points. - [Physical Member](https://www.openstaad.com/docs/physical-member.md): 14 functions. Groups several analytical beams into one physical member, so a continuous column split by intermediate nodes is designed as a single unit. - [Material](https://www.openstaad.com/docs/material.md): 20 functions. Material definitions (isotropic, 2D/3D orthotropic) — modulus, density, Poisson, thermal. Assigned to members, plates, and solids. - [Section/Property: Standard Table Sections](https://www.openstaad.com/docs/section-property/standard-table-sections.md): 27 functions. Cross-sections from built-in country steel tables (AISC and others). Applied to members in Member › Section & Material. - [Section/Property: UPT Profiles](https://www.openstaad.com/docs/section-property/upt-profiles.md): 19 functions. User-Provided Table sections — custom cross-sections defined in an external table and referenced by members. - [Section/Property: Prismatic/General Properties](https://www.openstaad.com/docs/section-property/prismatic-general-properties.md): 8 functions. Prismatic/general sections defined by raw properties (area, Iy, Iz, J…) rather than a catalog shape. - [Section/Property: Query & Attributes](https://www.openstaad.com/docs/section-property/query-attributes.md): 22 functions. Query section properties — area, moments of inertia, dimensions — for any assigned or table section. - [Load: Load Cases](https://www.openstaad.com/docs/load/load-cases.md): 39 functions. Primary load cases — the containers every applied load belongs to. Create and query cases before adding nodal, member, or area loads. - [Load: Nodal Loads & Definitions](https://www.openstaad.com/docs/load/nodal-loads-definitions.md): 11 functions. Loads and enforced displacements applied at nodes — joint loads/moments and support settlements. This is where loads on nodes are defined. - [Load: Member Loads](https://www.openstaad.com/docs/load/member-loads.md): 22 functions. Loads on members — uniform, concentrated, trapezoidal, and temperature. This is where loads on Member elements are defined. - [Load: Environmental/Physical Loads](https://www.openstaad.com/docs/load/environmental-physical-loads.md): 17 functions. Seismic, wind, snow, and other definition-based loads, plus self-weight and floor/area loads. - [Load: Load Lists](https://www.openstaad.com/docs/load/load-lists.md): 7 functions. The active load list — which cases and combinations are active for the next command or query. - [Load: Combinations & Envelopes](https://www.openstaad.com/docs/load/combinations-envelopes.md): 24 functions. Factored combinations (e.g. 1.2D + 1.6L) and min/max envelopes of primary cases, used for design. - [Support](https://www.openstaad.com/docs/support.md): 41 functions. Restraints at nodes — fixed, pinned, roller, inclined, elastic, and mat supports — plus reading support reactions after analysis. - [Group](https://www.openstaad.com/docs/group.md): 10 functions. Named collections of nodes, beams, plates, or solids for batch selection and assignment — an organizing tool, not a structural element. - [Analysis (Command)](https://www.openstaad.com/docs/analysis-command.md): 25 functions. Runs the solver — static, P-Delta, buckling, direct, and cable — and reports analysis status. Results are read via Global Results and each element’s Results section. - [Global Results](https://www.openstaad.com/docs/global-results.md): 13 functions. Model-wide results after analysis — frequencies, mass participation, base shear, and buckling factors. Per-element forces live in the Results sections. - [Design (Steel)](https://www.openstaad.com/docs/design-steel.md): 18 functions. Steel code checks and design — assign design commands, groups, and parameters, then read design/check ratios. Runs after analysis. - [View](https://www.openstaad.com/docs/view.md): 47 functions. Drives the STAAD.Pro viewport — views, zoom/pan/rotate, visibility, selection, and annotation. Visual only; it never changes the model. - [Table/Report](https://www.openstaad.com/docs/table-report.md): 28 functions. STAAD.Pro report tables and sheets — create reports and read/write individual cells. Reporting output, not modeling. - [Session/File (Root)](https://www.openstaad.com/docs/session-file-root.md): 43 functions. The STAAD.Pro session and file — open/close .STD files, set active units, read job info, and trigger analysis from the top-level object. ## Optional - [Migration Guide](https://www.openstaad.com/guides/migration_guide.md): How to migrate from the legacy openstaad API (pre-0.1) to the new ops session API (0.1). - [Full documentation in one file](https://www.openstaad.com/llms-full.txt) - [Source code](https://github.com/OpenStaad/OpenStaadPython) - [PyPI package](https://pypi.org/project/openstaad/)