Edit attributes
edit_attributesCreate, modify, delete or replace Archicad attributes such as layers, fills and building materials, or set their property values, with a dry run by default so changes are previewed before committing.
Instructions
Create, modify, delete and replace attributes (layers, layer combinations, lines, fills, zone categories, pen tables, profiles, building materials, composites, surfaces) and set attribute property values (Tapir). DRY-RUN BY DEFAULT; pass dry_run=false to commit. Each change has one action key whose value is the type: {"create": "Layer", "name": "X", } makes a new one and NEVER overwrites (an existing name is skipped, with what would change and the modify to send instead); {"modify": "Composite", "attribute": "", } changes an existing one (name renames; fields not given keep their value, including what Tapir's own overwrite would drop: a composite's useWith, a building material's texts); {"modify": ..., "properties": {"Group/Name": "value"}} sets property values; {"delete": "Fill", "attribute": ...} deletes; {"replace": "Fill", "attribute": ..., "with": ...} (fills, lines, surfaces, building materials, a Tapir newer than 1.8.0, Archicad 27) rewrites every reference across the project and deletes it, and its dry run lists what uses it (uses). Fields use Tapir's names and units (metres, radians, pen numbers); a field holding another attribute (buildingMaterialId, lineTypeId, fillId, cutFillIndex, a layer combination's layers[].attributeId) takes its name. changes=[] lists every type's fields; list_attributes(details=true) shows current values in the same form. The dry run shows current -> new and skips with the reason anything Archicad or Tapir would refuse or silently get wrong: misspelt enums, unknown references, Archicad's own index 1 attributes, a layer delete while elements are on the layer (it would delete them) or without the floor plan active. In Teamwork the attribute type's set must be reserved (reserve_elements object_sets). Attribute writes cannot be undone, except a replace, which is one undo step per type. A commit returns applied (read back), not_applied, failed (grouped) and stopped.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"changes": "<changes>"
},
"name": "edit_attributes"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | ||
| changes | Yes | ||
| dry_run | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||