Skip to main content
Glama

Set profile section

set_section
Idempotent

Changes the cross-section of existing elements (IPE 220 to IPE 240); GlobalId, axis and relations stay. Never create_elements for this. New revision, effect report (n_changed, rejected, cloned, carried). A call that succeeds is not a job that's done. Target: guid, guids or a set from find_elements/get_selection, never a filter. Beyond the named: PLAN_REQUIRED, run its plan_id with expect_beyond. section: a catalog name - rectangle, circle, polygon, standard or tapered profile; own corners: edit_mesh set_profile. Centre of the old profile hull and axis direction stay; a shared extrusion, profile or type is cloned (the type clone named for the new section); quantities are recomputed or removed. The new ProfileName is written. Openings are not checked against the new outline. Only a parametric body. An IfcStructuralCurveMember takes it in its material profile set, each in a call of its own.

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": "set_section"
  }
}

Input Schema

NameRequiredDescriptionDefault
setNoA set id from find_elements or get_selection: writes exactly the elements seen there, nothing that matches later. An element changed since reading is rejected alone; the others are written
guidNoOne element (GlobalId)
noteNoYour note, stored with the new revision
guidsNoThese elements (GlobalIds)
dry_runNoPreview: the planned effect and a plan_id, nothing written
plan_idNoExecute exactly the plan a dry_run returned, all or nothing; the plan holds target and fields. Plans that clone the same shared object (type, material) run one after the other: plan the second after the first ran, else PLAN_CHANGED
sectionNoCross-section by catalog name (ProfileName): HEA 200, IPE 300, CHS 273x5, BSH 120x240, AU 14. Unknown names are refused with the nearest ones
request_idNoYour id for this call: a repeat answers the first result and writes nothing
expect_countNoWith set: how many elements the set holds - guards against a mixed-up set id
expect_beyondNoWith plan_id: how many elements the plan reaches beyond those named (n_beyond of PLAN_REQUIRED or the dry_run)
expect_contactsNoIntended contacts: checks.contacts splits into as_expected, missing, surprises; an omitted kind is not judged

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Beyond the annotations it discloses substantial behavior: a new revision is written, an effect report is returned (n_changed, rejected, cloned, carried), shared extrusions/profiles/types are cloned with the type clone renamed, quantities are recomputed or removed, and openings are not validated against the new outline. That is far more than readOnlyHint=false/idempotentHint=true conveys. It stops short of stating permission requirements or how partial rejection interacts with the revision, so a 4 rather than 5.

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

Conciseness3/5

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

Nearly every fragment carries information, but the structure is a telegraphic run-on with no grouping, and lines like 'A call that succeeds is not a job that's done' are cryptic rather than clarifying. The safety-critical ordering rules (clone plans run one after the other) are buried mid-paragraph. Dense but poorly front-loaded for a mutation tool.

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 an 11-parameter mutation tool with a nested object and no output schema, the description covers the return payload (effect report fields), side effects on shared objects, rejection semantics, and the dry-run/plan workflow. What remains thin is the expect_contacts check outcome (left to schema) and error-permission behavior, minor relative to the depth provided.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds cross-parameter meaning the schema does not: the relationship between PLAN_REQUIRED, plan_id and expect_beyond, and the pairing of target selection with the set/expect_count guard. It also defines 'section' as a catalog name with profile families (rectangle, circle, polygon, standard, tapered) while leaving the remaining parameters to their already-rich schema text.

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

Purpose5/5

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

The opening sentence names a specific verb and resource — changing the cross-section of existing elements — and pins the scope with a concrete example (IPE 220 to IPE 240) plus what is preserved (GlobalId, axis, relations). It explicitly separates itself from siblings: 'Never create_elements for this' and 'own corners: edit_mesh set_profile'. An agent can identify the tool without opening the schema.

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

Usage Guidelines5/5

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

It states the accepted targeting modes (guid, guids, or a set from find_elements/get_selection) and an explicit exclusion ('never a filter'). It routes the beyond-named case through PLAN_REQUIRED with expect_beyond, and sends free-form corner editing to edit_mesh. The IfcStructuralCurveMember note adds a per-call constraint that would otherwise be discovered only by failing.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources