Skip to main content
Glama
Archicad-MCP

Archicad-MCP

by alesdev88

Create Road Arrow

create_road_arrow
Destructive

Places Road Arrow library parts at specified stations along a lane axis and drapes them onto Meshes or Slabs for accurate road markings.

Instructions

Place Road Arrows (straight, left, right, combined, roundabout, sorting, split, lane ending, wrong way, cycle and garage arrows) as the 'Road Arrow' library part at stations along a lane axis, and drape them onto Meshes and Slabs. The axis comes from source_guid (a Morph line, Polyline, Line or Arc) or points [{x, y, z}] in metres, drawn in the direction of travel. arrow is a name, for example '5411 Straight' or '5443 Split, left and right', any case. stations is metres along the axis, a number or a list, default [0]: one arrow at each, with its anchor ('tail', 'centre' or 'tip') on the station and offset metres to the right. The size is size ('5.00 m'), speed_kmh (30, 50, 90 or more picks 3.00, 5.00, 7.50 or 12.00 m) or custom_length and custom_width. drape_on lists Mesh and Slab GUIDs: the arrow's height points follow the surface, the paint never sinks below it, and points are added until it is within drape_tolerance (metres); lift raises it. Without drape_on, height, slope_percent and cross_fall set the height. update_guid rewrites one placed arrow in place, keeping its settings unless given. DRY-RUN BY DEFAULT: reports each arrow's position, direction, height points, drape deviations, stretches off the surface and warnings. Pass dry_run=false to place or update.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "create_road_arrow"
  }
}

Input Schema

NameRequiredDescriptionDefault
liftNo
portNo
sizeNo
arrowNo
anchorNotail
heightNo
offsetNo
pointsNo
dry_runNo
drape_onNo
stationsNo
speed_kmhNo
thicknessNo
cross_fallNo
source_guidNo
update_guidNo
custom_widthNo
custom_lengthNo
paint_surfaceNo
slope_percentNo
path_toleranceNo
drape_toleranceNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.14.0

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the destructiveHint=true annotation it discloses the most consequential behavior: the call is a dry run by default and reports positions, direction, height points, drape deviations, off-surface stretches and warnings, and update_guid rewrites in place while preserving existing settings. It also explains the drape contract (height points follow the surface, paint never sinks below it, points are added until within drape_tolerance).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense paragraph that front-loads purpose then moves through axis, arrow naming, stations, sizing, draping, update and dry-run in dependency order. Every clause carries information; nothing is decorative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 22-parameter write tool with no schema descriptions, the definition is unusually complete on the parameters that matter for correct invocation, and the output schema removes any need to explain return values. The four undocumented parameters keep it from full marks.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage the description carries the full load and covers roughly 18 of 22 parameters, including units (metres), defaults (stations default [0]), the speed_kmh-to-size mapping, anchor choices and offset direction. It leaves port, thickness, paint_surface and path_tolerance completely unexplained, which are not guessable from their names alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb plus resource and enumerates the arrow types and the target library part, so an agent can tell instantly what gets created. It does not explicitly distinguish itself from the nearby create_road_marking or create_swept_beam siblings, which keeps it short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear conditional guidance: axis from source_guid versus points, drape_on versus height/slope_percent/cross_fall, and update_guid for rewriting an existing arrow. It even states that dry_run is the default and must be set false to commit. It never names an alternative sibling tool or says when not to use this one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.