Device Tags
Every physical unit on a project can carry a short, permanent tag such as DISP-003, built from a pattern your company sets once.
What a Device Tag Is
A line on a room's equipment list stands for one or more physical units: a line with Qty 3 is three units. Each unit can carry a device tag. Tags are built from your company's tag pattern, which starts as {Category}-{Seq}: the abbreviation of the product's category, a hyphen, and a number counted per project. Three displays and two cameras read DISP-001, DISP-002, DISP-003, CAM-001 and CAM-002.
- AVstackr never changes a tag once it is given. Changing the pattern, renaming a category or deleting a unit renumbers nothing, so a tag already printed on a drawing or a label stays true. Only a person can change a tag.
- A unit is tagged only when every part of the pattern can be filled in. A unit whose product has no category, or whose line has no system while the pattern uses
{System}, stays untagged. It gets its tag the next time its units are opened or tags are assigned, once the gap is fixed. - Tags belong to the unit, not to a version. Like per-unit attributes, a unit's tag is the same in every version of the project.
Device tags, the CAD tags on attribute keys, CAD blocks and drawing links (below) connect projects to AutoCAD drawings. The AutoCAD Plugin page covers the plugin that links a drawing and places units in it.
Set Up the Pattern
Open Global Config and find the Device Tags card. The pattern is built from segments, read left to right:
- Pick each segment's kind: Category, System, Room or Text. A Text segment takes fixed text, such as a site code.
- Pick the separator after each segment:
-,.,_,/or none. - Add segments with the plus button, move them with the arrows, and remove them with the cross. Sequence, the number, is always last.
- Check the Preview, which renders a sample tag from your first category and first system.
- Set Sequence digits (1 to 6, default 3) and Numbering. The card saves as you change it.
| Segment | Token in the pattern | Fills in |
|---|---|---|
| Category | {Category} | The abbreviation of the product's category, e.g. DISP |
| System | {System} | The abbreviation of the line's system, e.g. AV |
| Room | {Room} | The first three letters or digits of the room name, upper-cased: "Conference Room A" gives CON. A room with no name gives RM. |
| Sequence | {Seq} | The number, padded with zeros to the sequence digits. A number wider than that is not cut: 1000 with 3 digits reads 1000. |
Each distinct start of a tag numbers on its own: DISP- and CAM- both start at 1, and with {Room}-{Category}-{Seq}, CON-DISP- and SER-DISP- count separately. The two numbering choices differ only after a number is freed:
- Increment past highest (default): the next unit takes one more than the highest number in use.
- Fill gaps: the next unit takes the lowest number not in use.
Advanced shows the same pattern as text, for example {Room}-{Category}-{Seq}, and lets you edit it there. A pattern uses only the four tokens above, ends with {Seq} and uses it once, has something before it, and starts with a token, a letter or a digit. Fixed text may use letters, digits and . _ / -. A pattern that breaks a rule shows the reason and is not saved.
A new pattern is used for units tagged after the change. Units already tagged keep their tags, so a project can hold both styles. Settle the pattern before you tag your first projects.
Categories and Systems
Under the pattern, the card holds two lists. Both start with a default list that you can rename, re-abbreviate, add to, reorder and delete from. Edit a cell in place; it saves when you press Enter or click away.
- Categories: Name, Abbrev. and Drawable. The defaults cover the usual AV devices, from Display /
DISPand Camera /CAMto Cable /CBLand Labor /LAB. Drawable marks the categories that are drawn as devices: the AutoCAD plugin lists the units of a category that is not drawable only when the open drawing already places them. Cable, labor and similar categories are not drawable and are still tagged. Expected on holds four tick boxes, one per drawing view: P for Plan, C for Ceiling, E for Elevation and S for Schematic. Tick the views a category's units must appear on, for example Plan and Elevation for displays. The project page then counts a unit as not drawn while no linked drawing of that view places it. A category with no box ticked is never counted, and Expected on does not depend on Drawable. Every category starts with no box ticked. Restore defaults adds back the defaults missing from the list and never changes a row you edited. - Systems: Name and Abbrev., starting with Audio Visual /
AV, Information Technology /ITand Security /SEC.
An abbreviation is 1 to 8 letters or digits and is upper-cased for you. Names and abbreviations must be unique within each list. Changing an abbreviation affects only tags given afterwards. When someone else, or an AI agent, changed a row after you opened the page, your edit to that row is not saved and the row shows "This row changed since you opened it. Reload the page to see the current values."; a reload shows the current values, and you can make your edit again.
Deleting a category that products use first asks Unclassify N products?: its products lose their category, and their existing tags stay. Deleting a system that lines use asks Unassign N lines?: every line in that system, in every version, becomes unassigned, and existing tags stay.
A list you empty completely is filled with the defaults again the next time it is opened. To use fewer categories or systems, keep at least one row of your own.
Classifying Products
A product's category is set by a person or by an on-demand AI run. It is never set automatically when a product is created or imported.
- One product: the Category dropdown on the product's create and edit forms lists each category with its abbreviation, such as "Display (DISP)". Unclassified clears it.
- Many products: on the Products page, tick the products, choose a category in Set category… and click Apply. The Category column shows each product's abbreviation, and Unclassified only in that column's filter shows the products with none.
- Classify with AI: with no product ticked, it offers to classify every unclassified product; with products ticked, it classifies the ticked ones that have no category yet. It picks only from your own category list. It applies an answer when it is at least 80% sure; the rest are left for review and stay unclassified, so Unclassified only finds them for you to set by hand. A line under the toolbar reports how many it classified, how many it left for review and the credits used.
Classify with AI sends products in batches of up to 50. Each batch is charged as it completes, at the same rate as an AI connection metadata call; a batch that fails is not charged. If credits run out partway, the run stops and the batches already done stay applied.
Assigning Systems to Lines
The system belongs to the equipment line, not to the product: the same display can be AV in one room and Security in another. A line with no system is unassigned.
- While adding equipment: set Adding to: in the room's Add Product to Room header (and in the full-screen footer). Every line you then add to that room from search, a bundle or a bulk paste gets that system. The choice lasts for this visit to the page; Unassigned adds lines with no system. Copied and pasted lines keep the system they had.
- On one line: change the line's System cell. On a contracted version the change is refused, as for any other line field; use a change order.
- On many lines: open the project-wide equipment view: open Actions in the project page header and click Equipment, under Sales Operations beside Procurement Worklist. It lists every line of every room with its room, category, system, tag, make, model, part and quantity; groups them by room, system or category; and filters to lines with no system or products with no category. Tick lines and set their system, or their category, in one step. A category belongs to the product, so setting it changes every line of that product.
The System and Tag columns can be hidden from the room table's column picker, for example when your pattern does not use {System}.
Getting Tags on Units
A unit is tagged when it is created, and units are created when they are first needed, for example when you open a line's unit tabs. Assign Device Tags creates and tags them all at once.
- On the project page, open the Actions menu and click Assign Device Tags.
- Every line in the active version gets its units, and every untagged unit whose pattern can be filled in gets a tag. The header reports the result, for example "Units seen 42, tags assigned 40".
- Run it again whenever you add equipment or fix a missing category or system. It never changes a tag that exists.
The room table's Tag column shows each line's tags: one tag for a single unit, a range such as DISP-003…005 when the numbers run on, and a comma list otherwise. It is blank while a line has no tagged unit. Rest the pointer on a line's cell in that column to see every unit created for the line, one per row, in unit order. Each row shows the unit's tag, or no tag yet, and the drawings the unit is drawn on: Placed on: followed by the drawing names, or Not placed. When the unit's category expects views (Expected on) that a linked drawing of the project uses, the row goes on with not drawn on and the views no such drawing places it on, for example DISP-005 · Not placed · not drawn on Plan, Elevation, and with accepted for and the views someone accepted with Accept not drawn… in the line's right-click menu. Acceptances belong to the version they were made in, so the hover of another version can read differently. A view counts only once the project has a linked drawing of it. A line whose units have not been created yet shows no list. The column only shows tags; it never creates units.
Changing a Tag by Hand
Open a line's attributes panel with the chevron in its Attributes column. The unit's tag is on the Tag row at the top of the panel. When the line has more than one unit, each unit has its own tab, labelled with its tag: Unit 2 · DISP-003, and the Tag row is on each unit's tab. Click the tag to edit it; Enter or clicking away saves it and Esc cancels. An untagged unit shows no tag yet and a Set tag link.
- A tag is 1 to 50 characters: letters, digits and
. _ / -, starting with a letter or digit. - A tag must be unique within the project. When another unit already has it, the message names that unit and its room.
- A tag can be replaced but not cleared, and the system never overwrites a tag you set.
- A tag that fits the unit's own pattern, such as
DISP-010on a display, counts in the numbering, so automatic tags continue after it. Any other text stands on its own.
A line whose make and model come to one unit in the room has no unit tabs: its Tag row sits above the line's attributes. Until that unit is created, the row shows no tag yet. Set tag creates the unit, tags it when the pattern can be filled in, and opens the tag for editing, so you can keep the tag it was given or type your own.
Excel Export
- Each room sheet ends with a Tag column holding the line's tags, as the room table shows them. The Equipment Only export has the same column after Quantity.
- The full export adds a Device Units sheet as its last tab: one row per unit with Tag, Room, Make, Model, Part, Unit #, then one column for each per-unit attribute key in use, such as Serial Number. It is the installer's list.
The export lists only units that already exist. Run Assign Device Tags before exporting to include every line.
CAD Tags on Attribute Keys
A line item attribute key can name the AutoCAD block attribute it fills: Serial Number might map to SERIAL_NUMBER. The CAD tag is optional; a key without one is not mapped to a drawing attribute.
- In Global Config, click Manage Line Item Attribute Keys.
- In the CAD tag column, the grey placeholder suggests a tag made from the key's name. Type it, or your own, and click away to save. Clear the box to remove the tag.
- What you type is upper-cased, spaces and hyphens become
_, and other characters are dropped. The result must start with a letter and be at most 32 characters of A–Z, 0–9 and_. - Each CAD tag can belong to one key, deactivated keys included, so reactivating a key never collides.
- Renaming a key keeps its CAD tag.
- These names are reserved for the built-in fields and cannot be used:
AVSTACKR_ID,DEVICETAG,MANUFACTURER,MODEL,PARTNUMBER,DESCRIPTION,CATEGORY,LOCATION,SYSTEM,UNIT,QTY,RACKUNITS,HEIGHT,WIDTH,DEPTH,WEIGHT,PROJECT.
CAD Blocks
A CAD block is an AutoCAD block saved as a DWG file: the symbol a device is drawn with, such as a display on a floor plan or a speaker on a ceiling plan. Your company keeps one library of blocks in AVstackr, and each product names the block it uses on each kind of drawing. Blocks are uploaded and replaced from the AutoCAD plugin, or through the CAD Blocks API; AVstackr itself has no upload button.
- An upload carries the attribute tags the block defines, the views it suits and, for a dynamic block, its visibility states.
- Replacing a block swaps its file in place. Products and categories keep using it, and blocks already placed in drawings are not changed. A product or category that named a visibility state the new file no longer has goes back to the block's default state.
Views
A block lists the views it suits, at least one. A product or category can use a block only on a view the block lists.
| View | Drawings |
|---|---|
| Plan | Floor plans |
| Ceiling | Reflected ceiling plans |
| Elevation | Wall and rack elevations |
| Schematic | Line and schematic sheets |
A dynamic block can show several visibility states, such as a camera seen from above or from the front, so one block can serve several views. Wherever a dynamic block is chosen, a second select picks its state for that view; Block default keeps the state the block was saved in.
Which Block a Device Gets
For each view, a device uses the first of these that is set:
- Its product's own block for that view.
- Its product category's default block for that view.
- A generic box, sized from the product's dimensions.
An archived block counts as not set, so the view moves on to the next step.
- On a product: the create and edit forms have a CAD blocks group under Category, with a row for each view that offers the blocks suiting it. Use category default leaves the view to the category, and the grey hint beside it names what that gives, such as "Category default: Display wall", or Generic box. Edit saves the blocks with the rest of the form; Create saves them once the product exists.
- On a category: in the Device Tags card's Categories list, the Blocks column shows the category's default for each view in the order Plan, Ceiling, Elevation, Schematic: the view's letter when it has one, such as
P · – · E · –, a dash when it has none, and a muted letter when its block is archived. Hover a letter for the block's name. Click the letters to open the four view rows under the category, choose blocks, and click Apply, or Cancel to leave them as they were. None leaves a view without a default.
The CAD Blocks Card
In Global Config, the CAD Blocks card lists the library under the note "Blocks are uploaded and replaced from the AutoCAD plugin (Blocks → Upload / Replace)." Each row is one block:
- Name and Block name: the display name blocks are picked by, and the AutoCAD block definition name inside the DWG.
- Views: the views the block suits, as letters.
- States: how many visibility states a dynamic block has; hover for their names.
- Tags: how many of the block's attribute tags are supported and how many are unmapped (see below); hover for the lists.
- Used by: for each view, how many products use the block as their own and how many categories as their default, written
P 2·1. A product that uses the block on two views counts on both. - File and Uploaded by: the file's size and the date it was last uploaded or replaced (hover for the file name), and who uploaded the block.
Archive takes a block out of use: it leaves the pickers, and the products and categories that chose it fall back to the next step while keeping their choice. Turn on Show archived to list archived blocks, each with Unarchive. Blocks are never deleted.
Names, Files and Tags
- A block's name is 1 to 100 characters and unique among your live blocks, ignoring letter case. An archived block's name can be used again, and unarchiving is refused while a live block has its name.
- Its block name is 1 to 255 characters with none of
< > / \ " : ; ? * | , = `and no control character, as AutoCAD requires. Block names are unique for good, ignoring letter case: an archived block keeps its block name, because two blocks with one name cannot be in one drawing. To change a block, replace its file. - The file must be a DWG of at most 5 MB. A DXF or any other format is refused; the format is read from the file itself, not its name.
- A block's attribute tags are kept as the block spells them, upper-cased, so a hyphen stays a hyphen. A tag is supported when it is one of the built-in names above, such as
DEVICETAG, or exactly the CAD tag of an active attribute key. Any other tag is unmapped: AVstackr has no value for it.
A block attribute tagged SERIAL-NUMBER does not match the key whose CAD tag is SERIAL_NUMBER, because a CAD tag never contains a hyphen. Tag the attribute in the block exactly as the key's CAD tag.
Drawings and Placements
A drawing link ties one AutoCAD drawing (DWG) to a project, and a placement records that one unit is drawn by one block on it, with the block's position and layer. Each drawing has one view, such as Plan or Ceiling, that its blocks are chosen for. A unit is placed at most once per drawing, on as many drawings as show it. Drawings are linked and units placed from the AutoCAD plugin, or through the CAD Drawings API; AVstackr itself has no button to link one.
The Drawings View
Open Actions in the project page header and click Drawings, under Engineering beside Publish Drawings. Each row is one linked drawing: its Name (hover for the file it was read from), View and Placed units, Last submit, when the plugin last sent the drawing (hover for the saved version it came from), and Last apply, when changes from it were last applied. The arrow at the start of a row lists the drawing's placements: each unit's Tag, Unit number, Make, Model and Room, the Block and Layer that draw it, and when the plugin last saw it (Last seen).
The Drawings tab of the AutoCAD plugin's palette lists the same drawings and placements, and offers the actions below inside AutoCAD.
Three actions change links, never equipment:
- Rename edits the drawing's name in place, 1 to 200 characters. Enter or clicking away saves; Esc cancels.
- Remove asks "Remove the drawing link and N placements? Units are not deleted." and then removes the drawing and its placements. The units stay in the project with their tags and attributes.
- Unplace, on a placement, removes that one link. The unit stays in the project and its block stays in the drawing.
A block that still carries the unit's link is matched again the next time the plugin syncs the drawing, and the unit is placed again. To take a unit off a drawing for good, erase its block in AutoCAD.
The Drawn Column
The project's Equipment view has a Drawn column: how many of a line's units at least one drawing places, out of its quantity, such as 2/3. Hover it for the drawings' names; it shows a dash while the line has no units yet. Tick Not drawn to list only the lines no drawing places a unit of, lines without units included. This filter means on no drawing at all. The project page's units not drawn count is per view: a unit placed on the floor plan still counts there when its category also expects an elevation.
What Happens When a Drawing Syncs
The plugin sends AVstackr every AVstackr block in the drawing. Each block is matched to a unit by the link the plugin wrote into it, else by the placement recorded for that block, else by a device tag typed into it that names one unit not yet on the drawing. Safe changes then happen on their own: a matched block becomes a placement, a moved block's new position is recorded, a value the drawing owns is copied into the unit, and the plugin rewrites any value the project owns. Everything else comes back as a question in the plugin:
| In the drawing | The answers |
|---|---|
| A copied block, carrying another block's link | Add a unit to the line and place it there, keep the block as a graphic only (the plugin removes its link), or ignore it for now |
| A block that matches no unit | Link it to a unit not yet on the drawing, add a unit to a line, add a new line for a catalog product in a room, keep it as a graphic only, or ignore it for now |
| An erased block | Unplace its unit, or keep the placement when the block is only on a frozen layer or cut for now |
| A value that syncs both ways, changed in the drawing and in AVstackr since the last sync | Keep the drawing's value or keep the project's value |
An ignored block comes back at the next sync. AVstackr checks each answer again as it applies it: an answer the project has moved past, such as a link to a unit someone placed meanwhile, is skipped and the plugin is told why, and the rest go ahead.
Nothing done in a drawing deletes a unit or a line, lowers a quantity, or changes a make, model, part number or device tag. Erasing a block leads at most to unplacing its unit, and only when you answer so.
Who Owns Which Value
- The project owns the built-in values, such as make, model, room and quantity, and the device tag. When a drawing shows something else, the plugin rewrites it, and the drawing's version is never copied into AVstackr. Change a placed unit's tag in AVstackr: a tag typed into a block only helps find the unit of a block that is not linked yet.
- The drawing owns where a block sits: its position, rotation, scale, layer and visibility state. AVstackr records them and never moves a block.
- An attribute key with a CAD tag follows its Sync setting, which sits beside the CAD tag in Manage Line Item Attribute Keys: Push, Pull or Both.
| Sync | Which value wins |
|---|---|
| Push | AVstackr's. The plugin rewrites the drawing's value whenever it differs. |
| Pull | The drawing's. A value changed in the drawing is copied into AVstackr; once the block is placed, AVstackr never rewrites it. |
| Both | Whichever side changed since the last sync. When both did, the plugin asks which to keep. |
A key gets Push when you give it a CAD tag and keeps it until you choose another, so every key tagged before this setting existed syncs Push. A key without a CAD tag shows a dash in the column and does not sync. A value copied from a drawing is saved on the unit, as a per-unit attribute.
On a Contracted Version
When the project's active version is contracted, the answers that add equipment, a unit on a line or a new line, are shown blocked with "This project version is locked. Create a Change Order to modify it." Make those changes through a change order. Placements, moved blocks and values copied from the drawing still go through.
Permissions
- The Device Tags card, the attribute keys and product categories: any user except Read-only.
- Systems on lines, Assign Device Tags and tag edits: any user who can edit the project. Read-only users see tags and systems but cannot change them.
- Uploading, replacing and archiving blocks, and choosing blocks for products and categories: any user except Read-only. Read-only users see the library and the blocks chosen.
- Renaming and removing drawings, and unplacing units: any user except Read-only. Read-only users see the Drawings view and the Drawn column.
- CAD changes through AI agents: every CAD change asked of Claude Desktop, a voice agent or AVIP Assistant is refused for a Read-only user (for a voice agent, when the agent is linked to that user), who can still have the agent read tags, blocks, drawings and units not drawn. A new voice agent can read all CAD data and make the project edits: tags, systems on lines, product categories and blocks, unit attributes, renaming a drawing link, unplacing a unit and accepting units not drawn. Removing a drawing link, deleting a unit attribute, and adding or changing the company's categories, systems and blocks start off until an administrator switches them on in the agent's permissions.
For the REST endpoints, see the Device Tags API, the CAD Blocks API and the CAD Drawings API. For AI agents, see the Device Tags tools on the MCP Server page. AVIP Assistant, the in-app copilot, has the same CAD tools.
