> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bedrock.cv/llms.txt
> Use this file to discover all available pages before exploring further.

# Symbol Counting

> Count features by type on a sheet.

## User Prompt

> "How many duplex receptacles are on E-201?"

## Tool Call Sequence

<Steps>
  <Step title="Query features by type and sheet">
    **Call:** `Query`

    ```json theme={null}
    {
      "entity": "feature",
      "project_id": "proj_oak",
      "sheet_number": "E-201",
      "type": "duplex_receptacle"
    }
    ```

    **Response:**

    ```json theme={null}
    {
      "count": 17,
      "items": [
        {
          "id": "ftr_rec_01",
          "type": "duplex_receptacle",
          "label": null,
          "confidence": 0.94,
          "uri": "storage://features/ftr_rec_01/crop.png",
          "metadata": {},
          "block": { "id": "blk_e201_plan", "type": "Plan", "identifier": "1", "sheet_number": "E-201" },
          "parent": { "id": "ftr_rm201", "type": "room", "label": "201" },
          "relations": []
        },
        {
          "id": "ftr_rec_02",
          "type": "duplex_receptacle",
          "label": null,
          "confidence": 0.92,
          "uri": "storage://features/ftr_rec_02/crop.png",
          "metadata": {},
          "block": { "id": "blk_e201_plan", "type": "Plan", "identifier": "1", "sheet_number": "E-201" },
          "parent": { "id": "ftr_rm201", "type": "room", "label": "201" },
          "relations": []
        },
        {
          "id": "ftr_rec_03",
          "type": "duplex_receptacle",
          "label": null,
          "confidence": 0.91,
          "uri": "storage://features/ftr_rec_03/crop.png",
          "metadata": {},
          "block": { "id": "blk_e201_plan", "type": "Plan", "identifier": "1", "sheet_number": "E-201" },
          "parent": { "id": "ftr_rm202", "type": "room", "label": "202" },
          "relations": []
        }
      ]
    }
    ```

    **What the agent learns:** There are 17 duplex receptacles total. Each has a `parent` field showing which room it belongs to. The agent groups by `parent.label` to produce a room-by-room breakdown.
  </Step>
</Steps>

## Agent Response

> There are **17 duplex receptacles** on sheet E-201. Here is the breakdown by room:
>
> | Room     | Count |
> | -------- | ----- |
> | 201      | 4     |
> | 202      | 3     |
> | 203      | 2     |
> | 204      | 2     |
> | 205      | 2     |
> | 206      | 2     |
> | Corridor | 2     |

## Summary

| Metric        | Value                                                                                                                                              |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| Tool calls    | **1**                                                                                                                                              |
| Tools used    | `Query`                                                                                                                                            |
| Key technique | Pass-through `sheet_number` filter avoids needing to resolve the sheet ID first. Parent context enables room-level grouping without extra queries. |
