> For the complete documentation index, see [llms.txt](https://stage-precision.gitbook.io/grid/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://stage-precision.gitbook.io/grid/smart-group/overview.md).

# Overview

A Smart Group is a powerful organizational and operational entity within your project. It acts simultaneously as a visual container for organizing objects in the project tree and an active control hub for streamlining automation workflows.

Traditionally, managing multiple objects across a large project tree requires sending commands or subscribing to events on an individual basis. A Smart Group solves this challenge by enabling unified, multi-object management through a single interface node.

## **Dual Capabilities of Smart Groups**

1. Passive Visual Organization
   * Streamlines your workspace by logically grouping related objects together.
   * Reduces clutter in the project hierarchy by consolidating scattered elements into unified group nodes.
2. Active Control Hub
   * Unified Action Distribution: When an action (command) is triggered on a Smart Group, the group automatically broadcasts that command to all member objects within it. If the member object possesses a matching action and parameter schema, it executes the command; otherwise, non-matching objects safely ignore it.
   * Centralized Event Aggregation: When any individual object inside a Smart Group triggers an event, the event bubbles up to the Smart Group level. Workflows or listeners monitoring the Smart Group receive the event notification along with comprehensive metadata, including the precise identity of the originating subobject.

## Key System Rules & Architecture

To maintain reliability, clarity, and system predictability, Smart Groups operate according to several foundational architectural rules:

### **1. Static Assignment vs Dynamic Evaluation**

Smart Groups manage member inclusion using either dynamic rules or static assignments, depending on the type selected:

* Static Assignments (*Manual Selection*, *Subobject Hierarchy*):
  * Membership is explicitly defined and maintained by the user.
  * Manual Selection: The group holds a fixed list of explicitly chosen objects from the project tree. Adding or removing objects requires manual adjustments to the group's selection list.
  * Subobject Hierarchy: Objects become members by physically placing them as child nodes beneath the Smart Group in the project tree hierarchy. Membership only changes when objects are physically moved into or out of the group's subobject tree.
* Dynamic Rules (*Search by Type*, *Search by Name*):
  * Membership is evaluated dynamically in real-time.
  * As objects are created, deleted, renamed, or retyped across the project tree, the Smart Group automatically includes or excludes matching items without manual intervention.

### **2. Heterogeneous Object Support**

* Multi-Type Capabilities: A Smart Group can contain objects of the same type or a heterogeneous mix of completely different object types.
* Graceful Command Matching: When sending an action to a heterogeneous Smart Group, only objects supporting the requested action will execute it. Non-matching objects bypass the command silently without throwing errors.
