## 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