## Geometry.CreateSubComponent

### Description

Creates a SubComponent object containing the subelements of the Geometry matching the specified indices. If you don't specify indices, an empty SubComponent object is created.

### C# Syntax

    SubComponent Geometry.CreateSubComponent( String in_Type, Object in_Indices );

### Scripting Syntax

    oReturn = Geometry.CreateSubComponent( Type, [Indices] );

### Return Value

SubComponent

### Parameters

Parameter | Type | Description
--- | --- | ---
Type | ClusterTypes | The cluster type is used to identify the SubComponent type.
Indices | Array | A 1D array containing indices to the subcomponent of the geometry.

### Examples

#### VBScript Example

    set oObject = Application.ActiveProject.ActiveScene.root.AddGeometry("Cube","MeshSurface","MyCube")

    myVertexArray = Array(2,3,34,56)

    FindInvalidSubComponentIndex siVertexCluster, myVertexArray, oObject

    ' Procedure that, given an object, an array of indices and a cluster type, displays invalid

    ' indices in the array.

    Sub FindInvalidSubComponentIndex( in_ClusterType, in_IndexArray, in_Object)

    	Dim l_invalidIndexArray, l_validArray, l_subComponent, l_bNotFound

    	set l_subComponent = oObject.ActivePrimitive.Geometry.CreateSubComponent(in_ClusterType, in_IndexArray)

    	l_validArray = l_subComponent.ElementArray

    	for i = lbound(in_IndexArray) to ubound(in_IndexArray)

    		l_bNotFound = TRUE

    		for j = lbound(l_validArray) to ubound(l_validArray)

    			if in_IndexArray(i) = l_validArray(j) then

    				l_bNotFound = FALSE

    				Exit For

    			end if

    		next

    		if l_bNotFound then

    			Application.LogMessage in_IndexArray(i)

    		end if

    	next

    End Sub

### See Also

ClusterTypes