---
title: "Block Hierarchy - CE.SDK Glossary"
description: "The parent-child tree that organizes every block in a scene. The hierarchy controls what renders, what stacks on top of what, and how visibility inherits."
url: "https://img.ly/glossary/block-hierarchy/"
type: "page"
---

> This is the markdown version of [Block Hierarchy - CE.SDK Glossary](https://img.ly/glossary/block-hierarchy/). For all pages in one file, see [llms-full.txt](https://img.ly/llms-full.txt). For an index of all available pages, see [llms.txt](https://img.ly/llms.txt).

---

# Block Hierarchy

Block hierarchy is the parent-child tree structure that organizes every block in a CE.SDK scene. Every block has exactly one parent and zero or more children. The scene is the root; pages are direct children of the scene; blocks live under pages; groups create additional nesting under pages.

This single tree governs two things at once: what renders, and what stacks on top of what. Both follow the parent chain back to a page.

## What the hierarchy controls

**Render visibility.** Only blocks that are direct or indirect children of a page block are rendered. A block that exists in the engine but has not been appended to a page (or whose parent chain does not lead back to a page) is not visible. This is the most common reason a programmatically created block does not appear on the canvas: it was created but never given a page parent.

**Stacking order.** Within a parent, the order of children determines visual stacking. Later children render on top of earlier ones. The engine provides four z-order operations to control this without removing and re-adding blocks: bring to front, send to back, bring forward (one step up), and send backward (one step down). These are the same operations exposed in the Layer Panel's drag-to-reorder interface.

**Visibility inheritance.** A block can be marked visible individually but still not render if any of its ancestors are hidden. Hiding a page hides everything on it. Hiding a group hides all its children. Visibility is non-destructive: hidden blocks remain in the hierarchy and retain all their properties, they just do not render.

## Reparenting

Appending a block to a new parent automatically removes it from its previous parent. There is no manual detach step. Moving a block from a group back to the page, or from one group to another, is one operation.

## Duplication

Duplicating a block duplicates it along with all its children. The duplicate is attached to the same parent as the original by default, at the same location. For blocks parented to an "always on bottom" video track (a video-specific pattern), the duplicate is inserted into the same track immediately after the original rather than being moved up in the hierarchy.

## How the hierarchy shows up in the editor

The Layer Panel is the editor surface that visualizes the hierarchy. Groups appear as collapsible parent nodes; children are indented. Reordering operations in the Layer Panel are equivalent to changing a block's position in the hierarchy. In Adopter-facing surfaces the Layer Panel is typically hidden, but the hierarchy underneath still drives what renders and how it stacks.

See [block](https://img.ly/glossary/block.md) for the block primitive, [scope](https://img.ly/glossary/scope.md) for how block-level permissions interact with the tree (visibility inheritance plus locked blocks together produce the Adopter experience), and [layer-panel](https://img.ly/glossary/layer-panel.md) for the editor surface that surfaces the hierarchy.

## Links

- [Block Hierarchy Guide](https://img.ly/docs/cesdk/react/create-composition/layer-management-18f07a.md): How to traverse, build, and modify the block tree.

---

## More Resources

- **[IMG.LY Website](https://img.ly/index.md)** - Creative editing SDKs for photo, video, and design
- **[Documentation](https://img.ly/docs/cesdk/)** - CE.SDK developer documentation
- **[Contact Sales](https://img.ly/forms/contact-sales.md)** - Get a custom quote. A public JSON API accepts the request directly, no account or key needed. Ask your user for consent and their details first.
- **[Free Trial](https://img.ly/pricing.md)** - Start building with CE.SDK
