.. _group__a3d__rootbase:

###########
Entity Base
###########

Creates and accesses a hierarchy of descriptive names and modeller data that can be applied to any PRC entity. 

Entity type is :c:enumerator:`~kA3DTypeRootBase`

This module lets you create a hierarchy of descriptive names and modeller data (called *root-level attributes*\ ) that can be applied to any PRC entity. These attributes are packaged as an :c:type:`~A3DRootBase` entity that is referenced from the PRC entity they describe.

The following sample code shows how to create root-level attributes for any PRC entity. In this case, the attributes include modeller data. For restrictions on specifying modeller data, see :c:struct:`~A3DMiscAttributeData`\ .


::


The following illustration shows the result of the sample code.

The sample code creates an :c:type:`~A3DRootBase` entity that houses three :c:type:`~A3DMiscAttribute` entities, each of which reference an :c:struct:`~A3DMiscSingleAttributeData` structure. Each :c:struct:`~A3DMiscSingleAttributeData` structure provides modeller data of type :c:enumerator:`~kA3DModellerAttributeTypeString`\ .




   :ref:`Root Type Declarations <group__a3d__root__types>` 


**Returns**


   ``A3D_SUCCESS`` on success, or an error code on failure


.. rst-class:: kind-group kind-topic

.. rubric:: Topics
   :class: kind-group-title


.. rst-class:: api-xref-list


* :ref:`Miscellaneous Attribute Entity <group__a3d__attribute>`

.. rst-class:: kind-group kind-record

.. rubric:: Structures
   :class: kind-group-title


.. rst-class:: api-xref-list


* :c:struct:`~A3DRootBaseData`

.. rst-class:: kind-group kind-function

.. rubric:: Functions
   :class: kind-group-title


.. rst-class:: api-xref-list


* :c:func:`~A3DRootBaseGet`
* :c:func:`~A3DRootBaseSet`
* :c:func:`~A3DRootBaseAttributeRemoveAll`
* :c:func:`~A3DRootBaseAttributeRemove`
* :c:func:`~A3DRootBaseAttributeRemoveAt`
* :c:func:`~A3DRootBaseAttributeAppend`
* :c:func:`~A3DRootBaseAttributeAdd`

.. toctree::
   :maxdepth: 1
   :hidden:

   a3d_attribute
   ../structures/A3DRootBaseData
   ../functions/A3DRootBaseGet
   ../functions/A3DRootBaseSet
   ../functions/A3DRootBaseAttributeRemoveAll
   ../functions/A3DRootBaseAttributeRemove
   ../functions/A3DRootBaseAttributeRemoveAt
   ../functions/A3DRootBaseAttributeAppend
   ../functions/A3DRootBaseAttributeAdd


