---
name: "SoNodekitCatalog"
section: "3iv"
platform: "linux"
package: "inventor-doc"
version: "2.1.6+ds-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SoNodekitCatalog/3iv"
---

# SoNodekitCatalog(3iv)

nodekit catalog class

## NAME

SoNodekitCatalog — nodekit catalog class

## INHERITS FROM

SoNodekitCatalog

## SYNOPSIS

**#include \<Inventor/nodekits/SoNodekitCatalog.h\>**

**#define SO\_CATALOG\_NAME\_NOT\_FOUND -1** \
 **#define SO\_CATALOG\_THIS\_PART\_NUM   0**

Methods from class SoNodekitCatalog:

**static void**	**initClass()**\
 **int**	**getNumEntries() const**\
 **int**	**getPartNumber(const SbName &theName) const**\
 **const SbName &**	**getName(int thePartNumber) const**\
 **SoType**	**getType(int thePartNumber) const**\
 **SoType**	**getType(const SbName &theName) const**\
 **SoType**	**getDefaultType(int thePartNumber) const**\
 **SoType**	**getDefaultType(const SbName &theName) const**\
 **SbBool**	**isNullByDefault(int thePartNumber) const**\
 **SbBool**	**isNullByDefault(const SbName &theName) const**\
 **SbBool**	**isLeaf(int thePartNumber) const**\
 **SbBool**	**isLeaf(const SbName &theName) const**\
 **const SbName &**	**getParentName(int thePartNumber) const**\
 **const SbName &**	**getParentName(const SbName &theName) const**\
 **int**	**getParentPartNumber(int thePartNumber) const**\
 **int**	**getParentPartNumber(const SbName &theName) const**\
 **const SbName &**	**getRightSiblingName(int thePartNumber) const**\
 **const SbName &**	**getRightSiblingName(const SbName &theName) const**\
 **int**	**getRightSiblingPartNumber(int thePartNumber) const**\
 **int**	**getRightSiblingPartNumber(const SbName &theName) const**\
 **SbBool**	**isList(int thePartNumber) const**\
 **SbBool**	**isList(const SbName &theName) const**\
 **SoType**	**getListContainerType(int thePartNumber) const**\
 **SoType**	**getListContainerType(const SbName &theName) const**\
 **const SoTypeList &**	**getListItemTypes(int thePartNumber) const**\
 **const SoTypeList &**	**getListItemTypes(const SbName &theName) const**\
 **SbBool**	**isPublic(int thePartNumber) const**\
 **SbBool**	**isPublic(const SbName &theName) const**

## DESCRIPTION

**This class describes the parts and structure of a nodekit. Each class of nodekit has one SoNodekitCatalog** (a static variable for the class). Internally, the catalog contains one entry for each "part" in the nodekit's structure. Users can query the catalog for information about each entry in the catalog. This information can be obtained either by part name (an **SbName** unique for the part within the catalog) or by part number (an index into an array of parts).

Note that, although the catalog for a nodekit class may contain many entries, each instance of that class is not initially created with all of these parts intact. Rather, each instance of the class has its own parts list which keeps track of which parts the user has created. The nodekit uses the catalog as a guide in creating new nodes as its descendants; the standard **addChild()**, **removeChild()** and other **SoGroup** methods are protected, so that users must create descendants indirectly by asking the nodekit to get and/or set the different "parts" in the catalog.

The first entry in any **SoNodekitCatalog** corresponds to the nodekit itself. Its **partName** is "this" and its **partNumber** is 0. All other parts in the catalog are described relative to "this."

## METHODS

**static void**	**initClass()**\
 Initializes this object.

**int**	**getNumEntries() const**\
 Returns number of entries in the catalog.

**int**	**getPartNumber(const SbName &theName) const**\
 Given the name of a part, returns its part number in the catalog.

**const SbName &**	**getName(int thePartNumber) const**\
 Given the part number of a part, returns its name in the catalog.

**SoType**	**getType(int thePartNumber) const**\
 **SoType**	**getType(const SbName &theName) const**\
 **SoType**	**getDefaultType(int thePartNumber) const**\
 **SoType**	**getDefaultType(const SbName &theName) const**\
 **SbBool**	**isNullByDefault(int thePartNumber) const**\
 **SbBool**	**isNullByDefault(const SbName &theName) const**\
 **SbBool**	**isLeaf(int thePartNumber) const**\
 **SbBool**	**isLeaf(const SbName &theName) const**\
 **const SbName &**	**getParentName(int thePartNumber) const**\
 **const SbName &**	**getParentName(const SbName &theName) const**\
 **int**	**getParentPartNumber(int thePartNumber) const**\
 **int**	**getParentPartNumber(const SbName &theName) const**\
 **const SbName &**	**getRightSiblingName(int thePartNumber) const**\
 **const SbName &**	**getRightSiblingName(const SbName &theName) const**\
 **int**	**getRightSiblingPartNumber(int thePartNumber) const**\
 **int**	**getRightSiblingPartNumber(const SbName &theName) const**\
 **SbBool**	**isList(int thePartNumber) const**\
 **SbBool**	**isList(const SbName &theName) const**\
 **SoType**	**getListContainerType(int thePartNumber) const**\
 **SoType**	**getListContainerType(const SbName &theName) const**\
 **const SoTypeList &**	**getListItemTypes(int thePartNumber) const**\
 **const SoTypeList &**	**getListItemTypes(const SbName &theName) const**\
 **SbBool**	**isPublic(int thePartNumber) const**\
 **SbBool**	**isPublic(const SbName &theName) const**\
 A full set of methods for finding out all parameters in the catalog, given either the part name or the part number.

## SEE ALSO

**SoAppearanceKit, SoBaseKit, SoCameraKit, SoLightKit, SoNodeKit, SoNodeKitDetail, SoNodeKitListPart, SoNodeKitPath, SoSceneKit, SoSeparatorKit, SoShapeKit, SoWrapperKit**
