## X3DObject

Object Hierarchy | Related C++ Class: X3DObject

### Inheritance

SIObject

ProjectItem

SceneItem

X3DObject

### Introduced

v1.0

### Description

The X3DObject object represents a 3D-object inside the active Scene.
An X3DObject can have other X3DObjects nested beneath it as "children". This parent/child relationship does not imply any relationship of the objects' positions in physical space, but instead establishes a logical hierarchy. For example a skeleton is made up of a hierarchy of ChainRoot, ChainBone and ChainEffector X3DObjects. The Scene Explorer view shows this hierarchy. The top node of this tree is the Scene Root, which is a Model, and hence an X3DObject itself. X3DObject.Children and SIObject.Parent are available for navigating through this tree.
There are several methods that can be used to create the different kinds of X3DObject objects. These generally begin with "Add"; for example, the X3DObject.AddGeometry method creates the specified kind of geometry and parents it under the current X3DObject. For a complete list, see the Methods table below.
An X3DObject is not a monolithic object. Instead its state is represented by a hierarchy of nested objects. Most of these nested objects are Property objects. For example the position and other transformation information is available from the Kinematics property. The Material used by the object also appears as a property.
Polygon Meshes and other X3DObjects with a shape have a nested Geometry object which is accessible via X3DObject.ActivePrimitive.Geometry. The Geometry in turn could potentially have Clusters and ClusterProperty objects.

### Methods

Add2DChain | Add3DChain | AddAnnotation | AddCamera
AddCameraRig | AddChild | AddControl | AddCustomOp
AddCustomProperty | AddFxTree | AddGeometry | AddICEAttribute
AddLattice | AddLight | AddLightRig | AddMaterial
AddModel | AddNull | AddNurbsCurve | AddNurbsCurveList
AddNurbsCurveList2 | AddNurbsSurface | AddNurbsSurfaceMesh | AddNurbsSurfaceMesh2
AddPolygonMesh | AddPrimitive | AddProperty | AddScriptedOp
AddScriptedOpFromFile | AnimatedParameters2 | ApplyEnvelope | BelongsTo
EvaluateAt | FindChild | FindChild2 | FindChildren
FindChildren2 | GetActivePrimitive2 | GetActivePrimitive3 | GetBoundingBox
GetICEAttributeFromName | GetLocalPropertyFromName | GetLocalPropertyFromName2 | GetModels2
GetPropertyFromName | GetPropertyFromName2 | GetStaticKinematicState | HasStaticKinematicState
IsA | IsAnimated2 | IsClassOf | IsEqualTo
IsKindOf | IsLocked | IsNodeAnimated | IsSelected
LockOwners | NodeAnimatedParameters | RemoveChild | RemoveFromParent
RemoveICEAttribute | SetAsSelected | SetCapabilityFlag | SetLock
SetMaterial | ShapeAnimatedClusters | TaggedParameters | UnSetLock

### Properties

ActivePrimitive | Application | BranchFlag | Capabilities
Categories | Children | Envelopes | EvaluationID
Families | FullName | Help | HierarchicalEvaluationID
ICEAttributes | Kinematics | LocalProperties | LocalRotation
LocalScaling | LocalTranslation | LockLevel | LockMasters
LockType | Material | Materials | Model
Models | Name | NestedObjects | ObjectID
Origin | OriginPath | Owners | PPGLayout
Parameters | Parent | Parent3DObject | Primitives
Properties | Selected | Type |

### Examples

#### 1. JScript Example

    var x3dObj, x3dObjSphere;
    x3dObj = Application.ActiveSceneRoot;
    x3dObjSphere = x3dObj.AddGeometry( "Sphere", "MeshSurface", "MySphere" );
    Application.LogMessage( "Sphere object's name: " + x3dObjSphere.Name ) ;
    // Expected output:
    //INFO : Sphere object's name: MySphere

#### 2. Python Example

    x3dObj = Application.ActiveSceneRoot
    x3dObjSphere = x3dObj.AddGeometry( "Sphere", "MeshSurface" )
    Application.LogMessage( "Sphere object's name: " + x3dObjSphere.Name )
    # Expected output:
    #INFO : Sphere object's name: MySphere

#### 3. VBScript Example

    dim x3dObj, x3dObjSphere
    set x3dObj = Application.ActiveSceneRoot
    set x3dObjSphere = x3dObj.AddGeometry( "Sphere", "MeshSurface" )
    Application.LogMessage "Sphere object's name: " & x3dObjSphere.Name
    ' Expected output:
    'INFO : Sphere object's name: MySphere