Moving Load Case
A nested class within MovingLoad used to define and manage moving load cases for analysis, with support for country-specific standards like Indian, Eurocode, AASHTO, Korea, Australia, Russia, Taiwan, Canada, PENNDOT, and KSCE-LSD15.
Constructor
The main Case class constructor is for internal use. Please use the country-specific subclasses to create load cases.
Country-Specific Subclasses
India
MovingLoad.Case.India(name, num_loaded_lanes, id=None, opt_auto_ll=False, opt_lc_for_permit=False, sub_load_items=None, scale_factor=None, permit_vehicle_id=None, ref_lane_id=None, eccentricity=None, permit_scale_factor=None)
Creates a moving load case according to Indian standards (IRC). It supports three main types of load cases: General, Auto Live Load Combination, and Permit Vehicle.
Parameters
name(str): The name for the load case.num_loaded_lanes(int): The number of lanes to be loaded.id(int, optional): A unique integer ID for the case. Auto-assigned ifNone.opt_auto_ll(bool, optional): Set toTruefor "Auto Live Load Combinations". Defaults toFalse.opt_lc_for_permit(bool, optional): Set toTruefor "Load Cases for Permit Vehicle". Defaults toFalse.-
sub_load_items(list): A list of lists defining the sub-loads. The format depends on the selected options:-
Case 1: General Load (
opt_auto_ll=False,opt_lc_for_permit=False) Each inner list must contain 5 items:[Scale Factor, Min Lanes, Max Lanes, Vehicle Name, [Selected Lanes]]Scale Factor(float): Load combination factor.Min Lanes(int): Minimum number of loaded lanes.Max Lanes(int): Maximum number of loaded lanes.Vehicle Name(str): e.g.,"Class A".[Selected Lanes](list[str]): e.g.,["Lane1", "Lane2"].
-
Case 2: Auto Live Load (
opt_auto_ll=True) Each inner list must contain 5-6 items:[Scale Factor, Vehicle Class I, Vehicle Class II, Footway Vehicle, [Carriageway Lanes], [Footway Lanes]]Vehicle Class I/II(str): Primary/secondary vehicle names. Use""for none.Footway Vehicle(str): Footway vehicle name. Use""for none.[Footway Lanes](list[str], optional): Lanes for footway load.
-
Case 3: Permit Vehicle (
opt_lc_for_permit=True) This parameter is not used. Use thepermit_vehicle_id,ref_lane_id, etc., parameters instead.
-
-
scale_factor(list, optional): A list of 4 numbers for the Multiple Presence Factor. Defaults to[1, 0.9, 0.8, 0.8]. permit_vehicle_id(int, optional): The ID of the permit vehicle. Required for permit cases.ref_lane_id(int, optional): The reference lane ID. Required for permit cases.eccentricity(float, optional): Eccentricity for the permit vehicle. Required for permit cases.permit_scale_factor(float, optional): Scale factor for the permit vehicle. Required for permit cases.
Eurocode
MovingLoad.Case.Eurocode(name, load_model, use_optimization=False, id=None, sub_load_items=None, **kwargs)
Creates a moving load case according to Eurocode standards. It supports General Load and Moving Load Optimization modes across various load models.
Parameters
name(str): The name of the load case.load_model(int): The Eurocode Load Model type (1-5).use_optimization(bool, optional): Set toTruefor "Moving Load Optimization". Defaults toFalse.id(int, optional): A unique integer ID for the case. Auto-assigned ifNone.sub_load_items(list): A simplified list for defining the load case details. The format varies significantly based onload_modelanduse_optimization.**kwargs: Additional individual parameters can be passed
sub_load_items Format Details
-
General Load (
use_optimization=False)load_model = 1:[opt_leading, vhl_name1, vhl_name2, selected_lanes, remaining_area_lanes, footway_lanes]opt_leading(bool):Truefor leading vehicle.vhl_name1/vhl_name2(str): Vehicle names.selected_lanes(list[str]): Lanes for tandem system.remaining_area_lanes(list[str]): Lanes for UDL.footway_lanes(list[str]): Lanes for footway load.
load_model = 2:[opt_leading, opt_comb, [(name, sf, min_L, max_L, [lanes]), ...]]opt_comb(int): Combination option.- The inner list defines sub-loads with:
name(str),sf(float),min_L/max_L(int), andlanes(list[str]).
load_model = 3:[opt_leading, vhl_name1, vhl_name2, selected_lanes, remaining_area_lanes]load_model = 4:[opt_leading, vhl_name1, vhl_name2, selected_lanes, remaining_area_lanes, straddling_lanes]straddling_lanes(list[dict]): e.g.,[{'NAME1': 'Lane1', 'NAME2': 'Lane2'}].
load_model = 5(Railway):[opt_psi, opt_comb, [sf1,sf2,sf3], [mf1,mf2,mf3], [(name, sf, min_L, max_L, [lanes]), ...]]opt_psi(bool):Trueto use psi factors.[sf1,sf2,sf3](list[float]): Scale factors.[mf1,mf2,mf3](list[float]): Multi-presence factors.
-
Moving Load Optimization (
use_optimization=True)load_model = 1or3:[opt_leading, vhl_name1, vhl_name2, min_dist, opt_lane, loaded_lanes, [selected_lanes]]min_dist(float): Minimum vehicle distance.opt_lane(str): Name of the optimization lane.loaded_lanes(int): Number of loaded lanes.
load_model = 2:[opt_leading, opt_comb, min_dist, opt_lane, min_v, max_v, [(name, sf), ...]]min_v/max_v(int): Min/max number of vehicles.- The inner list defines vehicles with
name(str) andsf(float).
load_model = 4:[opt_leading, vhl_name1, vhl_name2, min_dist, opt_lane, loaded_lanes, [selected_lanes], [straddling_lanes]]load_model = 5(Railway):[opt_psi, opt_comb, [sf1,sf2,sf3], [mf1,mf2,mf3], min_dist, opt_lane, min_v, max_v, [(name, sf), ...]]
KSCE-LSD15
MovingLoad.Case.KSCELSD15(name, case_type, sub_loads=None, comb_option="COMB", optimize_lane_name=None, min_vehl_dist=None, min_num_vehicle=None, max_num_vehicle=None, optimize_items=None, scale_factors=None, desc="", id=None)
Creates a moving load case according to the Korean KSCE-LSD15 standard.
Parameters
name(str): The name of the load case.case_type(int): Load type selector:0— General Load2— Moving Load Optimization
id(int, optional): A unique integer ID. Auto-assigned ifNone.comb_option(str, optional): Loading effect option. Accepted values:"COMBINED"(or shorthand"COMB") and"INDEPENDENT"(or shorthand"INDE"). Defaults to"COMBINED".scale_factors(list, optional): Multiple Presence Factors[L1, L2, L3, L4, L5, More]. Defaults to[1, 0.9, 0.8, 0.7, 0.65, 0.65].-
desc(str, optional): Description of the load case. -
General Load (
case_type=0)sub_loads(list): List of sub-load definitions. Each item is a list:[vehicle_type, vehicle_name, scale_factor, min_loaded_lane, max_loaded_lane, [lane_names]]vehicle_type(str):"VL"for Vehicle Load,"VC"for Vehicle Class.vehicle_name(str): e.g.,"KL-510TRK".scale_factor(float): Load scale factor.min_loaded_lane(int): Minimum number of loaded lanes.max_loaded_lane(int): Maximum number of loaded lanes.[lane_names](list[str]): Selected lane names.
-
Moving Load Optimization (
case_type=2)optimize_lane_name(str): Target lane name for optimization.min_vehl_dist(float): Minimum vehicle distance.min_num_vehicle(int): Minimum number of vehicles.max_num_vehicle(int): Maximum number of vehicles.optimize_items(list): Each item is[vehicle_type, vehicle_name, scale_factor].
Examples
# Set KSCE-LSD15 standard
MovingLoad.Code("KSCE-LSD15")
# Example 1: General Load Case (Single Sub-load)
MovingLoad.Case.KSCELSD15(
id=1,
name="C1",
case_type=0,
comb_option="INDEPENDENT",
sub_loads=[["VL", "KL-510FTG", 1.0, 0, 1, ["L1", "L2", "L3"]]]
)
# Example 2: General Load Case (Multiple Sub-loads, Combined)
MovingLoad.Case.KSCELSD15(
id=2,
name="C2",
case_type=0,
comb_option="COMBINED",
sub_loads=[
["VL", "KL-510FTG", 1.0, 0, 1, ["L1"]],
["VL", "KL-510FTG", 1.0, 0, 3, ["L1", "L2", "L3"]]
]
)
# Example 3: General Load Case with Min/Max Lane range
MovingLoad.Case.KSCELSD15(
id=3,
name="C3",
case_type=0,
comb_option="INDEPENDENT",
sub_loads=[["VL", "KL-510FTG", 1.0, 1, 2, ["L2", "L3"]]]
)
# Create all defined cases in Midas Civil
MovingLoad.Case.create()
Korea
MovingLoad.Case.Korea(name, sub_loads=None, comb_option="COMB", lane_factor_type=1, korea_lane_factors=None, scale_factors=None, desc="", id=None)
Creates a moving load case according to Korean standards. Supports General Load only.
Parameters
name(str): The name of the load case.id(int, optional): A unique integer ID. Auto-assigned ifNone.comb_option(str, optional): Accepted values:"COMBINED"(or shorthand"COMB") and"INDEPENDENT"(or shorthand"INDE"). Defaults to"COMBINED".lane_factor_type(int, optional): Lane factor type:0— Multi Lane Factor in KS Rail Load1— Multiple Presence Factor (default)
korea_lane_factors(dict, optional): Required whenlane_factor_type=0. Keys follow the pattern:{"_2_LANE_FACTOR_1": val, "_2_LANE_FACTOR_2": val, "_3_LANE_FACTOR_1": val, "_3_LANE_FACTOR_2": val, "_3_LANE_FACTOR_3": val, "_3_LANE_FACTOR_4": val}scale_factors(list, optional): Multiple Presence Factors[L1, L2, L3, More, More, More]. Defaults to[1, 1, 0.9, 0.75, 0.75, 0.75].sub_loads(list): List of sub-load definitions. Each item is a list:[vehicle_type, vehicle_name, scale_factor, min_loaded_lane, max_loaded_lane, [lane_names]]vehicle_type(str):"VL"for Vehicle Load,"VC"for Vehicle Class.vehicle_name(str): e.g.,"DB-24".
Examples
# Set Korean standard
MovingLoad.Code("KOREA")
# Example 1: General Load Case (Independent)
MovingLoad.Case.Korea(
id=1,
name="Case 1",
comb_option="INDEPENDENT",
sub_loads=[["VL", "DB-24", 1.0, 0, 1, ["L1"]]]
)
# Example 2: General Load Case (Combined)
MovingLoad.Case.Korea(
id=2,
name="Case 2",
comb_option="COMBINED",
sub_loads=[["VL", "DB-24", 1.0, 0, 2, ["L1", "L2"]]]
)
# Example 3: General Load Case (Multiple Sub-loads, Independent)
MovingLoad.Case.Korea(
id=3,
name="Case 33",
comb_option="INDEPENDENT",
sub_loads=[
["VL", "DB-24", 1.0, 0, 2, ["L1", "L2", "L3"]],
["VL", "DB-24", 1.0, 0, 1, ["L1"]]
]
)
# Create all defined cases in Midas Civil
MovingLoad.Case.create()
AASHTO Standard
MovingLoad.Case.AASHTOStandard(name, case_type, sub_loads=None, comb_option="COMB", optimize_lane_name=None, min_vehl_dist=None, min_num_vehicle=None, max_num_vehicle=None, optimize_items=None, scale_factors=None, desc="", id=None)
Creates a moving load case according to AASHTO Standard specifications.
Parameters
name(str): The name of the load case.case_type(int): Load type selector:0— General Load2— Moving Load Optimization
id(int, optional): A unique integer ID. Auto-assigned ifNone.comb_option(str, optional): Accepted values:"COMBINED"(or shorthand"COMB") and"INDEPENDENT"(or shorthand"INDE"). Defaults to"COMBINED".scale_factors(list, optional): Multiple Presence Factors[L1, L2, L3, L4, L5, More]. Defaults to[1, 1, 0.9, 0.75, 0.75, 0.75].-
desc(str, optional): Description of the load case. -
General Load (
case_type=0)sub_loads(list): Each item is[vehicle_type, vehicle_name, scale_factor, min_loaded_lane, max_loaded_lane, [lane_names]].
-
Moving Load Optimization (
case_type=2)optimize_lane_name(str): Target lane for optimization.min_vehl_dist(float): Minimum vehicle distance.min_num_vehicle(int): Minimum number of vehicles.max_num_vehicle(int): Maximum number of vehicles.optimize_items(list): Each item is[vehicle_type, vehicle_name, scale_factor].
Examples
# Set AASHTO Standard
MovingLoad.Code("AASHTO STANDARD")
# Example 1: General Load Case (Independent, 2 Lanes)
MovingLoad.Case.AASHTOStandard(
id=1,
name="C1",
case_type=0,
comb_option="INDEPENDENT",
sub_loads=[["VL", "HS20-44", 1.0, 0, 2, ["L1", "L2"]]]
)
# Example 2: General Load Case (Combined, 3 Lanes)
MovingLoad.Case.AASHTOStandard(
id=2,
name="C2",
case_type=0,
comb_option="COMBINED",
sub_loads=[["VL", "HS20-44", 1.0, 0, 3, ["L1", "L2", "L3"]]]
)
# Example 3: General Load Case (Multiple Sub-loads)
MovingLoad.Case.AASHTOStandard(
id=3,
name="C3",
case_type=0,
comb_option="COMBINED",
sub_loads=[
["VL", "HS20-44", 1.0, 0, 1, ["L2"]],
["VL", "HS20-44", 1.0, 0, 2, ["L1", "L3"]]
]
)
# Create all defined cases in Midas Civil
MovingLoad.Case.create()
AASHTO LRFD
MovingLoad.Case.AASHTOLRFD(name, case_type, sub_loads=None, comb_option="COMB", permit_vehicle_name=None, ref_lane=None, permit_scale_factor=1.0, optimize_lane_name=None, min_vehl_dist=None, min_num_vehicle=None, max_num_vehicle=None, optimize_items=None, scale_factors=None, desc="", id=None)
Creates a moving load case according to AASHTO LRFD specifications. Supports General Load, Permit Vehicle, and Moving Load Optimization.
Parameters
name(str): The name of the load case.case_type(int): Load type selector:0— General Load1— Load Case for Permit Vehicle2— Moving Load Optimization
id(int, optional): A unique integer ID. Auto-assigned ifNone.comb_option(str, optional): Accepted values:"COMBINED"(or shorthand"COMB") and"INDEPENDENT"(or shorthand"INDE"). Defaults to"COMBINED".scale_factors(list, optional): Multiple Presence Factors[L1, L2, L3, L4, L5, More]. Defaults to[1.2, 1, 0.85, 0.65, 0.65, 0.65].-
desc(str, optional): Description of the load case. -
General Load (
case_type=0)sub_loads(list): Each item is[vehicle_type, vehicle_name, scale_factor, min_loaded_lane, max_loaded_lane, [lane_names]].
-
Permit Vehicle (
case_type=1)permit_vehicle_name(str): Name of the permit vehicle load.ref_lane(str): Reference lane name.permit_scale_factor(float): Scale factor for the permit vehicle. Defaults to1.0.
-
Moving Load Optimization (
case_type=2)optimize_lane_name(str): Target lane for optimization.min_vehl_dist(float): Minimum vehicle distance.min_num_vehicle(int): Minimum number of vehicles.max_num_vehicle(int): Maximum number of vehicles.optimize_items(list): Each item is[vehicle_type, vehicle_name, scale_factor].
Examples
# Set AASHTO LRFD standard
MovingLoad.Code("AASHTO LRFD")
# Example 1: General Load Case (Independent, Single Lane)
MovingLoad.Case.AASHTOLRFD(
id=1,
name="Case 1",
case_type=0,
comb_option="INDEPENDENT",
sub_loads=[["VL", "HL-93TRK", 1.0, 1, 1, ["L1"]]]
)
# Example 2: General Load Case (Combined, 2 Lanes)
MovingLoad.Case.AASHTOLRFD(
id=2,
name="Case 2",
case_type=0,
comb_option="COMBINED",
sub_loads=[["VL", "HL-93TRK", 1.0, 1, 2, ["L1", "L3"]]]
)
# Example 3: General Load Case (Multiple Sub-loads, Independent)
MovingLoad.Case.AASHTOLRFD(
id=3,
name="Case 3",
case_type=0,
comb_option="INDEPENDENT",
sub_loads=[
["VL", "HL-93TRK", 1.0, 0, 1, ["L1"]],
["VL", "HL-93TRK", 1.0, 0, 1, ["L2"]]
]
)
# Create all defined cases in Midas Civil
MovingLoad.Case.create()
PENNDOT
MovingLoad.Case.PENNDOT(name, case_type, sub_loads=None, comb_option="COMB", optimize_lane_name=None, min_vehl_dist=None, min_num_vehicle=None, max_num_vehicle=None, optimize_items=None, scale_factors=None, desc="", id=None)
Creates a moving load case according to AASHTO LRFD (PENNDOT) specifications. Supports General Load and Moving Load Optimization.
Parameters
name(str): The name of the load case.case_type(int): Load type selector:0— General Load2— Moving Load Optimization
id(int, optional): A unique integer ID. Auto-assigned ifNone.comb_option(str, optional): Accepted values:"COMBINED"(or shorthand"COMB") and"INDEPENDENT"(or shorthand"INDE"). Defaults to"COMBINED".scale_factors(list, optional): Multiple Presence Factors[L1, L2, L3, L4, L5, More]. Defaults to[1.2, 1, 0.85, 0.65, 0.65, 0.65].-
desc(str, optional): Description of the load case. -
General Load (
case_type=0)sub_loads(list): Each item is[vehicle_type, vehicle_name, scale_factor, min_loaded_lane, max_loaded_lane, [lane_names]].
-
Moving Load Optimization (
case_type=2)optimize_lane_name(str): Target lane for optimization.min_vehl_dist(float): Minimum vehicle distance.min_num_vehicle(int): Minimum number of vehicles.max_num_vehicle(int): Maximum number of vehicles.optimize_items(list): Each item is[vehicle_type, vehicle_name, scale_factor].
Examples
# Set PENNDOT standard
MovingLoad.Code("AASHTO LRFD(PENDOT)")
# Example 1: General Load Case (Independent, Single Lane)
MovingLoad.Case.PENNDOT(
id=1,
name="C1",
case_type=0,
comb_option="INDEPENDENT",
sub_loads=[["VL", "PHL-93TRK", 1.0, 0, 1, ["L1"]]]
)
# Example 2: General Load Case (Combined, Single Lane)
MovingLoad.Case.PENNDOT(
id=2,
name="C2",
case_type=0,
comb_option="COMBINED",
sub_loads=[["VL", "PHS20-FTG", 1.0, 0, 1, ["L2"]]]
)
# Example 3: General Load Case (Multiple Sub-loads, Independent)
MovingLoad.Case.PENNDOT(
id=3,
name="C3",
case_type=0,
comb_option="INDEPENDENT",
sub_loads=[
["VL", "PHL-93TRK", 1.0, 0, 3, ["L1", "L2", "L3"]],
["VL", "PHL-93TRK", 1.0, 0, 1, ["L2"]]
]
)
# Create all defined cases in Midas Civil
MovingLoad.Case.create()
Taiwan
MovingLoad.Case.Taiwan(name, sub_loads=None, comb_option="COMB", scale_factors=None, desc="", id=None)
Creates a moving load case according to Taiwan standards. Supports General Load only.
Parameters
name(str): The name of the load case.id(int, optional): A unique integer ID. Auto-assigned ifNone.comb_option(str, optional): Accepted values:"COMBINED"(or shorthand"COMB") and"INDEPENDENT"(or shorthand"INDE"). Defaults to"COMBINED".scale_factors(list, optional): Multiple Presence Factors[L1, L2, L3, L4, L5, More]. Defaults to[1, 1, 0.9, 0.75, 0.75, 0.75].desc(str, optional): Description of the load case.sub_loads(list): Each item is[vehicle_type, vehicle_name, scale_factor, min_loaded_lane, max_loaded_lane, [lane_names]].vehicle_type(str):"VL"for Vehicle Load,"VC"for Vehicle Class.
Examples
# Set Taiwan standard
MovingLoad.Code("TAIWAN")
# Example 1: General Load Case (Independent, Single Lane)
MovingLoad.Case.Taiwan(
id=1,
name="C1",
comb_option="INDEPENDENT",
sub_loads=[["VL", "HS20-44(MS18)", 1.0, 0, 1, ["L2"]]]
)
# Example 2: General Load Case (Multiple Sub-loads, Independent)
MovingLoad.Case.Taiwan(
id=2,
name="C2",
comb_option="INDEPENDENT",
sub_loads=[
["VL", "HS20-44(MS18)", 1.0, 0, 2, ["L1", "L2"]],
["VL", "HS20-44(MS18)", 1.0, 0, 3, ["L1", "L2", "L3"]]
]
)
# Example 3: General Load Case (Combined)
MovingLoad.Case.Taiwan(
id=3,
name="C3",
comb_option="COMBINED",
sub_loads=[["VL", "HS20-44(MS18)", 1.0, 0, 1, ["L2"]]]
)
# Create all defined cases in Midas Civil
MovingLoad.Case.create()
Canada
MovingLoad.Case.Canada(name, case_type, sub_loads=None, comb_option="COMB", permit_vehicle_name=None, ref_lane=None, permit_scale_factor=1.0, optimize_lane_name=None, min_vehl_dist=None, min_num_vehicle=None, max_num_vehicle=None, optimize_items=None, scale_factors=None, desc="", id=None)
Creates a moving load case according to Canadian standards. Supports General Load, Permit Vehicle, and Moving Load Optimization.
Parameters
name(str): The name of the load case.case_type(int): Load type selector:0— General Load1— Load Case for Permit Vehicle2— Moving Load Optimization
id(int, optional): A unique integer ID. Auto-assigned ifNone.comb_option(str, optional): Accepted values:"COMBINED"(or shorthand"COMB") and"INDEPENDENT"(or shorthand"INDE"). Defaults to"COMBINED".scale_factors(list, optional): Multiple Presence Factors[L1, L2, L3, L4, L5, More]. Defaults to[1, 0.9, 0.8, 0.7, 0.6, 0.55].-
desc(str, optional): Description of the load case. -
General Load (
case_type=0)sub_loads(list): Each item is[vehicle_type, vehicle_name, scale_factor, min_loaded_lane, max_loaded_lane, [lane_names]].
-
Permit Vehicle (
case_type=1)permit_vehicle_name(str): Name of the permit vehicle load.ref_lane(str): Reference lane name.permit_scale_factor(float): Scale factor for the permit vehicle. Defaults to1.0.
-
Moving Load Optimization (
case_type=2)optimize_lane_name(str): Target lane for optimization.min_vehl_dist(float): Minimum vehicle distance.min_num_vehicle(int): Minimum number of vehicles.max_num_vehicle(int): Maximum number of vehicles.optimize_items(list): Each item is[vehicle_type, vehicle_name, scale_factor].
Examples
# Set Canada standard
MovingLoad.Code("CANADA")
# Example 1: General Load Case (Independent, Single Lane)
MovingLoad.Case.Canada(
id=1,
name="C1",
case_type=0,
comb_option="INDEPENDENT",
sub_loads=[["VL", "CL-625 Truck", 1.0, 0, 1, ["L1"]]]
)
# Example 2: General Load Case (Combined, Multiple Sub-loads)
MovingLoad.Case.Canada(
id=2,
name="C2",
case_type=0,
comb_option="COMBINED",
sub_loads=[
["VL", "CL-625 Truck", 1.0, 0, 1, ["L1"]],
["VL", "CL-625 Truck", 1.0, 0, 2, ["L2", "L3"]]
]
)
# Example 3: General Load Case (Independent, 3 Lanes)
MovingLoad.Case.Canada(
id=3,
name="C3",
case_type=0,
comb_option="INDEPENDENT",
sub_loads=[["VL", "CL-625 Truck", 1.0, 0, 3, ["L1", "L2", "L3"]]]
)
# Create all defined cases in Midas Civil
MovingLoad.Case.create()
Australia
MovingLoad.Case.Australia(name, case_type, sub_loads=None, comb_option="COMB", load_comb_type=1, load_model=0, fatigue=False, permit_vehicle_name=None, ref_lane=None, permit_scale_factor=1.0, optimize_lane_name=None, min_vehl_dist=None, min_num_vehicle=None, max_num_vehicle=None, optimize_items=None, asl_data=None, scale_factors=None, desc="", id=None)
Creates a moving load case according to Australian standards. Supports General Load, Permit Vehicle, and Moving Load Optimization across multiple load models.
Parameters
name(str): The name of the load case.case_type(int): Load type selector:0— General Load1— Load Case for Permit Vehicle2— Moving Load Optimization
id(int, optional): A unique integer ID. Auto-assigned ifNone.comb_option(str, optional): Accepted values:"COMBINED"(or shorthand"COMB") and"INDEPENDENT"(or shorthand"INDE"). Defaults to"COMBINED".scale_factors(list, optional): Multiple Presence Factors[L1, L2, L3, L4, L5, More]. Defaults to[1, 0.8, 0.4, 0.4, 0.4, 0.4].load_comb_type(int, optional): Type of Load Factor for Design Combination:0— Ultimate Limit State1— Serviceability Limit State (default)
load_model(int, optional): Select Load Model:0— General (default)1— Fatigue2— Heavy Load Platform3— Rail Traffic Load
fatigue(bool, optional): Enable Fatigue Option. Defaults toFalse.-
desc(str, optional): Description of the load case. -
General Load (
case_type=0)sub_loads(list): Each item is[vehicle_type, vehicle_name, scale_factor, min_loaded_lane, max_loaded_lane, [lane_names]].asl_data(list, optional): Required whenload_model=2(Heavy Load Platform). Simplified format:[multiple_factor, vehicle_name, vehicle_name2, min_lane, max_lane, [na_lane_names], [[strad1_lanes], [strad2_lanes]]]multiple_factor(float): Unobstructed Lane Scale Factor (e.g.0.5).vehicle_name(str): Heavy Load vehicle name (key"VEHICLE_LOAD_NAME").vehicle_name2(str): M1600/S1600 vehicle name (key"VEHICLE_LOAD_NAME2"). Use"NONE"if not applicable.min_lane(int): Minimum number of loaded lanes.max_lane(int): Maximum number of loaded lanes.[na_lane_names](list[str]): Selected lane names.[[strad1_lanes], [strad2_lanes]](list[list[str]]): Heavy Load Lane Start and End lane pairs.
-
Permit Vehicle (
case_type=1)permit_vehicle_name(str): Name of the permit vehicle load.ref_lane(str): Reference lane name.permit_scale_factor(float): Scale factor. Defaults to1.0.
-
Moving Load Optimization (
case_type=2)optimize_lane_name(str): Target lane for optimization.min_vehl_dist(float): Minimum vehicle distance.min_num_vehicle(int): Minimum number of vehicles.max_num_vehicle(int): Maximum number of vehicles.optimize_items(list): Each item is[vehicle_type, vehicle_name, scale_factor].
Examples
# Set Australia standard
MovingLoad.Code("AUSTRALIA")
# Example 1: General Load with Heavy Load Platform (load_model=2), 1 Lane
MovingLoad.Case.Australia(
id=1,
name="C2",
case_type=0,
load_model=2,
load_comb_type=1,
comb_option="COMBINED",
fatigue=False,
scale_factors=[1, 0.8, 0.4, 0.4, 0.4, 0.4],
asl_data=[
0.5, # MULTIPLE_FACTOR
"HLP320", # VEHICLE_LOAD_NAME
"NONE", # VEHICLE_LOAD_NAME2
0, # MIN_LOADED_LANE
1, # MAX_LOADED_LANE
["L1", "L2"], # NA_LLAN_NAMES
[
["L1", "L1"], # STRAD_LLAN1_NAMES
["L2", "L2"] # STRAD_LLAN2_NAMES
]
]
)
# Example 2: General Load with Heavy Load Platform (load_model=2), 2 Lanes
MovingLoad.Case.Australia(
id=2,
name="C6",
case_type=0,
load_model=2,
load_comb_type=0,
comb_option="COMBINED",
fatigue=False,
scale_factors=[1, 0.8, 0.4, 0.4, 0.4, 0.4],
asl_data=[
0.5, # MULTIPLE_FACTOR
"HLP320", # VEHICLE_LOAD_NAME
"NONE", # VEHICLE_LOAD_NAME2
0, # MIN_LOADED_LANE
2, # MAX_LOADED_LANE
["L1", "L2", "L3"], # NA_LLAN_NAMES
[
["L1", "L2"], # STRAD_LLAN1_NAMES
["L3", "L3"] # STRAD_LLAN2_NAMES
]
]
)
# Create all defined cases in Midas Civil
MovingLoad.Case.create()
Russia
MovingLoad.Case.Russia(name, case_type, sub_loads=None, comb_option="COMB", load_comb_type=0, optimize_lane_name=None, min_vehl_dist=None, min_num_vehicle=None, max_num_vehicle=None, optimize_items=None, desc="", id=None)
Creates a moving load case according to Russian standards. Supports General Load and Moving Load Optimization.
Parameters
name(str): The name of the load case.case_type(int): Load type selector:0— General Load2— Moving Load Optimization
id(int, optional): A unique integer ID. Auto-assigned ifNone.comb_option(str, optional): Accepted values:"COMBINED"(or shorthand"COMB") and"INDEPENDENT"(or shorthand"INDE"). Defaults to"COMBINED".load_comb_type(int, optional): Load Combination Type (Limit State Group):0— Limit State Group I (default)1— Limit State Group I – Fatigue2— Limit State Group II
-
desc(str, optional): Description of the load case. -
General Load (
case_type=0)sub_loads(list): Each item is[vehicle_type, vehicle_name, scale_factor, min_loaded_lane, max_loaded_lane, [lane_names]].vehicle_type(str):"VL"for Vehicle Load,"VC"for Vehicle Class.
-
Moving Load Optimization (
case_type=2)optimize_lane_name(str): Target lane for optimization.min_vehl_dist(float): Minimum vehicle distance.min_num_vehicle(int): Minimum number of vehicles.max_num_vehicle(int): Maximum number of vehicles.optimize_items(list): Each item is[vehicle_type, vehicle_name, scale_factor].
Examples
# Set Russia standard
MovingLoad.Code("RUSSIA")
# Example 1: General Load Case (Independent, Limit State I-Fatigue)
MovingLoad.Case.Russia(
id=1,
name="C1",
case_type=0,
comb_option="INDEPENDENT",
load_comb_type=1,
sub_loads=[["VL", "AK", 1.0, 0, 1, ["L1"]]]
)
# Example 2: General Load Case (Combined, Limit State Group I)
MovingLoad.Case.Russia(
id=2,
name="C2",
case_type=0,
comb_option="COMBINED",
load_comb_type=0,
sub_loads=[["VL", "AK", 1.0, 0, 3, ["L1", "L2", "L3"]]]
)
# Example 3: General Load Case (Combined, Limit State Group II)
MovingLoad.Case.Russia(
id=3,
name="C3",
case_type=0,
comb_option="COMBINED",
load_comb_type=2,
sub_loads=[["VL", "Uniform Load", 1.0, 0, 1, ["L1"]]]
)
# Create all defined cases in Midas Civil
MovingLoad.Case.create()
Class Methods
create
Creates all defined moving load cases in the Midas Civil model.
# Define cases first
MovingLoad.Case.India(...)
MovingLoad.Case.Eurocode(...)
# Then create them in the model
MovingLoad.Case.create()
json
Returns a JSON representation of all defined load cases.
case_json = MovingLoad.Case.json()
print(case_json)
get
Retrieves all moving load case data from the current Midas Civil model.
case_data = MovingLoad.Case.get()
print(case_data)
sync
Synchronizes load cases from Midas Civil back to the Python script, overwriting any local definitions.
MovingLoad.Case.sync()
# See the synced cases
for case in MovingLoad.Case.cases:
print(f"Synced Case: {case.params['LCNAME']}")
delete
Deletes all moving load cases from the Midas Civil model.
MovingLoad.Case.delete()
Examples
Creating Indian Standard Cases
# Set Indian standards
MovingLoad.Code("INDIA")
# Example 1: General Load Case
MovingLoad.Case.India(
id=1,
name="General_IRC_Loading",
num_loaded_lanes=2,
opt_auto_ll=False,
sub_load_items=[
[1.0, 1, 2, "Class A", ["Lane1", "Lane2"]],
[0.8, 1, 1, "Class 70R", ["Lane1"]]
]
)
# Example 2: Auto Live Load Combination
MovingLoad.Case.India(
id=2,
name="Auto_Combination",
num_loaded_lanes=2,
opt_auto_ll=True,
sub_load_items=[
[1.0, "Class A", "Class B", "Footway", ["Lane1", "Lane2"], ["Footpath1"]]
]
)
# Example 3: Permit Vehicle Load
MovingLoad.Case.India(
id=3,
name="Permit_Vehicle_Case",
num_loaded_lanes=1,
opt_lc_for_permit=True,
permit_vehicle_id=5, # Assuming a permit vehicle with ID 5 exists
ref_lane_id=1, # Reference lane is Lane1
eccentricity=0.5,
permit_scale_factor=1.1
)
# Create all defined Indian cases in Midas Civil
MovingLoad.Case.create()
Creating Eurocode Standard Cases
# Set European standards
MovingLoad.Code("EUROCODE")
# Example 1: General Load, Load Model 1
MovingLoad.Case.Eurocode(
id=1,
name="EC_General_LM1",
load_model=1,
use_optimization=False,
sub_load_items=[
False, # opt_leading
"LM1_Vehicle", # vhl_name1
"", # vhl_name2
["Lane1"], # selected_lanes
["Lane2", "Lane3"], # remaining_area_lanes
["Footpath1"] # footway_lanes
]
)
# Example 2: General Load, Load Model 5 (Railway)
MovingLoad.Case.Eurocode(
id=2,
name="EC_Railway_LM5",
load_model=5,
use_optimization=False,
sub_load_items=[
False, # opt_psi_factor
0, # opt_comb
[0.8, 0.7, 0.6], # scale_factors
[1.0, 1.0, 0.75], # multi_presence_factors
[("LM71", 1.0, 1, 1, ["Track1"])] # sub_load_data_list
]
)
# Example 3: Moving Load Optimization, Load Model 3
MovingLoad.Case.Eurocode(
id=3,
name="EC_Optimized_LM3",
load_model=3,
use_optimization=True,
sub_load_items=[
True, # opt_leading
"SV196", # vhl_name1
"", # vhl_name2
15.0, # min_dist
"Lane2", # opt_lane
2, # loaded_lanes
["Lane1", "Lane2", "Lane3"] # selected_lanes
]
)
# Create all defined Eurocode cases in Midas Civil
MovingLoad.Case.create()