X3DObjectCollection.Find

Description

Returns the first member of this collection that matches the type criteria. If no item is found, it returns "Nothing", which you can use to trap errors.

Scripting Syntax

oReturn = X3DObjectCollection.Find( [Type] );

Return Value

X3DObject

Parameters

Parameter Type Description
Type siType The type of object to look for defined by siType or an empty string if the type is not required. The type can be a specific X3DObject type such as siModelType and si3DObjectType or a primitive type such as siPolyMeshType or siSrfMeshPrimType. If a primitive type is supplied, the function returns the first child object defined with a primitive of this type.

Possible Values:

Description:

siPolyMeshType Polygon Mesh type
si3DObjectType 3D Object type
siArcPrimType Implicit Arc Primitive type
siAttractorCtrlType Attractor Control Object type (electric force)
siCameraPrimType Camera Primitive type
siCameraRootPrimType Camera Root primitive type
siChainBonePrimType Chain Bone Primitive type
siChainEffPrimType Chain End Effector Primitive type
siChainRootPrimType Chain Root Primitive type
siCirclePrimType Implicit Circle Primitive type
siCloudPrimType Cloud Primitive type
siConePrimType Cone Primitive type
siCrvListAggregatePrimType NURBS Curve List Aggregate Primitive type
siCrvListPrimType NURBS Curve List Primitive type
siCubePrimType Cube Primitive type
siCylinderPrimType Cylinder Primitive type
siDiscPrimType Disc Primitive type
siDodecahedronPrimType Dodecahedron Primitive type
siDragCtrlPrimType Drag Control Primitive type
siEddyCtrlPrimType Eddy Control Primitive type
siFanType Fan Force Object type
siFurPrimType Fur Primitive type
siGeoShaderPrimType GeoShader Primitive Type
siGravityCtrlType Gravity Force Control Object type
siGridPrimType Grid Primitive type
siIcosahedronPrimType Icosahedron Primitive type
siLatticePrimType Lattice Primitive type
siLightPrimType Light Primitive type
siModelNullPrimType Model Null Primitive type
siModelType 3D Model type
siNullPrimType Null Primitive type
siOctahedronPrimType Octahedron Primitive type
siSpherePrimType Sphere Primitive type
siSpiralPrimType Implicit Spiral Primitive type
siSpotInterestPrimType Spot Interest Primitive type
siSpotRootPrimType Spot Root Primitive type
siSquarePrimType Implicit Square Primitive type
siSrfMeshPrimType NURBS Surface Mesh Primitive type
siTetrahedronPrimType Tetrahedron Primitive type
siTorusPrimType Torus Primitive type
siTurbulenceCtrlPrimType Turbulence Control Primitive type
siVolumeDeformType Volume Deform type (implicit sphere volume)
siVortexCtrlType Vortex Control Object type (magnetic force)
siWaveCtrlType Wave Control Object type
siWindType Wind Force Object type

Examples

VBScript Example

'VBScript example
' Set up the example using a mesh grid, cube, cone, and a nurbs cube:
set oRoot = activesceneroot
oRoot.addgeometry "grid", "meshsurface"
oRoot.addgeometry "cube", "meshsurface"
oRoot.addgeometry "cone", "meshsurface"
oRoot.addgeometry "cube", "nurbssurface"
set oGeoms = oRoot.findchildren( ,,siGeometryFamily)
logmessage "The collection of geometry from the root is a " & typename( oGeoms ) 
logmessage "There are " & oGeoms.count & " geometry objects under the root." 
logmessage ""
for each item in oGeoms
        logmessage item.name & " is a " & item.type & " " & typename( item )
next
set oCone = oGeoms.find( "cone" )
set oCube = oGeoms.find( "cube" )
set oGrid = oGeoms.find( "grid" )
logmessage ""
logmessage "=========================================================================="
logmessage " Stats for the collection:"
logmessage " ------------------------"
logmessage "    Total number of objects in collection: " & oGeoms.count
logmessage "    Name of the first cone in the collection: " & oCone.name
logmessage "    Name of the first cube in the collection: " & oCube.name
' Try some error trapping ( if you are trying to use a find criteria that returns Nothing, 
' you will see this error message: 'ERROR : "Object required: 'oCube1'" )
set oCube1 = oGeoms.find( "cube1" )
if typename( oCube1 ) = "Nothing" then
        logmessage "    Can't get the name of the other cube in the collection."
else 
        logmessage "    Name of the other cube in the collection: " & oCube1.name
end if
logmessage "    Name of the first grid in the collection: " & oGrid.name
' Output of above script is:
'INFO : "The collection of geometry from the root is a X3DObjectCollection"
'INFO : "There are 4 geometry objects under the root."
'INFO : ""
'INFO : "grid is a polymsh X3DObject"
'INFO : "cube is a polymsh X3DObject"
'INFO : "cone is a polymsh X3DObject"
'INFO : "cube1 is a surfmsh X3DObject"
'INFO : ""
'INFO : "=========================================================================="
'INFO : " Stats for the collection:"
'INFO : " ------------------------"
'INFO : "       Total number of objects in collection: 4"
'INFO : "       Name of the first cone in the collection: cone"
'INFO : "       Name of the first cube in the collection: cube"
'INFO : "       Can't get the name of the other cube in the collection."
'INFO : "       Name of the first grid in the collection: grid"