RemoveItems (XSICollection)

Description

Removes one or more items to the collection. Compare this method to XSICollection.Remove, which only removes a single item at a time and XSICollection.RemoveAll which empties the collection completely.

Scripting Syntax

XSICollection.RemoveItems( Items )

C# Syntax

Object XSICollection.RemoveItems( Object in_newVal );

Parameters

Parameter

Type

Description

Items

XSICollection, Array or object name

The items to remove.

Return Value

The removed items as an XSICollection.

Examples

1. VBScript Example

Dim oColl1 ' object pointer for first collection
Dim oColl2 ' object pointer for second collection
Dim aItems ' array of items to add all at once

' Create the first collection & populate it 
Set oColl1 = CreateObject( "XSI.Collection" )
oColl1.SetAsText "Camera,Light"
checkContents oColl1

' Create the second collection & populate it 
LogMessage "----------------"
Set oColl2 = CreateObject( "XSI.Collection" )
oColl2.AddItems oColl1

' Since the Unique property hasn't been set to True, we can 
' add another instance of the camera to the collection
oColl2.Add "Camera"
checkContents oColl2

' Remove the light and one instance of the camera
LogMessage "----------------"
oColl2.RemoveItems oColl1
checkContents oColl2


'--------------------------------------------------
function checkContents( in_coll )
   If in_coll.Count > 0 Then
       LogMessage "Collection now contains " & in_coll.GetAsText 
   Else
       LogMessage "Collection is empty."
   End If
end function


'--------------------------------------------------
' Output of above script:
'INFO : "Collection now contains Camera,light"
'INFO : "----------------"
'INFO : "Collection now contains Camera,light,Camera"
'INFO : "----------------"
'INFO : "Collection now contains Camera"

2. JScript Example

/*
   This example demonstrates how to split a collection into 2
*/

NewScene( null, false );

// ----------------------------------------------------
// Create a collection & populate it
var oFolks = new ActiveXObject( "XSI.Collection" );

var oSammy = ActiveSceneRoot.AddNull( "Sammy" );
oFolks.Add( oSammy );

var oRoger = ActiveSceneRoot.AddNull( "Roger" );
oFolks.Add( oRoger );

var oBelinda = ActiveSceneRoot.AddNull( "Belinda" );
oFolks.Add( oBelinda );

var oAgnes = ActiveSceneRoot.AddNull( "Agnes" );
oFolks.Add( oAgnes );

// This will tell us that Sammy, Roger, Belinda, and Agnes
// are all members of the folks collection
checkContents( oFolks, "oFolks" );


Application.LogMessage( "----------------" );


// ----------------------------------------------------
// Remove Sammy and Roger and save the removed ones
// in another collection, leaving the original with the
// two women and the new collection with two men
var oMen = oFolks.RemoveItems( "Sammy,Roger" );

checkContents( oFolks, "oFolks" );
checkContents( oMen, "oMen" );


//--------------------------------------------------
function checkContents( in_coll, in_id )
{
   if ( in_coll.Count > 0 )
   {
       LogMessage( in_id + " collection contains: " + in_coll.GetAsText() );
   }
   else
   {
       Application.LogMessage( in_id + " collection is empty." );
   }
}


//--------------------------------------------------
// Output of above script:
//INFO : "oFolks collection contains: Sammy,Roger,Belinda,Agnes"
//INFO : "----------------"
//INFO : "oFolks collection contains: Belinda,Agnes"
//INFO : "oMen collection contains: Sammy,Roger"

See Also

XSICollection.Unique

XSICollection.Remove

XSICollection.RemoveAll



Autodesk Softimage v7.5