Returns the parent (any object that derives from SIObject) of the object as follows:
If you call the Parent property on the scene root (Model), it returns itself.
If you call the Parent property on any other X3DObject, it returns the parent
of the X3DObject.
If you call the Parent property on a Property, it returns the X3DObject that owns
that Property.
If you call the Parent property on a Parameter, it returns the ProjectItem
directly containing that Parameter. Note that often the ProjectItem.Parameters collection
includes parameters that are actually contained inside children objects. For example an X3DObject may appear
to have parameters that actually come from the Kinematics and other nested properties. For
this reason the Parent property is very useful for determining where these parameters come from. This concept
is demonstrated in one of the examples below.
If you call the Parent property on a geometry component (e.g. Point, Segment,
or Facet) it returns the parent Geometry.
If you call the Parent property on a SubComponent, it returns the parent geometry because a
SubComponent object contains references to geometry components (to get the actual X3DObject parenting the
subcomponent, use SubComponent.Parent3DObject).
If you call the Parent property on a Cluster, it returns the parent Primitive.
If you call the Parent property on an Operator, it returns the target of the operator's first OutputPort.
If you call the Parent property on an ActionSource under a model, it returns that
Model. If you call the Parent property on a SimulationEnvironment cache,
it returns the SimulationEnvironment. This changed as of v5.0: in previous releases it
was returning the Mixer object.
If you call the Parent property on an object that has no parent, like the Application object,
it returns the object as parent.
Some simple objects like Command return the XSIApplication as parent.
Tip: Some objects may actually have multiple parents, such as a shared Material, in which
case the same object appears at multiple places in the scene explorer and in the graph. In this case all the
"parents" can be reached via the ProjectItem.Owners property.
Note: These is currently no equivalent property for finding all nested "children" of an SIObject. Instead these
children are available in different collections depending on their type (for example, X3DObject.Children,
ProjectItem.Parameters, ParticleCloudPrimitive.Particles, and
X3DObject.Primitives). The EnumElements command is one way of finding all
children without regard to the type.