Wall#

Important

Wall represents an open RSWall project session, not a single wall definition. Named walls inside the project come from listWalls() / getWallDetails().

The class is the project facade: materials, section profiles, MSE/gabion libraries, loads, geometry, soil and topography, leveling pad, reinforcement layout, analysis, and the wall wizard. Compute and factor-of-safety results live on this same object (there is no separate interpreter package).

Method groups (by source order in the class):

  • Session / units / project summary — save, close, getProjectUnits, …

  • Materials — getAllMaterials, createMaterial, …

  • Gravity / cantilever / abutment section profiles

  • MSE and gabion wall units and section profiles

  • Reinforcement library

  • Wall geometry and segments — listWalls, createSingleSegmentWall, …

  • Base strength

  • Loads — createLineLoad, createUniformLoad, createPointLoad, …

  • Soil, topography, groundwater

  • Leveling pad

  • Reinforcement layout — setReinforcementLayout, …

  • Analysis — computeSegment, computeWall, computeAll, FoS helpers

  • Wall wizard — generateMultiSegmentWall, getAvailableWallWizardUnits

Layer placement strings for reinforcement layout are "BY_COURSE", "BY_ELEVATION", and "BY_HEIGHT_FROM_BOTTOM" (see setReinforcementLayout()).

Topography payloads can be built with helpers in rswall.SoilTopography (see SoilTopography).

class rswall.Wall.Wall#

Bases: _ProxyObject

Open RSWall project session (not a single wall definition).

Obtained from rswall.RSWallModeler.RSWallModeler.openFile() or rswall.RSWallModeler.RSWallModeler.attachActiveProject(). Named walls inside the project are strings from listWalls().

Provides materials, concrete/MSE/gabion libraries, loads, wall geometry, soil and topography, leveling pad, reinforcement layout, analysis (compute and factors of safety), and the multi-segment wall wizard.

Numeric values use the project’s native unit system; call getProjectUnits() after opening.

__init__(client, projectId)#

Initialize the project session proxy.

Parameters:
  • client (Client) – gRPC client connected to RSWall

  • projectId (str) – Server-side project reference ID

save()#

Save the project to disk.

Return type:

None

close(saveProject=False)#

Close the project document window(s) and release this scripting session.

Matches File → Close Window. Optionally saves first. After close, this Wall proxy must not be used. An attachActiveProject session closes the project open in the RSWall UI; if it was the last document, RSWall opens a blank new project.

Parameters:

saveProject (bool) – If True, save before closing

Raises:

RuntimeError – If the close RPC reports failure (same channel as save)

Return type:

None

getProjectUnits()#

Return project unit metadata for all scripting wire values.

Numeric getters and setters on this project use these native units. No client-side conversion is applied.

Return type:

Dict[str, Any]

Returns:

dict with unitSystem, isImperial, unitGroupLabel, lengthUnit, verySmallLengthUnit, unitWeightUnit, stressUnit, forceUnit, linearForceUnit, and conversionNote.

getProjectSummary()#

Read Project Summary metadata (title, author, company, date, comments).

This mirrors the Project Summary dialog fields, not Report Generator output.

Return type:

Dict[str, Any]

setProjectSummary(project_title=None, analysis=None, author=None, company=None, date_created=None, comment1=None, comment2=None, comment3=None, comment4=None, comment5=None)#

Write Project Summary metadata fields.

Omitted arguments keep their current values. Pass an empty string to clear a field. The underlying RPC is still a full replace; this method merges with getProjectSummary before writing.

Return type:

None

Parameters:
  • project_title (str | None)

  • analysis (str | None)

  • author (str | None)

  • company (str | None)

  • date_created (str | None)

  • comment1 (str | None)

  • comment2 (str | None)

  • comment3 (str | None)

  • comment4 (str | None)

  • comment5 (str | None)

getAllMaterials()#

Get all soil materials in the project.

Ids are stable across repeated list/getByName calls. After delete, the old proxy is rejected by the server (RFC ObjectReferences cannot remove entries; liveness is library membership).

Return type:

List[Material]

Returns:

List of Material objects

getMaterialByName(materialName)#

Get a specific soil material by name.

Parameters:

materialName (str) – Name of the material (case-sensitive)

Return type:

Material

Returns:

Material object

Raises:

ValueError – If material not found

createMaterial(name='')#

Create a new soil material in this project.

Parameters:

name (str) – Display name for the new material. Auto-generated if empty.

Return type:

Material

Returns:

Material proxy for the created soil.

deleteMaterial(material)#

Delete a soil material from the project.

Parameters:

material (Union[Material, str]) – Material proxy or display name (e.g. "Soil 2").

Return type:

None

copyMaterial(material, name='')#

Copy an existing soil material to a new library entry.

Parameters:
  • material (Union[Material, str]) – Source material proxy or display name (e.g. "Soil 2").

  • name (str) – Name for the copy. Auto-generated if empty.

Return type:

Material

Returns:

Material proxy for the copied soil.

getAllGravityWallProfiles()#

Get all gravity wall section profiles in the project.

Return type:

List[GravityWallProfile]

Returns:

List of GravityWallProfile objects

getGravityWallProfileByName(profileName)#

Get a specific gravity wall section profile by name.

Parameters:

profileName (str) – Name of the profile (case-sensitive)

Return type:

GravityWallProfile

Returns:

GravityWallProfile object

Raises:

ValueError – If profile not found

createGravityWallProfile(name='')#

Create a new gravity wall section profile in this project.

Parameters:

name (str) – Display name for the new profile. Auto-generated if empty.

Return type:

GravityWallProfile

Returns:

GravityWallProfile proxy for the created profile.

deleteGravityWallProfile(profile)#

Delete a gravity wall section profile from the project.

Parameters:

profile (Union[GravityWallProfile, str]) – Profile proxy or display name.

Return type:

None

copyGravityWallProfile(profile, name='')#

Copy an existing gravity wall section profile to a new library entry.

Parameters:
  • profile (Union[GravityWallProfile, str]) – Source profile proxy or display name.

  • name (str) – Name for the copy. Auto-generated if empty.

Return type:

GravityWallProfile

Returns:

GravityWallProfile proxy for the copied profile.

getAllCantileverWallProfiles()#

Get all cantilever wall section profiles in the project.

Return type:

List[CantileverWallProfile]

Returns:

List of CantileverWallProfile objects

getCantileverWallProfileByName(profileName)#

Get a specific cantilever wall section profile by name.

Parameters:

profileName (str) – Name of the profile (case-sensitive)

Return type:

CantileverWallProfile

Returns:

CantileverWallProfile object

Raises:

ValueError – If profile not found

createCantileverWallProfile(name='')#

Create a new cantilever wall section profile in this project.

Parameters:

name (str) – Display name for the new profile. Auto-generated if empty.

Return type:

CantileverWallProfile

Returns:

CantileverWallProfile proxy for the created profile.

deleteCantileverWallProfile(profile)#

Delete a cantilever wall section profile from the project.

Parameters:

profile (Union[CantileverWallProfile, str]) – Profile proxy or display name.

Return type:

None

copyCantileverWallProfile(profile, name='')#

Copy an existing cantilever wall section profile to a new library entry.

Parameters:
  • profile (Union[CantileverWallProfile, str]) – Source profile proxy or display name.

  • name (str) – Name for the copy. Auto-generated if empty.

Return type:

CantileverWallProfile

Returns:

CantileverWallProfile proxy for the copied profile.

getAllAbutmentWallProfiles()#

Get all abutment wall section profiles in the project.

Return type:

List[AbutmentWallProfile]

Returns:

List of AbutmentWallProfile objects

getAbutmentWallProfileByName(profileName)#

Get a specific abutment wall section profile by name.

Parameters:

profileName (str) – Name of the profile (case-sensitive)

Return type:

AbutmentWallProfile

Returns:

AbutmentWallProfile object

Raises:

ValueError – If profile not found

createAbutmentWallProfile(name='')#

Create a new abutment wall section profile in this project.

Parameters:

name (str) – Display name for the new profile. Auto-generated if empty.

Return type:

AbutmentWallProfile

Returns:

AbutmentWallProfile proxy for the created profile.

deleteAbutmentWallProfile(profile)#

Delete an abutment wall section profile from the project.

Parameters:

profile (Union[AbutmentWallProfile, str]) – Profile proxy or display name.

Return type:

None

copyAbutmentWallProfile(profile, name='')#

Copy an existing abutment wall section profile to a new library entry.

Parameters:
  • profile (Union[AbutmentWallProfile, str]) – Source profile proxy or display name.

  • name (str) – Name for the copy. Auto-generated if empty.

Return type:

AbutmentWallProfile

Returns:

AbutmentWallProfile proxy for the copied profile.

getManufacturerLibraryOptions()#

Return the built-in MSE wall unit manufacturer library catalog.

Entries come from the shipped CSV (same built-in profiles shown in Define Wall Units → Load Manufacturer). User-defined manufacturer files available in that dialog are not included. Each entry can be passed to MSEWallUnit.applyManufacturerPreset(guid) to populate a wall unit’s engineering properties from catalog data.

Returns:

guid - stable identifier (use with applyManufacturerPreset) manufacturer - e.g. “RediRock”, “MagnumStone”, “Verti-Crete” set - e.g. “Blocks”, “Standard”, “Verti-Block” type - full catalog label, e.g. “28 in (710 mm) solid - R28T”

Return type:

List of dicts, one per available profile. Keys

getGabionManufacturerLibraryOptions()#

Return the built-in gabion wall unit manufacturer library catalog.

Same shape as getManufacturerLibraryOptions(); use with GabionWallUnit.applyManufacturerPreset(guid). User-defined libraries are not included.

Return type:

List[Dict[str, str]]

getAllMseWallUnits()#

Get all MSE wall units in the project.

Return type:

List[MSEWallUnit]

Returns:

List of MSEWallUnit objects

getMseWallUnitByName(unitName)#

Get a specific MSE wall unit by name.

Parameters:

unitName (str) – Name of the wall unit (case-sensitive)

Return type:

MSEWallUnit

Returns:

MSEWallUnit object

Raises:

ValueError – If unit not found

createMseWallUnit(name='')#

Create a new MSE wall unit in this project.

Parameters:

name (str) – Display name for the new unit. Auto-generated if empty.

Return type:

MSEWallUnit

Returns:

MSEWallUnit proxy for the created unit.

deleteMseWallUnit(unit)#

Delete an MSE wall unit from the project.

Parameters:

unit (Union[MSEWallUnit, str]) – Wall unit proxy or display name.

Return type:

None

copyMseWallUnit(unit, name='')#

Copy an existing MSE wall unit to a new library entry.

Parameters:
  • unit (Union[MSEWallUnit, str]) – Source unit proxy or display name.

  • name (str) – Name for the copy. Auto-generated if empty.

Return type:

MSEWallUnit

Returns:

MSEWallUnit proxy for the copied unit.

getAllGabionWallUnits()#

Get all gabion wall units in the project.

Return type:

List[GabionWallUnit]

Returns:

List of GabionWallUnit objects

getGabionWallUnitByName(unitName)#

Get a specific gabion wall unit by name.

Parameters:

unitName (str) – Name of the wall unit (case-sensitive)

Return type:

GabionWallUnit

Returns:

GabionWallUnit object

Raises:

ValueError – If unit not found

createGabionWallUnit(name='')#

Create a new gabion wall unit in this project.

Parameters:

name (str) – Display name for the new unit. Auto-generated if empty.

Return type:

GabionWallUnit

Returns:

GabionWallUnit proxy for the created unit.

deleteGabionWallUnit(unit)#

Delete a gabion wall unit from the project.

Parameters:

unit (Union[GabionWallUnit, str]) – Wall unit proxy or display name.

Return type:

None

copyGabionWallUnit(unit, name='')#

Copy an existing gabion wall unit to a new library entry.

Parameters:
  • unit (Union[GabionWallUnit, str]) – Source unit proxy or display name.

  • name (str) – Name for the copy. Auto-generated if empty.

Return type:

GabionWallUnit

Returns:

GabionWallUnit proxy for the copied unit.

getAllGabionSectionProfiles()#

Get all gabion section profiles in the project.

Return type:

List[GabionSectionProfile]

Returns:

List of GabionSectionProfile objects

getGabionSectionProfileByName(profileName)#

Get a specific gabion section profile by name.

Parameters:

profileName (str) – Name of the profile (case-sensitive)

Return type:

GabionSectionProfile

Returns:

GabionSectionProfile object

Raises:

ValueError – If profile not found

createGabionSectionProfile(name='')#

Create a new gabion section profile in this project.

Parameters:

name (str) – Display name for the new profile. Auto-generated if empty.

Return type:

GabionSectionProfile

Returns:

GabionSectionProfile proxy for the created profile.

deleteGabionSectionProfile(profile)#

Delete a gabion section profile from the project.

Parameters:

profile (Union[GabionSectionProfile, str]) – Profile proxy or display name.

Return type:

None

copyGabionSectionProfile(profile, name='')#

Copy an existing gabion section profile to a new library entry.

Parameters:
  • profile (Union[GabionSectionProfile, str]) – Source profile proxy or display name.

  • name (str) – Name for the copy. Auto-generated if empty.

Return type:

GabionSectionProfile

Returns:

GabionSectionProfile proxy for the copied profile.

getAllMseSectionProfiles()#

Get all MSE section profiles in the project.

Return type:

List[MSESectionProfile]

Returns:

List of MSESectionProfile objects

getMseSectionProfileByName(profileName)#

Get a specific MSE section profile by name.

Parameters:

profileName (str) – Name of the profile (case-sensitive)

Return type:

MSESectionProfile

Returns:

MSESectionProfile object

Raises:

ValueError – If profile not found

createMseSectionProfile(name='')#

Create a new MSE section profile in this project.

Parameters:

name (str) – Display name for the new profile. Auto-generated if empty.

Return type:

MSESectionProfile

Returns:

MSESectionProfile proxy for the created profile.

deleteMseSectionProfile(profile)#

Delete an MSE section profile from the project.

Parameters:

profile (Union[MSESectionProfile, str]) – Profile proxy or display name.

Return type:

None

copyMseSectionProfile(profile, name='')#

Copy an existing MSE section profile to a new library entry.

Parameters:
  • profile (Union[MSESectionProfile, str]) – Source profile proxy or display name.

  • name (str) – Name for the copy. Auto-generated if empty.

Return type:

MSESectionProfile

Returns:

MSESectionProfile proxy for the copied profile.

getAllReinforcements()#

Get all reinforcement properties in the project.

Return type:

List[Reinforcement]

getReinforcementByName(reinforcementName)#

Get a reinforcement property by name.

Return type:

Reinforcement

Parameters:

reinforcementName (str)

createReinforcement(name='')#

Create a new reinforcement property in this project.

Return type:

Reinforcement

Parameters:

name (str)

deleteReinforcement(reinforcement)#

Delete a reinforcement property from the project.

Parameters:

reinforcement (Union[Reinforcement, str]) – Reinforcement proxy or display name.

Return type:

None

copyReinforcement(reinforcement, name='')#

Copy an existing reinforcement property to a new library entry.

Parameters:
  • reinforcement (Union[Reinforcement, str]) – Source reinforcement proxy or display name.

  • name (str) – Name for the copy. Auto-generated if empty.

Return type:

Reinforcement

Returns:

Reinforcement proxy for the copied property.

listWalls()#

List all walls in the project with segment counts.

Return type:

List[Dict[str, Any]]

getWallDetails(wall_name)#

Get a wall and all of its segment rows.

Return type:

Dict[str, Any]

Parameters:

wall_name (str)

createSingleSegmentWall(profile_name, wall_name='')#

Create a single-segment wall with the given section profile.

The profile must belong to the active wall-type library (gravity profile on gravity projects, MSE section profile on SRW projects, etc.).

Return type:

Dict[str, str]

Returns:

Dict with wallName and segmentName.

Parameters:
  • profile_name (str)

  • wall_name (str)

setWallName(wall_name, new_wall_name)#

Rename a wall.

Return type:

None

Parameters:
  • wall_name (str)

  • new_wall_name (str)

assignProfileToSegment(wall_name, segment_name, profile_name)#

Assign a section profile from the active wall-type library to a segment.

Return type:

None

Parameters:
  • wall_name (str)

  • segment_name (str)

  • profile_name (str)

deleteWall(wall_name)#

Delete a wall and all of its segments.

Return type:

None

Parameters:

wall_name (str)

addSegmentRow(wall_name, *, start_x=None, start_y=None, end_x=None, end_y=None, profile_name='', top_elevation=None)#

Add one segment row to a wall.

When geometry/profile fields are omitted, the next row is generated from the last segment using the multi-segment table rules.

Return type:

str

Returns:

Name of the created segment.

Parameters:
appendSegmentRows(wall_name, count)#

Append multiple auto-generated segment rows to a wall.

Return type:

List[str]

Parameters:
deleteSegmentRows(wall_name, segment_names)#

Delete one or more segment rows from a wall.

Return type:

None

Parameters:
setSegmentStartPoint(wall_name, segment_name, start_x, start_y)#

Set the plan-view start point of a segment.

Validation matches the Walls dialog and lives in RSWall: only the first segment’s start is editable; later segments copy start from the previous end point. RSWall rejects invalid edits via RPC; this client re-raises those errors (no extra client-side geometry checks).

Return type:

None

Parameters:
setSegmentEndPoint(wall_name, segment_name, end_x, end_y)#

Set the plan-view end point of a segment.

Return type:

None

Parameters:
setSegmentTopElevation(wall_name, segment_name, top_elevation)#

Set the top elevation (Z) of a segment.

Return type:

None

Parameters:
  • wall_name (str)

  • segment_name (str)

  • top_elevation (float)

getValidBaseStrengthOptions()#

Valid base-strength enum values for the current project design standard.

Return type:

Dict[str, Any]

Returns:

dict with soilContactTypes, groundwaterLocations, isAashto, isNcma.

getSegmentBaseStrength(wall_name, segment_name)#

Read base strength settings for a wall segment.

Return type:

Dict[str, Any]

Parameters:
  • wall_name (str)

  • segment_name (str)

setUseUserSpecifiedBearingCapacity(wall_name, segment_name, use_user_specified, apply_to_all_segments_in_wall=False)#

Set base strength mode to soil-based or user-specified.

Return type:

None

Parameters:
  • wall_name (str)

  • segment_name (str)

  • use_user_specified (bool)

  • apply_to_all_segments_in_wall (bool)

setUserSpecifiedBearingCapacity(wall_name, segment_name, bearing_capacity_kpa, apply_to_all_segments_in_wall=False)#

Set user-specified unfactored bearing capacity in project native stress units.

The parameter is named bearing_capacity_kpa for historical wire reasons; pass the value in the project’s native stress unit from getProjectUnits().

Return type:

None

Parameters:
  • wall_name (str)

  • segment_name (str)

  • bearing_capacity_kpa (float)

  • apply_to_all_segments_in_wall (bool)

setSoilContactType(wall_name, segment_name, soil_contact_type, apply_to_all_segments_in_wall=False)#

Set AASHTO soil contact type using a display name from getValidBaseStrengthOptions.

Option lists are design-standard dependent: soil contact types apply only when isAashto is true. Call getValidBaseStrengthOptions first and check the flags / returned names before calling this setter.

Return type:

None

Parameters:
  • wall_name (str)

  • segment_name (str)

  • soil_contact_type (str)

  • apply_to_all_segments_in_wall (bool)

setBaseGroundwaterLocation(wall_name, segment_name, groundwater_location, apply_to_all_segments_in_wall=False)#

Set NCMA base groundwater location using a display name from getValidBaseStrengthOptions.

Option lists are design-standard dependent: groundwater locations apply only when isNcma is true. Call getValidBaseStrengthOptions first and check the flags / returned names before calling this setter.

Return type:

None

Parameters:
  • wall_name (str)

  • segment_name (str)

  • groundwater_location (str)

  • apply_to_all_segments_in_wall (bool)

getLoads()#

Get scriptable loads in the project.

Returns LineLoad, UniformLoad, and PointLoad proxies.

Return type:

list

getLoadByName(loadName)#

Get a load by name.

Returns a LineLoad, UniformLoad, or PointLoad proxy depending on type.

Parameters:

loadName (str)

createLineLoad(name)#

Create a new line load in this project.

Parameters:

name (str) – Display name for the new load.

Return type:

LineLoad

Returns:

LineLoad proxy for the created load.

createUniformLoad(name)#

Create a new uniformly distributed load in this project.

Parameters:

name (str) – Display name for the new load.

Return type:

UniformLoad

Returns:

UniformLoad proxy for the created load.

createPointLoad(name)#

Create a new point load in this project.

Parameters:

name (str) – Display name for the new load.

Return type:

PointLoad

Returns:

PointLoad proxy for the created load.

deleteLoad(load)#

Delete a load from the project.

Parameters:

load – LineLoad / UniformLoad / PointLoad proxy, or load display name.

Return type:

None

getValidLoadDirections()#

Strings allowed for load direction in the current application context.

Return type:

List[str]

getValidLoadClassifications()#

Strings allowed for load classification in the current application context.

Return type:

List[str]

getValidSoilRegionNames(wall_name, segment_name)#

Region display names valid for soil assignment on this segment.

Return type:

List[str]

Parameters:
  • wall_name (str)

  • segment_name (str)

getSegmentSoilAssignments(wall_name, segment_name)#

Current soil assignments for a wall segment.

Return type:

dict

Returns:

dict with keys assignments (list of dicts with regionName, materialId, materialName) and toggleBackslopeSoil (bool).

Parameters:
  • wall_name (str)

  • segment_name (str)

assignSoilToRegion(wall_name, segment_name, region_name, material, apply_to_all_segments_in_wall=False)#

Assign a soil material to one region on a segment.

Parameters:
  • region_name (str) – Display name (e.g. Foundation Soil).

  • material (Union[Material, str]) – Material proxy or material display name (e.g. "Soil 2").

  • apply_to_all_segments_in_wall (bool) – Apply to every segment on the wall.

  • wall_name (str)

  • segment_name (str)

Return type:

None

assignSoilToAllRegions(wall_name, segment_name, material, apply_to_all_segments_in_wall=False)#

Assign the same soil material to every valid region on a segment.

Return type:

None

Parameters:
getToggleBackslopeSoil(wall_name, segment_name)#

Whether separate backslope soil is enabled (MSE walls).

Return type:

bool

Parameters:
  • wall_name (str)

  • segment_name (str)

setToggleBackslopeSoil(wall_name, segment_name, enabled, apply_to_all_segments_in_wall=False)#

Enable or disable separate backslope soil (MSE walls, non-NCMA).

Return type:

None

Parameters:
  • wall_name (str)

  • segment_name (str)

  • enabled (bool)

  • apply_to_all_segments_in_wall (bool)

getBackslopeTopography(wall_name, segment_name)#

Read backslope terrain settings for a wall segment.

Return type:

dict

Parameters:
  • wall_name (str)

  • segment_name (str)

setBackslopeTopography(wall_name, segment_name, topography, apply_to_all_segments_in_wall=False)#

Write backslope terrain settings for a wall segment.

Returns the resulting state (same shape as getBackslopeTopography), so callers can confirm the stored slope without a follow-up getter.

Return type:

dict

Parameters:
  • wall_name (str)

  • segment_name (str)

  • topography (dict)

  • apply_to_all_segments_in_wall (bool)

getFrontFaceTopography(wall_name, segment_name)#

Read front-face terrain settings for a wall segment.

Return type:

dict

Parameters:
  • wall_name (str)

  • segment_name (str)

setFrontFaceTopography(wall_name, segment_name, topography, embedment_depth_meters=None, consider_passive_resistance=None, apply_to_all_segments_in_wall=False)#

Write front-face terrain settings for a wall segment.

This is a full-replace setter, so embedment_depth_meters and consider_passive_resistance keep their current values when omitted rather than reverting to a default the caller never asked for.

Returns the resulting state (same shape as getFrontFaceTopography), including considerPassiveResistance, so callers need not issue a follow-up getter.

Return type:

dict

Parameters:
  • wall_name (str)

  • segment_name (str)

  • topography (dict)

  • embedment_depth_meters (float | None)

  • consider_passive_resistance (bool | None)

  • apply_to_all_segments_in_wall (bool)

getGroundwater(wall_name, segment_name)#

Read groundwater settings for a wall segment.

Returns dict with isGroundwaterEnabled, isFrontFaceWtDefined (True = differential profile), elevation fields in project native length units (do not convert as SI meters; *Meters keys are historical aliases), and doesWaterExtendIntoReinforcedZone (MSE). Alias keys without Meters (elevWtConstant, elevWtBack, elevWtFront) are included alongside the wire names.

Return type:

dict

Parameters:
  • wall_name (str)

  • segment_name (str)

setGroundwater(wall_name, segment_name, groundwater, apply_to_all_segments_in_wall=False)#

Write groundwater settings for a wall segment.

groundwater must contain isGroundwaterEnabled; any other field it omits keeps its current value rather than silently reverting to a default. Unknown keys are rejected so a misspelling cannot quietly disable groundwater.

Returns the resulting state (same shape as getGroundwater), so callers need not issue a follow-up getter.

Return type:

dict

Parameters:
  • wall_name (str)

  • segment_name (str)

  • groundwater (dict)

  • apply_to_all_segments_in_wall (bool)

getLevelingPadDetails(wall_name, segment_name)#

Read leveling pad settings for a wall segment.

Returns dict with isEnabled, padDepth, padWidth, setback, padExists. Depth and setback are in project native very-small-length units; width uses native length units.

Return type:

dict

Parameters:
  • wall_name (str)

  • segment_name (str)

setLevelingPadEnabled(wall_name, segment_name, is_enabled, apply_to_all_segments_in_wall=False)#

Enable or disable the leveling pad on a segment.

Return type:

None

Parameters:
  • wall_name (str)

  • segment_name (str)

  • is_enabled (bool)

  • apply_to_all_segments_in_wall (bool)

setLevelingPadDepth(wall_name, segment_name, pad_depth, apply_to_all_segments_in_wall=False)#

Set leveling pad depth in project native very-small-length units.

Parameters:
  • pad_depth (float) – Depth/thickness. Must be non-negative (0 allowed; matches UI/RPC).

  • wall_name (str)

  • segment_name (str)

  • apply_to_all_segments_in_wall (bool)

Return type:

None

setLevelingPadWidth(wall_name, segment_name, pad_width, apply_to_all_segments_in_wall=False)#

Set leveling pad width in project native length units.

Parameters:
  • pad_width (float) – Width. Must be non-negative (0 allowed; matches UI/RPC).

  • wall_name (str)

  • segment_name (str)

  • apply_to_all_segments_in_wall (bool)

Return type:

None

setLevelingPadSetback(wall_name, segment_name, setback, apply_to_all_segments_in_wall=False)#

Set leveling pad setback in project native very-small-length units.

Parameters:
  • setback (float) – Setback from wall toe. Must be non-negative (0 allowed; matches UI/RPC).

  • wall_name (str)

  • segment_name (str)

  • apply_to_all_segments_in_wall (bool)

Return type:

None

getReinforcementLayoutDetails(wall_name, segment_name)#

Read reinforcement layout settings for a wall segment.

Returns dict with hasLayout, uniform flags, spacing fields, layerPlacementType, and layers list.

Return type:

dict

Parameters:
  • wall_name (str)

  • segment_name (str)

setReinforcementLayout(wall_name, segment_name, layout_length, default_reinforcement_name, layer_placement_type, layers, *, apply_uniform_length=True, apply_uniform_property=True, apply_uniform_placement=True, num_courses_below_first=0, num_courses_between=1, elevation_first_layer=0.0, elevation_spacing=0.6, height_first_layer=0.0, height_spacing=0.6, apply_to_all_segments_in_wall=False)#

Create or replace the reinforcement layout on a segment.

Mirrors Segment > Reinforcement Layout dialog checkboxes:

  • apply_uniform_length — Apply uniform length (default True)

  • apply_uniform_property — Apply uniform reinforcements (default True)

  • apply_uniform_placement — Apply uniform placement (default True)

Changelog: apply_uniform_placement default changed from False to True to match the dialog. Scripts that previously relied on the old default and passed irregular per-layer courses/elevations/heights must now pass apply_uniform_placement=False explicitly (otherwise layouts can be wrong, or duplicate placeholders can hit the strictly-increasing check).

Decide flags from the intended layers before calling (do not assume all True). Mixed lengths → length False; mixed reinforcements → property False; irregular or hand-listed elevations/courses/heights → placement False.

When apply_uniform_placement is True, spacing is controlled by num_courses_below_first + num_courses_between (or the elevation/height spacing pair for those modes). Per-layer placement fields are still validated as strictly increasing (same as C# ValidateLayout), so do not reuse the same course/elevation/height on every layer — use distinct placeholders that increase, e.g. 0 then 1 for a two-layer BY_COURSE layout. Set apply_uniform_placement=False whenever each layer must keep its own elevation/course/height.

Preferred kwargs JSON (uniform placement, two layers):

{
  "wall_name": "Wall 1",
  "segment_name": "Segment 1",
  "layout_length": 5,
  "default_reinforcement_name": "Strip 1",
  "layer_placement_type": "BY_COURSE",
  "layers": [
    {"reinforcementName": "Strip 1", "length": 5, "numCoursesBelow": 0},
    {"reinforcementName": "Strip 1", "length": 5, "numCoursesBelow": 1}
  ],
  "apply_uniform_length": true,
  "apply_uniform_property": true,
  "apply_uniform_placement": true,
  "num_courses_below_first": 0,
  "num_courses_between": 1
}

The six required parameters accept positional or keyword arguments; the optional tuning parameters are keyword-only.

layer_placement_type must be one of: BY_COURSE, BY_ELEVATION, or BY_HEIGHT_FROM_BOTTOM.

Each entry in layers must use camelCase keys: reinforcementName, length, numCoursesBelow (required for BY_COURSE), elevation (for BY_ELEVATION), and heightFromBottom (for BY_HEIGHT_FROM_BOTTOM).

Returns the resulting layout (same shape as getReinforcementLayoutDetails).

Return type:

dict

Parameters:
  • wall_name (str)

  • segment_name (str)

  • layout_length (float)

  • default_reinforcement_name (str)

  • layer_placement_type (str)

  • layers (List[Dict[str, Any]])

  • apply_uniform_length (bool)

  • apply_uniform_property (bool)

  • apply_uniform_placement (bool)

  • num_courses_below_first (int)

  • num_courses_between (int)

  • elevation_first_layer (float)

  • elevation_spacing (float)

  • height_first_layer (float)

  • height_spacing (float)

  • apply_to_all_segments_in_wall (bool)

deleteReinforcementLayout(wall_name, segment_name, apply_to_all_segments_in_wall=False)#

Remove the reinforcement layout from a segment.

Return type:

None

Parameters:
  • wall_name (str)

  • segment_name (str)

  • apply_to_all_segments_in_wall (bool)

getComputableSegments()#

Segments that can be analyzed (profile assigned / SectionIsComputable).

Return type:

List[Dict[str, str]]

Returns:

List of dicts with wallName and segmentName.

getResultsStatus(wall_name='', segment_name='')#

Results presence and overall status for segments.

Parameters:
  • wall_name (str) – Optional wall filter (empty = all walls).

  • segment_name (str) – Optional segment filter (requires wall_name).

Return type:

List[Dict[str, Any]]

Returns:

List of dicts with wallName, segmentName, isComputable, hasResults, overallStatus (“None” | “Success” | “Warning” | “Error”).

computeSegment(wall_name, segment_name)#

Analyze one segment, write .rswall_results, and reload the results cache.

Return type:

Dict[str, Any]

Returns:

dict with success and segments (per-segment status list).

Parameters:
  • wall_name (str)

  • segment_name (str)

computeWall(wall_name)#

Analyze all computable segments in a wall (continue-on-error).

Return type:

Dict[str, Any]

Returns:

dict with success (true only if every segment succeeded) and segments.

Parameters:

wall_name (str)

computeAll()#

Analyze all computable segments in the project (continue-on-error).

Return type:

Dict[str, Any]

Returns:

dict with success (true only if every segment succeeded) and segments.

getFactorsOfSafety(wall_name, segment_name)#

Factor of safety / CDR / ODR rows for a segment with loaded results.

Return type:

Dict[str, Any]

Returns:

dict with hasResults, ratioTypeAbbr, ratioTypeDescription, rows.

Parameters:
  • wall_name (str)

  • segment_name (str)

getCriticalFactorOfSafety(wall_name, segment_name, failure_mode_abbr='', load_case_abbr='', location_code='')#

Minimum FS/CDR/ODR for a segment, optionally filtered by metadata abbreviations.

Return type:

Dict[str, Any]

Parameters:
  • wall_name (str)

  • segment_name (str)

  • failure_mode_abbr (str)

  • load_case_abbr (str)

  • location_code (str)

getAnalysisIssues(wall_name, segment_name)#

Analysis issues for a segment: failed checks, warnings, and errors.

Return type:

Dict[str, Any]

Parameters:
  • wall_name (str)

  • segment_name (str)

getRelevantSymbols(wall_name, segment_name, scope_to_factor_of_safety_row=False, factor_of_safety_row_index=0)#

Relevant symbols for a segment (or one FS row when scoped).

Parameters:
  • scope_to_factor_of_safety_row (bool) – If True, limit to symbols for the FS row at factor_of_safety_row_index (same index as getFactorsOfSafety).

  • factor_of_safety_row_index (int) – 0-based FS row index when scoping.

  • wall_name (str)

  • segment_name (str)

Return type:

Dict[str, Any]

Returns:

dict with hasResults and symbols. Each symbol includes symbol, description, siValue, units, and reference. siValue is the project-native numeric value paired with units (field name is historical; not always SI). Non-finite values become None.

getAvailableWallWizardUnits()#

Return the names of all wall units (MSE or Gabion) in the project.

These names can be passed as wall_unit_name to generateMultiSegmentWall().

Return type:

List[str]

Returns:

Sorted list of wall unit display names.

generateMultiSegmentWall(plan_points, wall_unit_name, wall_name='', minimum_segment_length=0.0, minimum_embedment_depth=0.0, reference_block_elevation=0.0, keep_bottom_at_same_elevation=False, keep_top_at_same_elevation=False, define_courses_setback=False, use_layer_setback_distance=True, layer_setback_distance_mm=25.0, batter_angle_degrees=0.0, flip_backslope=False)#

Run the Wall Wizard to generate a multi-segment MSE/SRW or Gabion wall.

Mirrors Wall > Multi-Segment Wall > Wizard. Each plan_points entry is one vertex = Plan coordinate (X, Y) + Elevation coordinate (Top, Bottom). The elevation pair is not a second XY / segment start-end point.

Preferred vertex shape (self-explanatory for LLMs):

{
  "plan": {"x": 12, "y": 5},
  "elevation": {"top": 2.4, "bottom": 0}
}

Also accepted: flat keys (x/PlanX, elevationTop/Top, …) or legacy [planX, planY, elevTop, elevBottom] rows. Rejected: pair-of-XY shapes like [[0,0], [2,0]] (elevation mistaken for plan).

Preferred rswall_call_function arguments_json:

{
  "plan_points": [
    {"plan": {"x": 0, "y": 0}, "elevation": {"top": 2, "bottom": 0}},
    {"plan": {"x": 12, "y": 0}, "elevation": {"top": 2, "bottom": 0}},
    {"plan": {"x": 12, "y": 5}, "elevation": {"top": 2.4, "bottom": 0}}
  ],
  "wall_unit_name": "Wall Unit 1",
  "wall_name": "My MSE Wall"
}

Also accepted: [plan_points, wall_unit_name, {options...}] where the third element is an options dict (promoted automatically).

Omitted design-requirements kwargs match Wall Wizard page-2 GUI defaults (see rswall.wizard_requirements).

Parameters:
  • plan_points (List) – Ordered vertices (≥ 2). Native length units. Prefer nested plan / elevation objects per vertex.

  • wall_unit_name (str) – MSE/Gabion unit from getAvailableWallWizardUnits().

  • wall_name (Union[str, Dict[str, Any]]) – Display name for the created wall (auto if empty). May also be an options dict when callers pack [points, unit, options].

  • minimum_segment_length (float) – Shortest segment (native length). Use 0 (or omit) for the GUI default (10 m, applied server-side in project native units).

  • minimum_embedment_depth (float) – Front-face embedment floor (native length). Use 0 (or omit) for the GUI default (0.3 m, applied server-side in project native units).

  • reference_block_elevation (float) – Block-coursing reference (native length).

  • keep_bottom_at_same_elevation (bool) – Force equal segment bottoms.

  • keep_top_at_same_elevation (bool) – Force equal segment tops.

  • define_courses_setback (bool) – Enable per-course batter setback.

  • use_layer_setback_distance (bool) – When setback is enabled, True uses layer_setback_distance_mm (GUI default); False uses batter_angle_degrees (must be in [0, 30]).

  • layer_setback_distance_mm (float) – Setback in millimetres (UI default 25). When setback + distance mode are enabled, <= 0 remaps to 25; values in (0, 0.01) raise ValueError (GUI MinValue).

  • batter_angle_degrees (float) – Batter degrees when setback uses angle mode.

  • flip_backslope (bool) – Flip backslope side on generated segments.

Return type:

WizardWallResult

Returns:

WizardWallResult with wall id/name and per-segment summaries.

Raises:
  • ValueError – If plan points or page-2 requirements are invalid.

  • RuntimeError – If the server reports a generation failure.

__enter__()#

Context manager entry.

__exit__(exc_type, exc_val, exc_tb)#

Context manager exit - close without saving.