Mode Functions

This group of API functions are used to manipulate Modes – a combination of Sets and Variable Presets

CreateAndAddMode(name, normal_set, degen_set)

Create a Mode -- a combination of Sets and Variable Presets

GetNumModes()

Get number of Modes in model.

GetAllModes()

Get all ModeID's in model.

DelMode(mid)

Delete a mode from the model.

DelAllModes()

Delete all modes from the model.

GetModeName(mid)

Apply Parm settings corresponding to a Mode.

SetModeName(mid, name)

Set the name of a Mode.

ApplyModeSettings(mid)

Apply a mode's variable preset settings to the model.

ShowOnlyMode(mid)

Show-only a mode in a model.

ModeAddGroupSetting(mid, gid, sid)

Add a variable preset group and setting to a mode.

ModeGetGroup(mid, indx)

Get the group ID of var preset indx from a mode.

ModeGetSetting(mid, indx)

Get the setting ID of var preset indx from a mode.

ModeGetAllGroups(mid)

Get all var preset group IDs in model.

ModeGetAllSettings(mid)

Get all var preset setting IDs in model.

RemoveGroupSetting(mid, indx)

Remove the indx'th variable preset group and setting from the specified mode.

RemoveAllGroupSettings(mid)

Remove all variable preset groups and settings from mode.

Details

openvsp.CreateAndAddMode(name, normal_set, degen_set)[source]

Create a Mode – a combination of Sets and Variable Presets

# Illustrating use of Modes requires substantial setup of the model including components, sets, and variable presets.
#
# Setup boiler plate.
pod1 = AddGeom( "POD", "" )
wing = AddGeom( "WING", pod1 )

SetParmVal( wing, "Trans_Attach_Flag", "Attach", ATTACH_TRANS_LMN )
SetParmVal( wing, "L_Attach_Location", "Attach", 0.35 )

SetSetName( SET_FIRST_USER, "NonLifting" )
SetSetName( SET_FIRST_USER + 1, "Lifting" )

SetSetFlag( pod1, SET_FIRST_USER, True )
SetSetFlag( wing, SET_FIRST_USER + 1, True )


gid = AddVarPresetGroup( "Tess" )

p1 = FindParm( pod1, "Tess_U", "Shape" )
AddVarPresetParm( gid, p1 )

p2 = FindParm( pod1, "Tess_W", "Shape" )
AddVarPresetParm( gid, p2 )

sid = AddVarPresetSetting( gid, "Default" )
SaveVarPresetParmVals( gid, sid )

sid1 = AddVarPresetSetting( gid, "Coarse" )
SetVarPresetParmVal( gid, sid1, p1, 3 )
SetVarPresetParmVal( gid, sid1, p2, 5 )

sid2 = AddVarPresetSetting( gid, "Fine" )
SetVarPresetParmVal( gid, sid2, p1, 35 )
SetVarPresetParmVal( gid, sid2, p2, 21 )


gid2 = AddVarPresetGroup( "Design" )

p3 = FindParm( pod1, "Length", "Design" )
AddVarPresetParm( gid2, p3 )

p4 = FindParm( pod1, "FineRatio", "Design" )
AddVarPresetParm( gid2, p4 )

sid3 = AddVarPresetSetting( gid2, "Normal" )
SaveVarPresetParmVals( gid2, sid3 )

sid4 = AddVarPresetSetting( gid2, "ShortFat" )
SetVarPresetParmVal( gid2, sid4, p3, 3.0 )
SetVarPresetParmVal( gid2, sid4, p4, 5.0 )

sid5 = AddVarPresetSetting( gid2, "LongThin" )
SetVarPresetParmVal( gid2, sid5, p3, 20.0 )
SetVarPresetParmVal( gid2, sid5, p4, 35.0 )

# End of setup boiler plate.

mid1 = CreateAndAddMode( "FatWetAreas", SET_ALL, SET_NONE )
ModeAddGroupSetting( mid1, gid, sid1 )
ModeAddGroupSetting( mid1, gid2, sid4 )

mid2 = CreateAndAddMode( "ThinAero", SET_FIRST_USER, SET_FIRST_USER + 1 )
ModeAddGroupSetting( mid2, gid, sid2 )
ModeAddGroupSetting( mid2, gid2, sid5 )

ApplyModeSettings( mid2 )
Update()

assert len( mid1 ) > 0 and mid1 != "NONE", "CreateAndAddMode returned no id"
assert mid1 != mid2, "CreateAndAddMode reused an ID"
Parameters:
  • [in] – name string Name for new Mode

  • [in] – normal_set int Normal set for Mode

  • [in] – degen_set int Degen set for Mode

Return type:

string

Returns:

string Mode ID for new Mode

openvsp.GetNumModes()[source]

Get number of Modes in model.

# Illustrating use of Modes requires substantial setup of the model including components, sets, and variable presets.
#
# Setup boiler plate.
pod1 = AddGeom( "POD", "" )
wing = AddGeom( "WING", pod1 )

SetParmVal( wing, "Trans_Attach_Flag", "Attach", ATTACH_TRANS_LMN )
SetParmVal( wing, "L_Attach_Location", "Attach", 0.35 )

SetSetName( SET_FIRST_USER, "NonLifting" )
SetSetName( SET_FIRST_USER + 1, "Lifting" )

SetSetFlag( pod1, SET_FIRST_USER, True )
SetSetFlag( wing, SET_FIRST_USER + 1, True )


gid = AddVarPresetGroup( "Tess" )

p1 = FindParm( pod1, "Tess_U", "Shape" )
AddVarPresetParm( gid, p1 )

p2 = FindParm( pod1, "Tess_W", "Shape" )
AddVarPresetParm( gid, p2 )

sid = AddVarPresetSetting( gid, "Default" )
SaveVarPresetParmVals( gid, sid )

sid1 = AddVarPresetSetting( gid, "Coarse" )
SetVarPresetParmVal( gid, sid1, p1, 3 )
SetVarPresetParmVal( gid, sid1, p2, 5 )

sid2 = AddVarPresetSetting( gid, "Fine" )
SetVarPresetParmVal( gid, sid2, p1, 35 )
SetVarPresetParmVal( gid, sid2, p2, 21 )


gid2 = AddVarPresetGroup( "Design" )

p3 = FindParm( pod1, "Length", "Design" )
AddVarPresetParm( gid2, p3 )

p4 = FindParm( pod1, "FineRatio", "Design" )
AddVarPresetParm( gid2, p4 )

sid3 = AddVarPresetSetting( gid2, "Normal" )
SaveVarPresetParmVals( gid2, sid3 )

sid4 = AddVarPresetSetting( gid2, "ShortFat" )
SetVarPresetParmVal( gid2, sid4, p3, 3.0 )
SetVarPresetParmVal( gid2, sid4, p4, 5.0 )

sid5 = AddVarPresetSetting( gid2, "LongThin" )
SetVarPresetParmVal( gid2, sid5, p3, 20.0 )
SetVarPresetParmVal( gid2, sid5, p4, 35.0 )

# End of setup boiler plate.

mid1 = CreateAndAddMode( "FatWetAreas", SET_ALL, SET_NONE )
ModeAddGroupSetting( mid1, gid, sid1 )
ModeAddGroupSetting( mid1, gid2, sid4 )

mid2 = CreateAndAddMode( "ThinAero", SET_FIRST_USER, SET_FIRST_USER + 1 )
ModeAddGroupSetting( mid2, gid, sid2 )
ModeAddGroupSetting( mid2, gid2, sid5 )

ApplyModeSettings( mid2 )
Update()

nmod = GetNumModes()

assert nmod == 2, "GetNumModes, two were created"
Return type:

int

Returns:

int Number of Modes in model.

openvsp.GetAllModes()[source]

Get all ModeID’s in model.

# Illustrating use of Modes requires substantial setup of the model including components, sets, and variable presets.
#
# Setup boiler plate.
pod1 = AddGeom( "POD", "" )
wing = AddGeom( "WING", pod1 )

SetParmVal( wing, "Trans_Attach_Flag", "Attach", ATTACH_TRANS_LMN )
SetParmVal( wing, "L_Attach_Location", "Attach", 0.35 )

SetSetName( SET_FIRST_USER, "NonLifting" )
SetSetName( SET_FIRST_USER + 1, "Lifting" )

SetSetFlag( pod1, SET_FIRST_USER, True )
SetSetFlag( wing, SET_FIRST_USER + 1, True )


gid = AddVarPresetGroup( "Tess" )

p1 = FindParm( pod1, "Tess_U", "Shape" )
AddVarPresetParm( gid, p1 )

p2 = FindParm( pod1, "Tess_W", "Shape" )
AddVarPresetParm( gid, p2 )

sid = AddVarPresetSetting( gid, "Default" )
SaveVarPresetParmVals( gid, sid )

sid1 = AddVarPresetSetting( gid, "Coarse" )
SetVarPresetParmVal( gid, sid1, p1, 3 )
SetVarPresetParmVal( gid, sid1, p2, 5 )

sid2 = AddVarPresetSetting( gid, "Fine" )
SetVarPresetParmVal( gid, sid2, p1, 35 )
SetVarPresetParmVal( gid, sid2, p2, 21 )


gid2 = AddVarPresetGroup( "Design" )

p3 = FindParm( pod1, "Length", "Design" )
AddVarPresetParm( gid2, p3 )

p4 = FindParm( pod1, "FineRatio", "Design" )
AddVarPresetParm( gid2, p4 )

sid3 = AddVarPresetSetting( gid2, "Normal" )
SaveVarPresetParmVals( gid2, sid3 )

sid4 = AddVarPresetSetting( gid2, "ShortFat" )
SetVarPresetParmVal( gid2, sid4, p3, 3.0 )
SetVarPresetParmVal( gid2, sid4, p4, 5.0 )

sid5 = AddVarPresetSetting( gid2, "LongThin" )
SetVarPresetParmVal( gid2, sid5, p3, 20.0 )
SetVarPresetParmVal( gid2, sid5, p4, 35.0 )

# End of setup boiler plate.

mid1 = CreateAndAddMode( "FatWetAreas", SET_ALL, SET_NONE )
ModeAddGroupSetting( mid1, gid, sid1 )
ModeAddGroupSetting( mid1, gid2, sid4 )

mid2 = CreateAndAddMode( "ThinAero", SET_FIRST_USER, SET_FIRST_USER + 1 )
ModeAddGroupSetting( mid2, gid, sid2 )
ModeAddGroupSetting( mid2, gid2, sid5 )

ApplyModeSettings( mid2 )
Update()

modids = GetAllModes();
assert len( modids ) > 0, "GetAllModes returned nothing"
Return type:

std::vector< std::string,std::allocator< std::string > >

Returns:

array<string> array of Mode IDs

openvsp.DelMode(mid)[source]

Delete a mode from the model.

# Illustrating use of Modes requires substantial setup of the model including components, sets, and variable presets.
#
# Setup boiler plate.
pod1 = AddGeom( "POD", "" )
wing = AddGeom( "WING", pod1 )

SetParmVal( wing, "Trans_Attach_Flag", "Attach", ATTACH_TRANS_LMN )
SetParmVal( wing, "L_Attach_Location", "Attach", 0.35 )

SetSetName( SET_FIRST_USER, "NonLifting" )
SetSetName( SET_FIRST_USER + 1, "Lifting" )

SetSetFlag( pod1, SET_FIRST_USER, True )
SetSetFlag( wing, SET_FIRST_USER + 1, True )


gid = AddVarPresetGroup( "Tess" )

p1 = FindParm( pod1, "Tess_U", "Shape" )
AddVarPresetParm( gid, p1 )

p2 = FindParm( pod1, "Tess_W", "Shape" )
AddVarPresetParm( gid, p2 )

sid = AddVarPresetSetting( gid, "Default" )
SaveVarPresetParmVals( gid, sid )

sid1 = AddVarPresetSetting( gid, "Coarse" )
SetVarPresetParmVal( gid, sid1, p1, 3 )
SetVarPresetParmVal( gid, sid1, p2, 5 )

sid2 = AddVarPresetSetting( gid, "Fine" )
SetVarPresetParmVal( gid, sid2, p1, 35 )
SetVarPresetParmVal( gid, sid2, p2, 21 )


gid2 = AddVarPresetGroup( "Design" )

p3 = FindParm( pod1, "Length", "Design" )
AddVarPresetParm( gid2, p3 )

p4 = FindParm( pod1, "FineRatio", "Design" )
AddVarPresetParm( gid2, p4 )

sid3 = AddVarPresetSetting( gid2, "Normal" )
SaveVarPresetParmVals( gid2, sid3 )

sid4 = AddVarPresetSetting( gid2, "ShortFat" )
SetVarPresetParmVal( gid2, sid4, p3, 3.0 )
SetVarPresetParmVal( gid2, sid4, p4, 5.0 )

sid5 = AddVarPresetSetting( gid2, "LongThin" )
SetVarPresetParmVal( gid2, sid5, p3, 20.0 )
SetVarPresetParmVal( gid2, sid5, p4, 35.0 )

# End of setup boiler plate.

mid1 = CreateAndAddMode( "FatWetAreas", SET_ALL, SET_NONE )
ModeAddGroupSetting( mid1, gid, sid1 )
ModeAddGroupSetting( mid1, gid2, sid4 )

mid2 = CreateAndAddMode( "ThinAero", SET_FIRST_USER, SET_FIRST_USER + 1 )
ModeAddGroupSetting( mid2, gid, sid2 )
ModeAddGroupSetting( mid2, gid2, sid5 )

ApplyModeSettings( mid2 )
Update()

num_before_del = GetNumModes()
DelMode( mid1 )
assert GetNumModes() < num_before_del, "DelMode removed nothing"
Parameters:

[in] – mid string Mode ID of mode to delete

openvsp.DelAllModes()[source]

Delete all modes from the model.

# Illustrating use of Modes requires substantial setup of the model including components, sets, and variable presets.
#
# Setup boiler plate.
pod1 = AddGeom( "POD", "" )
wing = AddGeom( "WING", pod1 )

SetParmVal( wing, "Trans_Attach_Flag", "Attach", ATTACH_TRANS_LMN )
SetParmVal( wing, "L_Attach_Location", "Attach", 0.35 )

SetSetName( SET_FIRST_USER, "NonLifting" )
SetSetName( SET_FIRST_USER + 1, "Lifting" )

SetSetFlag( pod1, SET_FIRST_USER, True )
SetSetFlag( wing, SET_FIRST_USER + 1, True )


gid = AddVarPresetGroup( "Tess" )

p1 = FindParm( pod1, "Tess_U", "Shape" )
AddVarPresetParm( gid, p1 )

p2 = FindParm( pod1, "Tess_W", "Shape" )
AddVarPresetParm( gid, p2 )

sid = AddVarPresetSetting( gid, "Default" )
SaveVarPresetParmVals( gid, sid )

sid1 = AddVarPresetSetting( gid, "Coarse" )
SetVarPresetParmVal( gid, sid1, p1, 3 )
SetVarPresetParmVal( gid, sid1, p2, 5 )

sid2 = AddVarPresetSetting( gid, "Fine" )
SetVarPresetParmVal( gid, sid2, p1, 35 )
SetVarPresetParmVal( gid, sid2, p2, 21 )


gid2 = AddVarPresetGroup( "Design" )

p3 = FindParm( pod1, "Length", "Design" )
AddVarPresetParm( gid2, p3 )

p4 = FindParm( pod1, "FineRatio", "Design" )
AddVarPresetParm( gid2, p4 )

sid3 = AddVarPresetSetting( gid2, "Normal" )
SaveVarPresetParmVals( gid2, sid3 )

sid4 = AddVarPresetSetting( gid2, "ShortFat" )
SetVarPresetParmVal( gid2, sid4, p3, 3.0 )
SetVarPresetParmVal( gid2, sid4, p4, 5.0 )

sid5 = AddVarPresetSetting( gid2, "LongThin" )
SetVarPresetParmVal( gid2, sid5, p3, 20.0 )
SetVarPresetParmVal( gid2, sid5, p4, 35.0 )

# End of setup boiler plate.

mid1 = CreateAndAddMode( "FatWetAreas", SET_ALL, SET_NONE )
ModeAddGroupSetting( mid1, gid, sid1 )
ModeAddGroupSetting( mid1, gid2, sid4 )

mid2 = CreateAndAddMode( "ThinAero", SET_FIRST_USER, SET_FIRST_USER + 1 )
ModeAddGroupSetting( mid2, gid, sid2 )
ModeAddGroupSetting( mid2, gid2, sid5 )

ApplyModeSettings( mid2 )
Update()

DelAllModes()
assert GetNumModes() == 0, "DelAllModes left something behind"
openvsp.GetModeName(mid)[source]

Apply Parm settings corresponding to a Mode.

# Illustrating use of Modes requires substantial setup of the model including components, sets, and variable presets.
#
# Setup boiler plate.
pod1 = AddGeom( "POD", "" )
wing = AddGeom( "WING", pod1 )

SetParmVal( wing, "Trans_Attach_Flag", "Attach", ATTACH_TRANS_LMN )
SetParmVal( wing, "L_Attach_Location", "Attach", 0.35 )

SetSetName( SET_FIRST_USER, "NonLifting" )
SetSetName( SET_FIRST_USER + 1, "Lifting" )

SetSetFlag( pod1, SET_FIRST_USER, True )
SetSetFlag( wing, SET_FIRST_USER + 1, True )


gid = AddVarPresetGroup( "Tess" )

p1 = FindParm( pod1, "Tess_U", "Shape" )
AddVarPresetParm( gid, p1 )

p2 = FindParm( pod1, "Tess_W", "Shape" )
AddVarPresetParm( gid, p2 )

sid = AddVarPresetSetting( gid, "Default" )
SaveVarPresetParmVals( gid, sid )

sid1 = AddVarPresetSetting( gid, "Coarse" )
SetVarPresetParmVal( gid, sid1, p1, 3 )
SetVarPresetParmVal( gid, sid1, p2, 5 )

sid2 = AddVarPresetSetting( gid, "Fine" )
SetVarPresetParmVal( gid, sid2, p1, 35 )
SetVarPresetParmVal( gid, sid2, p2, 21 )


gid2 = AddVarPresetGroup( "Design" )

p3 = FindParm( pod1, "Length", "Design" )
AddVarPresetParm( gid2, p3 )

p4 = FindParm( pod1, "FineRatio", "Design" )
AddVarPresetParm( gid2, p4 )

sid3 = AddVarPresetSetting( gid2, "Normal" )
SaveVarPresetParmVals( gid2, sid3 )

sid4 = AddVarPresetSetting( gid2, "ShortFat" )
SetVarPresetParmVal( gid2, sid4, p3, 3.0 )
SetVarPresetParmVal( gid2, sid4, p4, 5.0 )

sid5 = AddVarPresetSetting( gid2, "LongThin" )
SetVarPresetParmVal( gid2, sid5, p3, 20.0 )
SetVarPresetParmVal( gid2, sid5, p4, 35.0 )

# End of setup boiler plate.

mid1 = CreateAndAddMode( "FatWetAreas", SET_ALL, SET_NONE )
ModeAddGroupSetting( mid1, gid, sid1 )
ModeAddGroupSetting( mid1, gid2, sid4 )

mid2 = CreateAndAddMode( "ThinAero", SET_FIRST_USER, SET_FIRST_USER + 1 )
ModeAddGroupSetting( mid2, gid, sid2 )
ModeAddGroupSetting( mid2, gid2, sid5 )

ApplyModeSettings( mid2 )
Update()

# Each Mode carries the pairings it was given, in order.
gids = ModeGetAllGroups( mid1 )
sids = ModeGetAllSettings( mid1 )

assert len( gids ) == 2 and gids[0] == gid and gids[1] == gid2, "the Mode did not record the pairings it was given"
assert len( sids ) == 2 and sids[0] == sid1 and sids[1] == sid4, "the Mode did not record the pairings it was given"
assert len( ModeGetAllGroups( mid2 ) ) == 2, "the second Mode did not record its pairings"

# ThinAero carries the Fine tessellation and the LongThin design, so applying
# it has to drive all four Parms to those stored values.
assert abs( GetParmVal( p1 ) - 35 ) < 1e-9, "the tessellation group was not applied"
assert abs( GetParmVal( p2 ) - 21 ) < 1e-9, "the tessellation group was not applied"
assert abs( GetParmVal( p3 ) - 20.0 ) < 1e-9, "the design group was not applied"
assert abs( GetParmVal( p4 ) - 35.0 ) < 1e-9, "the design group was not applied"

# The other Mode holds different values, so switching has to move them.
ApplyModeSettings( mid1 )
Update()

assert abs( GetParmVal( p1 ) - 3 ) < 1e-9, "switching Modes did not change the Parms"
assert abs( GetParmVal( p3 ) - 3.0 ) < 1e-9, "switching Modes did not change the Parms"
Parameters:

[in] – mid string Mode ID of mode to apply

Get the name of a Mode.

mid = CreateAndAddMode( "FatWetAreas", SET_ALL, SET_NONE )

assert GetModeName( mid ) == "FatWetAreas", "GetModeName did not report the name the Mode was created with"

# A Mode that does not exist has to be rejected.  The error queue is reached
# through the error manager singleton in Python.
err_mgr = ErrorMgrSingleton.getInstance()

GetModeName( "NOSUCHMODE" )

assert err_mgr.GetNumTotalErrors() > 0, "GetModeName accepted a bad Mode ID"

# That error was raised deliberately, so take it back off the queue.
while err_mgr.GetNumTotalErrors() > 0 :
    err = err_mgr.PopLastError()

See also: CreateAndAddMode, SetModeName :param [in]: mid string Mode ID :rtype: string :return: string Mode name

openvsp.SetModeName(mid, name)[source]

Set the name of a Mode.

mid = CreateAndAddMode( "FatWetAreas", SET_ALL, SET_NONE )

SetModeName( mid, "RenamedMode" )

assert GetModeName( mid ) == "RenamedMode", "SetModeName did not take"

# Renaming one Mode leaves the others alone.
mid2 = CreateAndAddMode( "ThinAero", SET_ALL, SET_NONE )

SetModeName( mid, "RenamedAgain" )

assert GetModeName( mid2 ) == "ThinAero", "renaming one Mode disturbed another"

See also: CreateAndAddMode, GetModeName :param [in]: mid string Mode ID :param [in]: name string Mode name

openvsp.ApplyModeSettings(mid)[source]

Apply a mode’s variable preset settings to the model.

mid = CreateAndAddMode( "TestMode", SET_ALL, SET_NONE )

ApplyModeSettings( mid )

See also: CreateAndAddMode :param [in]: mid string Mode ID

openvsp.ShowOnlyMode(mid)[source]

Show-only a mode in a model.

# Illustrating use of Modes requires substantial setup of the model including components, sets, and variable presets.
#
# Setup boiler plate.
pod1 = AddGeom( "POD", "" )
wing = AddGeom( "WING", pod1 )

SetParmVal( wing, "Trans_Attach_Flag", "Attach", ATTACH_TRANS_LMN )
SetParmVal( wing, "L_Attach_Location", "Attach", 0.35 )

SetSetName( SET_FIRST_USER, "NonLifting" )
SetSetName( SET_FIRST_USER + 1, "Lifting" )

SetSetFlag( pod1, SET_FIRST_USER, True )
SetSetFlag( wing, SET_FIRST_USER + 1, True )


gid = AddVarPresetGroup( "Tess" )

p1 = FindParm( pod1, "Tess_U", "Shape" )
AddVarPresetParm( gid, p1 )

p2 = FindParm( pod1, "Tess_W", "Shape" )
AddVarPresetParm( gid, p2 )

sid = AddVarPresetSetting( gid, "Default" )
SaveVarPresetParmVals( gid, sid )

sid1 = AddVarPresetSetting( gid, "Coarse" )
SetVarPresetParmVal( gid, sid1, p1, 3 )
SetVarPresetParmVal( gid, sid1, p2, 5 )

sid2 = AddVarPresetSetting( gid, "Fine" )
SetVarPresetParmVal( gid, sid2, p1, 35 )
SetVarPresetParmVal( gid, sid2, p2, 21 )


gid2 = AddVarPresetGroup( "Design" )

p3 = FindParm( pod1, "Length", "Design" )
AddVarPresetParm( gid2, p3 )

p4 = FindParm( pod1, "FineRatio", "Design" )
AddVarPresetParm( gid2, p4 )

sid3 = AddVarPresetSetting( gid2, "Normal" )
SaveVarPresetParmVals( gid2, sid3 )

sid4 = AddVarPresetSetting( gid2, "ShortFat" )
SetVarPresetParmVal( gid2, sid4, p3, 3.0 )
SetVarPresetParmVal( gid2, sid4, p4, 5.0 )

sid5 = AddVarPresetSetting( gid2, "LongThin" )
SetVarPresetParmVal( gid2, sid5, p3, 20.0 )
SetVarPresetParmVal( gid2, sid5, p4, 35.0 )

# End of setup boiler plate.

mid1 = CreateAndAddMode( "FatWetAreas", SET_ALL, SET_NONE )
ModeAddGroupSetting( mid1, gid, sid1 )
ModeAddGroupSetting( mid1, gid2, sid4 )

mid2 = CreateAndAddMode( "ThinAero", SET_FIRST_USER, SET_FIRST_USER + 1 )
ModeAddGroupSetting( mid2, gid, sid2 )
ModeAddGroupSetting( mid2, gid2, sid5 )

ApplyModeSettings( mid2 )
Update()

ShowOnlyMode( mid1 )

Update()

# FatWetAreas uses SET_ALL as its normal set, so both Geoms end up shown.
assert GetSetFlag( pod1, SET_SHOWN ), "ShowOnlyMode did not show the Mode's set"
assert GetSetFlag( wing, SET_SHOWN ), "ShowOnlyMode did not show the Mode's set"

# A Mode that does not exist has to be rejected.  The error queue is reached
# through the error manager singleton in Python.
err_mgr = ErrorMgrSingleton.getInstance()

ShowOnlyMode( "NOSUCHMODE" )

assert err_mgr.GetNumTotalErrors() > 0, "ShowOnlyMode accepted a bad Mode ID"

# That error was raised deliberately, so take it back off the queue.
while err_mgr.GetNumTotalErrors() > 0 :
    err = err_mgr.PopLastError()
Parameters:

[in] – mid string Mode ID of mode to show-only

openvsp.ModeAddGroupSetting(mid, gid, sid)[source]

Add a variable preset group and setting to a mode.

# Illustrating use of Modes requires substantial setup of the model including components, sets, and variable presets.
#
# Setup boiler plate.
pod1 = AddGeom( "POD", "" )
wing = AddGeom( "WING", pod1 )

SetParmVal( wing, "Trans_Attach_Flag", "Attach", ATTACH_TRANS_LMN )
SetParmVal( wing, "L_Attach_Location", "Attach", 0.35 )

SetSetName( SET_FIRST_USER, "NonLifting" )
SetSetName( SET_FIRST_USER + 1, "Lifting" )

SetSetFlag( pod1, SET_FIRST_USER, True )
SetSetFlag( wing, SET_FIRST_USER + 1, True )


gid = AddVarPresetGroup( "Tess" )

p1 = FindParm( pod1, "Tess_U", "Shape" )
AddVarPresetParm( gid, p1 )

p2 = FindParm( pod1, "Tess_W", "Shape" )
AddVarPresetParm( gid, p2 )

sid = AddVarPresetSetting( gid, "Default" )
SaveVarPresetParmVals( gid, sid )

sid1 = AddVarPresetSetting( gid, "Coarse" )
SetVarPresetParmVal( gid, sid1, p1, 3 )
SetVarPresetParmVal( gid, sid1, p2, 5 )

sid2 = AddVarPresetSetting( gid, "Fine" )
SetVarPresetParmVal( gid, sid2, p1, 35 )
SetVarPresetParmVal( gid, sid2, p2, 21 )


gid2 = AddVarPresetGroup( "Design" )

p3 = FindParm( pod1, "Length", "Design" )
AddVarPresetParm( gid2, p3 )

p4 = FindParm( pod1, "FineRatio", "Design" )
AddVarPresetParm( gid2, p4 )

sid3 = AddVarPresetSetting( gid2, "Normal" )
SaveVarPresetParmVals( gid2, sid3 )

sid4 = AddVarPresetSetting( gid2, "ShortFat" )
SetVarPresetParmVal( gid2, sid4, p3, 3.0 )
SetVarPresetParmVal( gid2, sid4, p4, 5.0 )

sid5 = AddVarPresetSetting( gid2, "LongThin" )
SetVarPresetParmVal( gid2, sid5, p3, 20.0 )
SetVarPresetParmVal( gid2, sid5, p4, 35.0 )

# End of setup boiler plate.

mid1 = CreateAndAddMode( "FatWetAreas", SET_ALL, SET_NONE )
ModeAddGroupSetting( mid1, gid, sid1 )
ModeAddGroupSetting( mid1, gid2, sid4 )

mid2 = CreateAndAddMode( "ThinAero", SET_FIRST_USER, SET_FIRST_USER + 1 )
ModeAddGroupSetting( mid2, gid, sid2 )
ModeAddGroupSetting( mid2, gid2, sid5 )

ApplyModeSettings( mid2 )
Update()

# Each Mode carries the pairings it was given, in order.
gids = ModeGetAllGroups( mid1 )
sids = ModeGetAllSettings( mid1 )

assert len( gids ) == 2 and gids[0] == gid and gids[1] == gid2, "the Mode did not record the pairings it was given"
assert len( sids ) == 2 and sids[0] == sid1 and sids[1] == sid4, "the Mode did not record the pairings it was given"
assert len( ModeGetAllGroups( mid2 ) ) == 2, "the second Mode did not record its pairings"

# ThinAero carries the Fine tessellation and the LongThin design, so applying
# it has to drive all four Parms to those stored values.
assert abs( GetParmVal( p1 ) - 35 ) < 1e-9, "the tessellation group was not applied"
assert abs( GetParmVal( p2 ) - 21 ) < 1e-9, "the tessellation group was not applied"
assert abs( GetParmVal( p3 ) - 20.0 ) < 1e-9, "the design group was not applied"
assert abs( GetParmVal( p4 ) - 35.0 ) < 1e-9, "the design group was not applied"

# The other Mode holds different values, so switching has to move them.
ApplyModeSettings( mid1 )
Update()

assert abs( GetParmVal( p1 ) - 3 ) < 1e-9, "switching Modes did not change the Parms"
assert abs( GetParmVal( p3 ) - 3.0 ) < 1e-9, "switching Modes did not change the Parms"
Parameters:
  • [in] – mid string Mode ID to add variable preset to

  • [in] – gid string Variable preset group ID to add to mode

  • [in] – sid string Variable preset setting ID to add to mode

openvsp.ModeGetGroup(mid, indx)[source]

Get the group ID of var preset indx from a mode.

# Illustrating use of Modes requires substantial setup of the model including components, sets, and variable presets.
#
# Setup boiler plate.
pod1 = AddGeom( "POD", "" )
wing = AddGeom( "WING", pod1 )

SetParmVal( wing, "Trans_Attach_Flag", "Attach", ATTACH_TRANS_LMN )
SetParmVal( wing, "L_Attach_Location", "Attach", 0.35 )

SetSetName( SET_FIRST_USER, "NonLifting" )
SetSetName( SET_FIRST_USER + 1, "Lifting" )

SetSetFlag( pod1, SET_FIRST_USER, True )
SetSetFlag( wing, SET_FIRST_USER + 1, True )


gid = AddVarPresetGroup( "Tess" )

p1 = FindParm( pod1, "Tess_U", "Shape" )
AddVarPresetParm( gid, p1 )

p2 = FindParm( pod1, "Tess_W", "Shape" )
AddVarPresetParm( gid, p2 )

sid = AddVarPresetSetting( gid, "Default" )
SaveVarPresetParmVals( gid, sid )

sid1 = AddVarPresetSetting( gid, "Coarse" )
SetVarPresetParmVal( gid, sid1, p1, 3 )
SetVarPresetParmVal( gid, sid1, p2, 5 )

sid2 = AddVarPresetSetting( gid, "Fine" )
SetVarPresetParmVal( gid, sid2, p1, 35 )
SetVarPresetParmVal( gid, sid2, p2, 21 )


gid2 = AddVarPresetGroup( "Design" )

p3 = FindParm( pod1, "Length", "Design" )
AddVarPresetParm( gid2, p3 )

p4 = FindParm( pod1, "FineRatio", "Design" )
AddVarPresetParm( gid2, p4 )

sid3 = AddVarPresetSetting( gid2, "Normal" )
SaveVarPresetParmVals( gid2, sid3 )

sid4 = AddVarPresetSetting( gid2, "ShortFat" )
SetVarPresetParmVal( gid2, sid4, p3, 3.0 )
SetVarPresetParmVal( gid2, sid4, p4, 5.0 )

sid5 = AddVarPresetSetting( gid2, "LongThin" )
SetVarPresetParmVal( gid2, sid5, p3, 20.0 )
SetVarPresetParmVal( gid2, sid5, p4, 35.0 )

# End of setup boiler plate.

mid1 = CreateAndAddMode( "FatWetAreas", SET_ALL, SET_NONE )
ModeAddGroupSetting( mid1, gid, sid1 )
ModeAddGroupSetting( mid1, gid2, sid4 )

mid2 = CreateAndAddMode( "ThinAero", SET_FIRST_USER, SET_FIRST_USER + 1 )
ModeAddGroupSetting( mid2, gid, sid2 )
ModeAddGroupSetting( mid2, gid2, sid5 )

ApplyModeSettings( mid2 )
Update()

gid3 = ModeGetGroup( mid1, 0 )
assert len( gid3 ) > 0, "ModeGetGroup returned no id"
Parameters:
  • [in] – mid string Mode ID to return GroupID

  • [in] – indx int Index of Variable preset to return GroupID

Return type:

string

Returns:

string Group ID for Mode Variable preset indx

openvsp.ModeGetSetting(mid, indx)[source]

Get the setting ID of var preset indx from a mode.

# Illustrating use of Modes requires substantial setup of the model including components, sets, and variable presets.
#
# Setup boiler plate.
pod1 = AddGeom( "POD", "" )
wing = AddGeom( "WING", pod1 )

SetParmVal( wing, "Trans_Attach_Flag", "Attach", ATTACH_TRANS_LMN )
SetParmVal( wing, "L_Attach_Location", "Attach", 0.35 )

SetSetName( SET_FIRST_USER, "NonLifting" )
SetSetName( SET_FIRST_USER + 1, "Lifting" )

SetSetFlag( pod1, SET_FIRST_USER, True )
SetSetFlag( wing, SET_FIRST_USER + 1, True )


gid = AddVarPresetGroup( "Tess" )

p1 = FindParm( pod1, "Tess_U", "Shape" )
AddVarPresetParm( gid, p1 )

p2 = FindParm( pod1, "Tess_W", "Shape" )
AddVarPresetParm( gid, p2 )

sid = AddVarPresetSetting( gid, "Default" )
SaveVarPresetParmVals( gid, sid )

sid1 = AddVarPresetSetting( gid, "Coarse" )
SetVarPresetParmVal( gid, sid1, p1, 3 )
SetVarPresetParmVal( gid, sid1, p2, 5 )

sid2 = AddVarPresetSetting( gid, "Fine" )
SetVarPresetParmVal( gid, sid2, p1, 35 )
SetVarPresetParmVal( gid, sid2, p2, 21 )


gid2 = AddVarPresetGroup( "Design" )

p3 = FindParm( pod1, "Length", "Design" )
AddVarPresetParm( gid2, p3 )

p4 = FindParm( pod1, "FineRatio", "Design" )
AddVarPresetParm( gid2, p4 )

sid3 = AddVarPresetSetting( gid2, "Normal" )
SaveVarPresetParmVals( gid2, sid3 )

sid4 = AddVarPresetSetting( gid2, "ShortFat" )
SetVarPresetParmVal( gid2, sid4, p3, 3.0 )
SetVarPresetParmVal( gid2, sid4, p4, 5.0 )

sid5 = AddVarPresetSetting( gid2, "LongThin" )
SetVarPresetParmVal( gid2, sid5, p3, 20.0 )
SetVarPresetParmVal( gid2, sid5, p4, 35.0 )

# End of setup boiler plate.

mid1 = CreateAndAddMode( "FatWetAreas", SET_ALL, SET_NONE )
ModeAddGroupSetting( mid1, gid, sid1 )
ModeAddGroupSetting( mid1, gid2, sid4 )

mid2 = CreateAndAddMode( "ThinAero", SET_FIRST_USER, SET_FIRST_USER + 1 )
ModeAddGroupSetting( mid2, gid, sid2 )
ModeAddGroupSetting( mid2, gid2, sid5 )

ApplyModeSettings( mid2 )
Update()

sid6 = ModeGetSetting( mid1, 0 )
assert len( sid6 ) > 0, "ModeGetSetting returned no id"
Parameters:
  • [in] – mid string Mode ID to return settingID

  • [in] – indx int Index of Variable preset to return SettingID

Return type:

string

Returns:

string Setting ID for Mode Variable preset indx

openvsp.ModeGetAllGroups(mid)[source]

Get all var preset group IDs in model.

# Illustrating use of Modes requires substantial setup of the model including components, sets, and variable presets.
#
# Setup boiler plate.
pod1 = AddGeom( "POD", "" )
wing = AddGeom( "WING", pod1 )

SetParmVal( wing, "Trans_Attach_Flag", "Attach", ATTACH_TRANS_LMN )
SetParmVal( wing, "L_Attach_Location", "Attach", 0.35 )

SetSetName( SET_FIRST_USER, "NonLifting" )
SetSetName( SET_FIRST_USER + 1, "Lifting" )

SetSetFlag( pod1, SET_FIRST_USER, True )
SetSetFlag( wing, SET_FIRST_USER + 1, True )


gid = AddVarPresetGroup( "Tess" )

p1 = FindParm( pod1, "Tess_U", "Shape" )
AddVarPresetParm( gid, p1 )

p2 = FindParm( pod1, "Tess_W", "Shape" )
AddVarPresetParm( gid, p2 )

sid = AddVarPresetSetting( gid, "Default" )
SaveVarPresetParmVals( gid, sid )

sid1 = AddVarPresetSetting( gid, "Coarse" )
SetVarPresetParmVal( gid, sid1, p1, 3 )
SetVarPresetParmVal( gid, sid1, p2, 5 )

sid2 = AddVarPresetSetting( gid, "Fine" )
SetVarPresetParmVal( gid, sid2, p1, 35 )
SetVarPresetParmVal( gid, sid2, p2, 21 )


gid2 = AddVarPresetGroup( "Design" )

p3 = FindParm( pod1, "Length", "Design" )
AddVarPresetParm( gid2, p3 )

p4 = FindParm( pod1, "FineRatio", "Design" )
AddVarPresetParm( gid2, p4 )

sid3 = AddVarPresetSetting( gid2, "Normal" )
SaveVarPresetParmVals( gid2, sid3 )

sid4 = AddVarPresetSetting( gid2, "ShortFat" )
SetVarPresetParmVal( gid2, sid4, p3, 3.0 )
SetVarPresetParmVal( gid2, sid4, p4, 5.0 )

sid5 = AddVarPresetSetting( gid2, "LongThin" )
SetVarPresetParmVal( gid2, sid5, p3, 20.0 )
SetVarPresetParmVal( gid2, sid5, p4, 35.0 )

# End of setup boiler plate.

mid1 = CreateAndAddMode( "FatWetAreas", SET_ALL, SET_NONE )
ModeAddGroupSetting( mid1, gid, sid1 )
ModeAddGroupSetting( mid1, gid2, sid4 )

mid2 = CreateAndAddMode( "ThinAero", SET_FIRST_USER, SET_FIRST_USER + 1 )
ModeAddGroupSetting( mid2, gid, sid2 )
ModeAddGroupSetting( mid2, gid2, sid5 )

ApplyModeSettings( mid2 )
Update()

gids = ModeGetAllGroups( mid1 )

# Two group settings were added to this Mode, in this order.
assert len( gids ) == 2, "ModeGetAllGroups did not report the groups that were added"
assert gids[0] == gid, "ModeGetAllGroups did not report the groups that were added"
assert gids[1] == gid2, "ModeGetAllGroups did not report the groups that were added"

# The groups and the settings line up one for one.
assert len( gids ) == len( ModeGetAllSettings( mid1 ) ), "ModeGetAllGroups disagrees with ModeGetAllSettings"
Parameters:

[in] – mid string Mode ID to return all group IDs

Return type:

std::vector< std::string,std::allocator< std::string > >

Returns:

array<string> array of Group IDs

openvsp.ModeGetAllSettings(mid)[source]

Get all var preset setting IDs in model.

# Illustrating use of Modes requires substantial setup of the model including components, sets, and variable presets.
#
# Setup boiler plate.
pod1 = AddGeom( "POD", "" )
wing = AddGeom( "WING", pod1 )

SetParmVal( wing, "Trans_Attach_Flag", "Attach", ATTACH_TRANS_LMN )
SetParmVal( wing, "L_Attach_Location", "Attach", 0.35 )

SetSetName( SET_FIRST_USER, "NonLifting" )
SetSetName( SET_FIRST_USER + 1, "Lifting" )

SetSetFlag( pod1, SET_FIRST_USER, True )
SetSetFlag( wing, SET_FIRST_USER + 1, True )


gid = AddVarPresetGroup( "Tess" )

p1 = FindParm( pod1, "Tess_U", "Shape" )
AddVarPresetParm( gid, p1 )

p2 = FindParm( pod1, "Tess_W", "Shape" )
AddVarPresetParm( gid, p2 )

sid = AddVarPresetSetting( gid, "Default" )
SaveVarPresetParmVals( gid, sid )

sid1 = AddVarPresetSetting( gid, "Coarse" )
SetVarPresetParmVal( gid, sid1, p1, 3 )
SetVarPresetParmVal( gid, sid1, p2, 5 )

sid2 = AddVarPresetSetting( gid, "Fine" )
SetVarPresetParmVal( gid, sid2, p1, 35 )
SetVarPresetParmVal( gid, sid2, p2, 21 )


gid2 = AddVarPresetGroup( "Design" )

p3 = FindParm( pod1, "Length", "Design" )
AddVarPresetParm( gid2, p3 )

p4 = FindParm( pod1, "FineRatio", "Design" )
AddVarPresetParm( gid2, p4 )

sid3 = AddVarPresetSetting( gid2, "Normal" )
SaveVarPresetParmVals( gid2, sid3 )

sid4 = AddVarPresetSetting( gid2, "ShortFat" )
SetVarPresetParmVal( gid2, sid4, p3, 3.0 )
SetVarPresetParmVal( gid2, sid4, p4, 5.0 )

sid5 = AddVarPresetSetting( gid2, "LongThin" )
SetVarPresetParmVal( gid2, sid5, p3, 20.0 )
SetVarPresetParmVal( gid2, sid5, p4, 35.0 )

# End of setup boiler plate.

mid1 = CreateAndAddMode( "FatWetAreas", SET_ALL, SET_NONE )
ModeAddGroupSetting( mid1, gid, sid1 )
ModeAddGroupSetting( mid1, gid2, sid4 )

mid2 = CreateAndAddMode( "ThinAero", SET_FIRST_USER, SET_FIRST_USER + 1 )
ModeAddGroupSetting( mid2, gid, sid2 )
ModeAddGroupSetting( mid2, gid2, sid5 )

ApplyModeSettings( mid2 )
Update()

sids = ModeGetAllSettings( mid1 )

# The settings come back paired with the groups they were added under.
assert len( sids ) == 2, "ModeGetAllSettings did not report the settings that were added"
assert sids[0] == sid1, "ModeGetAllSettings did not report the settings that were added"
assert sids[1] == sid4, "ModeGetAllSettings did not report the settings that were added"
Parameters:

[in] – mid string Mode ID to return all group IDs

Return type:

std::vector< std::string,std::allocator< std::string > >

Returns:

array<string> array of Group IDs

openvsp.RemoveGroupSetting(mid, indx)[source]

Remove the indx’th variable preset group and setting from the specified mode.

# Illustrating use of Modes requires substantial setup of the model including components, sets, and variable presets.
#
# Setup boiler plate.
pod1 = AddGeom( "POD", "" )
wing = AddGeom( "WING", pod1 )

SetParmVal( wing, "Trans_Attach_Flag", "Attach", ATTACH_TRANS_LMN )
SetParmVal( wing, "L_Attach_Location", "Attach", 0.35 )

SetSetName( SET_FIRST_USER, "NonLifting" )
SetSetName( SET_FIRST_USER + 1, "Lifting" )

SetSetFlag( pod1, SET_FIRST_USER, True )
SetSetFlag( wing, SET_FIRST_USER + 1, True )


gid = AddVarPresetGroup( "Tess" )

p1 = FindParm( pod1, "Tess_U", "Shape" )
AddVarPresetParm( gid, p1 )

p2 = FindParm( pod1, "Tess_W", "Shape" )
AddVarPresetParm( gid, p2 )

sid = AddVarPresetSetting( gid, "Default" )
SaveVarPresetParmVals( gid, sid )

sid1 = AddVarPresetSetting( gid, "Coarse" )
SetVarPresetParmVal( gid, sid1, p1, 3 )
SetVarPresetParmVal( gid, sid1, p2, 5 )

sid2 = AddVarPresetSetting( gid, "Fine" )
SetVarPresetParmVal( gid, sid2, p1, 35 )
SetVarPresetParmVal( gid, sid2, p2, 21 )


gid2 = AddVarPresetGroup( "Design" )

p3 = FindParm( pod1, "Length", "Design" )
AddVarPresetParm( gid2, p3 )

p4 = FindParm( pod1, "FineRatio", "Design" )
AddVarPresetParm( gid2, p4 )

sid3 = AddVarPresetSetting( gid2, "Normal" )
SaveVarPresetParmVals( gid2, sid3 )

sid4 = AddVarPresetSetting( gid2, "ShortFat" )
SetVarPresetParmVal( gid2, sid4, p3, 3.0 )
SetVarPresetParmVal( gid2, sid4, p4, 5.0 )

sid5 = AddVarPresetSetting( gid2, "LongThin" )
SetVarPresetParmVal( gid2, sid5, p3, 20.0 )
SetVarPresetParmVal( gid2, sid5, p4, 35.0 )

# End of setup boiler plate.

mid1 = CreateAndAddMode( "FatWetAreas", SET_ALL, SET_NONE )
ModeAddGroupSetting( mid1, gid, sid1 )
ModeAddGroupSetting( mid1, gid2, sid4 )

mid2 = CreateAndAddMode( "ThinAero", SET_FIRST_USER, SET_FIRST_USER + 1 )
ModeAddGroupSetting( mid2, gid, sid2 )
ModeAddGroupSetting( mid2, gid2, sid5 )

ApplyModeSettings( mid2 )
Update()

RemoveGroupSetting( mid1, 0 )

# Only the indexed pairing goes; the other one stays and slides down.
gids = ModeGetAllGroups( mid1 )
sids = ModeGetAllSettings( mid1 )

assert len( gids ) == 1 and gids[0] == gid2, "RemoveGroupSetting removed the wrong pairing"
assert len( sids ) == 1 and sids[0] == sid4, "RemoveGroupSetting removed the wrong pairing"
Parameters:
  • [in] – mid string Mode ID to remove varible preset group and setting from

  • [in] – indx int Index of Variable preset to remove

openvsp.RemoveAllGroupSettings(mid)[source]

Remove all variable preset groups and settings from mode.

# Illustrating use of Modes requires substantial setup of the model including components, sets, and variable presets.
#
# Setup boiler plate.
pod1 = AddGeom( "POD", "" )
wing = AddGeom( "WING", pod1 )

SetParmVal( wing, "Trans_Attach_Flag", "Attach", ATTACH_TRANS_LMN )
SetParmVal( wing, "L_Attach_Location", "Attach", 0.35 )

SetSetName( SET_FIRST_USER, "NonLifting" )
SetSetName( SET_FIRST_USER + 1, "Lifting" )

SetSetFlag( pod1, SET_FIRST_USER, True )
SetSetFlag( wing, SET_FIRST_USER + 1, True )


gid = AddVarPresetGroup( "Tess" )

p1 = FindParm( pod1, "Tess_U", "Shape" )
AddVarPresetParm( gid, p1 )

p2 = FindParm( pod1, "Tess_W", "Shape" )
AddVarPresetParm( gid, p2 )

sid = AddVarPresetSetting( gid, "Default" )
SaveVarPresetParmVals( gid, sid )

sid1 = AddVarPresetSetting( gid, "Coarse" )
SetVarPresetParmVal( gid, sid1, p1, 3 )
SetVarPresetParmVal( gid, sid1, p2, 5 )

sid2 = AddVarPresetSetting( gid, "Fine" )
SetVarPresetParmVal( gid, sid2, p1, 35 )
SetVarPresetParmVal( gid, sid2, p2, 21 )


gid2 = AddVarPresetGroup( "Design" )

p3 = FindParm( pod1, "Length", "Design" )
AddVarPresetParm( gid2, p3 )

p4 = FindParm( pod1, "FineRatio", "Design" )
AddVarPresetParm( gid2, p4 )

sid3 = AddVarPresetSetting( gid2, "Normal" )
SaveVarPresetParmVals( gid2, sid3 )

sid4 = AddVarPresetSetting( gid2, "ShortFat" )
SetVarPresetParmVal( gid2, sid4, p3, 3.0 )
SetVarPresetParmVal( gid2, sid4, p4, 5.0 )

sid5 = AddVarPresetSetting( gid2, "LongThin" )
SetVarPresetParmVal( gid2, sid5, p3, 20.0 )
SetVarPresetParmVal( gid2, sid5, p4, 35.0 )

# End of setup boiler plate.

mid1 = CreateAndAddMode( "FatWetAreas", SET_ALL, SET_NONE )
ModeAddGroupSetting( mid1, gid, sid1 )
ModeAddGroupSetting( mid1, gid2, sid4 )

mid2 = CreateAndAddMode( "ThinAero", SET_FIRST_USER, SET_FIRST_USER + 1 )
ModeAddGroupSetting( mid2, gid, sid2 )
ModeAddGroupSetting( mid2, gid2, sid5 )

ApplyModeSettings( mid2 )
Update()

RemoveAllGroupSettings( mid1 )

# Every pairing on this Mode goes, and the other Mode is left alone.
assert len( ModeGetAllGroups( mid1 ) ) == 0, "RemoveAllGroupSettings left pairings behind"
assert len( ModeGetAllSettings( mid1 ) ) == 0, "RemoveAllGroupSettings left pairings behind"
assert len( ModeGetAllGroups( mid2 ) ) == 2, "RemoveAllGroupSettings reached the other Mode"
Parameters:

[in] – mid string Mode ID to remove all variable presets from