## RemoveRefModelResolution

### Introduced

v6.0

### Description

Removes a resolution to a referenced Model. A referenced model can have an unlimited number of resolutions. Each resolution has a name and a file.
Warning: If you try to remove the active resolution, the command raises an Invalid Argument error. You can activate a different resolution via the "Active Resolution" parameter on the referenced model.

### Scripting Syntax

    RemoveRefModelResolution( Model, ResolutionName, [Confirm] );

### Parameters

Parameter | Type | Description
--- | --- | ---
Model | String | The model containing the resolution you want to remove. Default Value: Current selection
ResolutionName | String | The name of the resolution.
Confirm | Boolean | This argument will indicate if you want to get a confirmation message before continuing with the resolution. This can be useful when writing scripts in order to avoid stopping the script. Default Value: False

### Examples

#### VBScript Example

    '
    '       This example illustrates how to add and remove resolutions on a reference model. It also demonstrates
    '       how to navigate through the resolution information on a reference model (see the convenience functions
    '       at the bottom of the example, especially GetAllResolutions).
    '
    ' Import a referenced model.
    NewScene , false
    sModelPath =  XSIUtils.BuildPath( Application.InstallationPath(siFactoryPath), _
            "Data", "XSI_SAMPLES", "Models", "ManSkeleton_Basic.emdl" )
    ImportModel sModelPath, , true
    ' Add a new resolution
    set oRefModel = Application.ActiveSceneRoot.Models.Item(0)
    AddRefModelResolution oRefModel, "MyRes", sModelPath
    ' Now remove the original resolution
    iTargetRes = GetResolutionIndexByName( oRefModel, "res1" )
    if iTargetRes > -1 then
            iCurrentRes = oRefModel.NestedObjects("Active Resolution").Value
            if iCurrentRes = iTargetRes then
                    ' Change the active resolution to the new one and remove the original
                    oRefModel.NestedObjects("Active Resolution").Value = iTargetRes + 1
                    RemoveRefModelResolution oRefModel, "res1", true
            end if
            ' Display again the resolutions
            LogResolutions oRefModel
    end if
    ' Expected results:
    ' INFO : res0
    ' INFO :     file =
    ' INFO :     name =  Offloaded
    ' INFO : res1
    ' INFO :     file =  Models\ManSkeleton_Basic.emdl
    ' INFO :     name =  res1
    ' INFO : res2
    ' INFO :     file =  Models\ManSkeleton_Basic.emdl
    ' INFO :     name =  MyRes
    ' INFO : res0
    ' INFO :     file =
    ' INFO :     name =  Offloaded
    ' INFO : res1
    ' INFO :     file =  Models\ManSkeleton_Basic.emdl
    ' INFO :     name =  MyRes
    '
    '       These are convenience functions that do most of the work of navigating through
    '       the resolutions information nested under each reference model. The resolutions
    '       info is never displayed in the UI, but you can think of its structure like so:
    '
    '               ReferenceModel (model)
    '                       - Resolutions (special container)
    '                               - res0 (compound parameter)
    '                                       - File parameter (eg., "<installationpath>/Data/XSI_SAMPLES/Models/ManSkeleton_Basic.emdl")
    '                                       - Name parameter (eg., "MyRes")
    '                               + res1
    '                                 ...
    '                               + resN
    '
    '       In order to access this info you need to use the SIObject.NestedObjects property
    '       on the ReferenceModel, the Resolutions container, and then each resolution parameter.
    '
    function GetAllResolutions( in_oRefModel )
            for each oCurrentContainer in in_oRefModel.NestedObjects
                    if oCurrentContainer.Name = "Resolutions" then
                            set GetAllResolutions = oCurrentContainer.NestedObjects
                            exit function
                    end if
            next
    end function
    '
    '       Logs the file and name values of each resolution to history
    '
    sub LogResolutions( in_oRefModel )
            ' Visit each resolution and find its name and file info
            set oResolutions = GetAllResolutions( in_oRefModel )
            for each oResolutionParameter in oResolutions
                    Application.LogMessage oResolutionParameter.Name
                    ' The file and name parameters are nested under the compound resolution parameter
                    for each oResInfoParam in oResolutionParameter.NestedObjects
                            Application.LogMessage "    " & oResInfoParam.Name & " =  " & oResInfoParam.Value
                    next
            next
    end sub
    '
    '       Returns the index number of the resolution given its name
    '
    function GetResolutionIndexByName( in_oModel, in_sResName )
            ' Visit each resolution and check its name against the specified name
            set oResolutions = GetAllResolutions( in_oModel )
            for i=0 to oResolutions.Count
                    set oResolutionParameter = oResolutions(i)
                    if oResolutionParameter.NestedObjects("name").Value = in_sResName then
                            GetResolutionIndexByName = i
                            exit function
                    end if
            next
            ' If not found, return a negative value
            GetResolutionIndexByName = -1
    end function

### See Also

AddRefModelResolution