# Basic Structures in a Scene

> Core object types and scene structures used in Asset Transformer Studio Python scripting

To get started, check also the following topics about concepts and vocabulary:

* [About the Product Structure (Tree)](../../data-preparation-fundamentals/about-the-product-structure-tree)
* [Glossary](../../data-preparation-fundamentals/glossary)

## Object types

* All objects are called `entities`
* In Python scripting, an entity is defined by a unique numerical identifier, or `ID`
* The [API Reference](/asset-transformer-studio/2026.5.0/api/python/studio_functions.md) shows inheritance of entity types.

For example, a part is inherited from component, so if a function wants a `component` parameter you can give it a `part`:

![Entity type inheritance](/api/media?file=/asset-transformer-studio/2026.5.0/media/NewItem415.png)

## Scene occurrences

* Product Structure / Scene nodes are [Occurrences](../../data-preparation-fundamentals/about-occurrences)
* An occurrence can have child occurrences
* An occurrence has [Properties](../../data-preparation-fundamentals/about-occurrences/occurrence-properties):
  * Name
  * Transform
  * Material
  * Visible
* An occurrence owns [components](../../data-preparation-fundamentals/about-occurrences/occurrence-components) (maximum one of each type)

![Occurrence structure](/api/media?file=/asset-transformer-studio/2026.5.0/media/NewItem416.png)

## Scene components

List of component types:

* Part
* PMI
* Light
* Metadata
* Variant
* Animation
* Joint
* SubPart Material

## Prototyping

* Each occurrence can have a prototype, a prototype is also an occurrence
* A prototype is a kind of pattern
* An occurrence can override properties of its prototype occurrence

![Prototype example](/api/media?file=/asset-transformer-studio/2026.5.0/media/NewItem138.png)

See also: [About Instances & Prototypes](../../data-preparation-fundamentals/about-instances-and-prototypes)

## Scene Part

* A part contains geometry, contained in a *shape*
* A part may contain one or two shapes:
  * A `BRep Shape` with CAD representation
  * A `Tessellated Shape` with Mesh representation
* The *active* shape is the tessellated shape if it exists, the BRep shape otherwise.
* A part has a local transformation matrix

![Part structure](/api/media?file=/asset-transformer-studio/2026.5.0/media/NewItem417.png)

## Common functions for scene handling

Get the type of an entity as a String:

```python
core.getEntityTypeString(entity)
```

Get/Set a property value (all property values are Strings):

```python
nameValue = core.getProperty(entity, "Name")
core.setProperty(entity, "Name", "NameValue")
```

List available properties on an entity:

```python
core.listProperties(entity)
```

## Other Python examples

Occurrence list with the root:

```python
[scene.getRoot()]
```

Occurrence list with all parts:

```python
scene.getPartOccurrences()
```

Occurrence list with selection:

```python
scene.getSelectedOccurrences()
```

All occurrences:

```python
scene.findOccurrencesByProperty('Name', '.*')
```

## Related Topics

* [Product Structure Management](./product-structure-management.md)
* [Scripting With the Python API](./_index.md)
