Every command runs the same way from the desktop app, ccad run / ccad script and MCP (see the automation guide). Lengths are in meters, angles in degrees, points [x, y] in plan (in a view’s drawing coordinates for dimensions). id or name parameters accept a numeric id or the name of a level, type, view or material. Kinds: query reads the model, edit changes it (one undo step, refused if it would leave the model invalid), file works with files or replaces the project.
project_new, project_open, project_save, project_info, project_info_set, undo, redo, units_get, units_set, language_set, ifc_import, ifc_export, sheet_export, view_export, schedule_export_csv, component_load, component_library_list, component_savecategories_list, levels_list, types_list, type_get, elements_list, element_get, groups_list, measure, views_list, view_get, materials_list, material_get, schedule_tablewall_create, door_create, window_create, floor_create, floor_opening_add, floor_opening_remove, ceiling_create, roof_create, roof_edge_set, roof_opening_remove, room_create, grid_create, column_create, beam_create, columns_at_grids, beams_on_grids, beams_between_columns, slab_join_supports, structure_number, brace_create, braces_between_columns, truss_create, rebar_create, rebar_typical, analytical_model, analytical_export, footing_create, strip_footing_create, foundation_slab_create, footings_under_columns, strip_footings_under_walls, stair_create, stair_check, stair_railings_add, ramp_create, ramp_check, ramp_type_create, railing_create, component_placepipe_create, conduit_create, systems_list, system_create, system_set, system_delete, system_assign, circuit_loads, mep_fittings, mep_connect, mep_sizing, mep_size_applyelements_delete, elements_move, elements_copy, elements_rotate, elements_mirror, elements_pin, element_flip, elements_turn, elements_export, elements_paste, wall_join, geometry_join, geometry_unjoin, group_create, group_ungroup, trim_corner, trim_extend, element_split, element_offset, element_align, element_move_end, grids_align_ends, element_set, elements_set_typedimension_create, dimension_chain_create, dimension_set_value, text_create, text_add_leader, text_remove_leadertype_set, type_duplicate, type_delete, component_create, material_create, material_duplicate, material_rename, material_set, material_deletelevel_create, level_set, level_delete, view_create, view_set, view_duplicate, view_delete, sheet_place_view, sheet_remove_viewportview_graphics_get, view_graphics_set, element_override_set, element_hide_in_view, filters_list, filter_create, filter_set, filter_delete, filter_elements, view_filter_add, view_filter_set, view_filter_remove, view_filter_move, templates_list, template_create, template_set, template_delete, view_template_apply, view_template_assign, view_temporary, view_temporary_applyphases_list, phase_create, phase_set, phase_delete, elements_phase_set, elements_demolish, phase_creation_set, phase_filters_list, phase_filter_create, phase_filter_set, phase_filter_delete, phase_graphics_get, phase_graphics_setproject_newfile — Start a new project from the template (unsaved changes are discarded).
No parameters.
project_openfile — Open a ConstructCAD project (.ccad), replacing the session’s project. Damaged files are repaired and the number of repairs reported.
| Parameter | Type | Description | |
|---|---|---|---|
path |
string | required | Path of the .ccad file. |
project_savefile — Save the project to its file, or to path (which becomes its file).
| Parameter | Type | Description | |
|---|---|---|---|
path |
string | optional | Where to save; required when the project has no file yet. |
project_infoquery — Project information, file, unsaved state and counts.
No parameters.
project_info_setedit — Change the project information (title block fields).
| Parameter | Type | Description | |
|---|---|---|---|
address |
string | optional | Project address. |
author |
string | optional | Author of the drawings. |
client |
string | optional | Client name. |
name |
string | optional | Project name. |
number |
string | optional | Project number. |
undoedit — Undo the last edit.
No parameters.
redoedit — Redo the last undone edit.
No parameters.
units_getquery — The project units (length, area, volume, angle, slope, currency, number format).
No parameters.
units_setedit — Change the project units: values is merged into the object units_get returns (only the fields given change).
| Parameter | Type | Description | |
|---|---|---|---|
values |
JSON | required | Fields to change, shaped like the result of units_get. |
language_setedit — Language of default names, messages and sheet labels (en, pt-BR, es, fr, de, it, lo, pl, uk-UA, zh-TW or zh-CN).
| Parameter | Type | Description | |
|---|---|---|---|
language |
string | required | Language code: en, pt-BR, es, fr, de, it, lo, pl, uk-UA, zh-TW or zh-CN. |
ifc_importfile — Import an IFC file (IFC2X3 or IFC4), replacing the session’s project. The result has no file yet; save it with project_save and a path.
| Parameter | Type | Description | |
|---|---|---|---|
path |
string | required | Path of the .ifc file. |
ifc_exportfile — Export the project as IFC4.
| Parameter | Type | Description | |
|---|---|---|---|
path |
string | required | Path of the .ifc file to write. |
sheet_exportfile — Export a sheet as vector PDF or SVG (by format, else by the file extension).
| Parameter | Type | Description | |
|---|---|---|---|
path |
string | required | Path of the file to write (.pdf or .svg). |
sheet |
id or name | required | Sheet id or name. |
format |
string | optional | pdf or svg. |
view_exportfile — Export any view with a drawing (plan, elevation, section, 3D view as a hidden-line axonometric, legend, drafting view, diagram or sheet) as a PNG image, or as vector SVG or PDF (by format, else by the file extension). The view is drawn at its scale as printed, without temporary hiding, on a page that fits it; sheets keep their paper size.
| Parameter | Type | Description | |
|---|---|---|---|
path |
string | required | Path of the file to write (.png, .svg or .pdf). |
view |
id or name | required | View id or name. |
dpi |
number | optional | Resolution of a PNG, in dots per inch (default 150). |
format |
string | optional | png, svg or pdf. |
schedule_export_csvfile — Export a schedule view as CSV (UTF-8; semicolons when the decimal comma is used).
| Parameter | Type | Description | |
|---|---|---|---|
path |
string | required | Path of the .csv file to write. |
view |
id or name | required | Schedule view id or name. |
component_loadedit — Load a component file (.ccomp): its types and missing materials join the project.
| Parameter | Type | Description | |
|---|---|---|---|
path |
string | required | Path of the .ccomp file. |
component_library_listfile — List the component library: the component files (.ccomp) in folders and their subfolders, each with its component, kind, category (doors and windows have their own), types, parameters and connectors; search keeps those whose component, type names or descriptions contain it. Files that do not load are listed with the reason.
| Parameter | Type | Description | |
|---|---|---|---|
folders |
[string, …] | required | Folders to look in. |
search |
string | optional | Text to look for (any case). |
component_savefile — Save a component (all its types and the materials they use) to a .ccomp file.
| Parameter | Type | Description | |
|---|---|---|---|
component |
string | required | Component name (as in a component type’s params.component). |
path |
string | required | Path of the .ccomp file to write. |
categories_listquery — Element categories with their display names and how many elements and types each has.
No parameters.
levels_listquery — Levels from the lowest, with their elevations (meters).
No parameters.
types_listquery — Types, optionally of one category.
| Parameter | Type | Description | |
|---|---|---|---|
category |
string | optional | Category name (wall, door, component…). |
type_getquery — A type with all its parameters (params, editable with type_set) and identity data (info).
| Parameter | Type | Description | |
|---|---|---|---|
type |
id or name | required | Type id or name. |
elements_listquery — Elements, optionally of one category, level and/or type, or only those shown in a view (all the instances of a type visible in it, for example), with a short summary each.
| Parameter | Type | Description | |
|---|---|---|---|
category |
string | optional | Category name (wall, door, component…); see categories_list. |
level |
id or name | optional | Level id or name. |
type |
id or name | optional | Type id or name: only its instances. |
view |
id or name | optional | View id or name: only the elements the view shows. |
element_getquery — An element with all its parameters (params, editable with element_set) and derived values (length, height, thickness, volume, room area and perimeter; for beams the length after joins and what each end is framed into).
| Parameter | Type | Description | |
|---|---|---|---|
id |
integer | required | Element id. |
groups_listquery — The project’s groups with their members.
No parameters.
measurequery — Measure between two points of a view (meters on its plane: plan coordinates in plans): the distance, its horizontal and vertical parts and its angle. When both points lie on lines (line_a, line_b, each two points) that are parallel, the distance between the lines is given too. Nothing is created.
| Parameter | Type | Description | |
|---|---|---|---|
a |
[x, y] | required | First point [x, y]. |
b |
[x, y] | required | Second point [x, y]. |
line_a |
[[x, y], [x, y]] | optional | The line the first point was taken on, as two points. |
line_b |
[[x, y], [x, y]] | optional | The line the second point was taken on, as two points. |
views_listquery — Views (plans, ceiling plans, elevations, sections, 3D, legends, schedules, sheets), optionally of one category.
| Parameter | Type | Description | |
|---|---|---|---|
category |
string | optional | floor_plan, ceiling_plan, three_d, elevation, section, legend, schedule or sheet. |
view_getquery — A view with all its parameters (params, editable with view_set).
| Parameter | Type | Description | |
|---|---|---|---|
view |
id or name | required | View id or name. |
materials_listquery — Materials with their colors and how many types use each.
No parameters.
material_getquery — A material with all its fields (editable with material_set).
| Parameter | Type | Description | |
|---|---|---|---|
material |
id or name | required | Material name (or index in materials_list). |
schedule_tablequery — The table of a schedule view: headers, one row per element (with its id) and totals, formatted with the project units.
| Parameter | Type | Description | |
|---|---|---|---|
view |
id or name | required | Schedule view id or name. |
wall_createedit — Create a wall from start to end on a level: straight, or an arc through mid (or with a bulge or a radius). Its top is height above its base, or attached to top_level (plus top_offset).
| Parameter | Type | Description | |
|---|---|---|---|
end |
[x, y] | required | End point of the wall line. |
start |
[x, y] | required | Start point of the wall line. |
base_offset |
number | optional | Base offset from the level, meters. |
bulge |
number | optional | Arc walls: tan(sweep / 4), positive when the arc turns counter-clockwise from start to end (1 is a half circle; at most 10 either way). Ignored when mid is given. |
height |
number | optional | Unconnected height in meters (default 3). |
level |
id or name | optional | Level id or name (default: the lowest level). |
location_line |
string | optional | Which line of the wall start-end is: Centerline (default), CoreCenter, FinishExterior, FinishInterior, CoreExterior or CoreInterior. |
major_arc |
boolean | optional | With radius: take the longer of the two arcs (default: the shorter). |
mid |
[x, y] | optional | A point on the arc between the ends: makes an arc wall through the three points. |
radius |
number | optional | Arc walls: the radius in meters, positive when the arc turns counter-clockwise from start to end, negative clockwise; at least half the distance between the ends. Ignored when mid or bulge is given. |
top_level |
id or name | optional | Level the top is attached to, instead of a height. |
top_offset |
number | optional | Offset of the top from top_level, meters. |
type |
id or name | optional | Wall type id or name (default: the default wall type). |
door_createedit — Place a door in a wall (centered on the wall unless offset or point is given).
| Parameter | Type | Description | |
|---|---|---|---|
flip_facing |
boolean | optional | Face the other side of the wall. |
flip_hand |
boolean | optional | Hinge on the other jamb. |
offset |
number | optional | Distance along the wall from its start to the opening’s center, meters. |
point |
[x, y] | optional | A point near the wall: the opening is centered at its projection, on its side. |
sill |
number | optional | Sill height (default: the type’s default sill for windows, 0 for doors). |
type |
id or name | optional | Door or window type id or name (default: the default type). |
wall |
integer | optional | Id of the host wall; omit it to use the wall nearest point. |
window_createedit — Place a window in a wall (centered on the wall unless offset or point is given).
| Parameter | Type | Description | |
|---|---|---|---|
flip_facing |
boolean | optional | Face the other side of the wall. |
flip_hand |
boolean | optional | Hinge on the other jamb. |
offset |
number | optional | Distance along the wall from its start to the opening’s center, meters. |
point |
[x, y] | optional | A point near the wall: the opening is centered at its projection, on its side. |
sill |
number | optional | Sill height (default: the type’s default sill for windows, 0 for doors). |
type |
id or name | optional | Door or window type id or name (default: the default type). |
wall |
integer | optional | Id of the host wall; omit it to use the wall nearest point. |
floor_createedit — Create a floor slab from an outline (or the loop of walls).
| Parameter | Type | Description | |
|---|---|---|---|
boundary |
[[x, y], …] | optional | Closed outline (at least 3 points); omit with from_walls. |
from_walls |
boolean | optional | Follow the outer boundary of the walls of the level, leaving interior walls out (exterior faces; interior faces for ceilings). |
level |
id or name | optional | Level id or name (default: the lowest level). |
offset |
number | optional | Floors: top above the level (default 0). Ceilings: bottom above the level (default 2.6). Roofs: base above the level (default: top of the tallest wall). |
openings |
[[[x, y], …], …] | optional | Openings through the slab (shafts, stairwells): closed outlines inside the boundary, apart from each other. |
type |
id or name | optional | Type id or name (default: the category’s default type). |
floor_opening_addedit — Add an opening (a shaft, a stairwell) to a floor: a closed outline inside its boundary, apart from its other openings.
| Parameter | Type | Description | |
|---|---|---|---|
id |
integer | required | Floor id. |
outline |
[[x, y], …] | required | Outline of the opening, at least 3 points. |
floor_opening_removeedit — Remove one opening of a floor (by its index in the floor’s openings).
| Parameter | Type | Description | |
|---|---|---|---|
id |
integer | required | Floor id. |
index |
integer | required | Opening index, from 0. |
ceiling_createedit — Create a ceiling from an outline (or the inside of the loop of walls).
| Parameter | Type | Description | |
|---|---|---|---|
boundary |
[[x, y], …] | optional | Closed outline (at least 3 points); omit with from_walls. |
from_walls |
boolean | optional | Follow the outer boundary of the walls of the level, leaving interior walls out (exterior faces; interior faces for ceilings). |
level |
id or name | optional | Level id or name (default: the lowest level). |
offset |
number | optional | Floors: top above the level (default 0). Ceilings: bottom above the level (default 2.6). Roofs: base above the level (default: top of the tallest wall). |
type |
id or name | optional | Type id or name (default: the category’s default type). |
roof_createedit — Create a roof over an outline (or the loop of walls): flat by default; change its shape (shed, gable, hip) with element_set.
| Parameter | Type | Description | |
|---|---|---|---|
boundary |
[[x, y], …] | optional | Closed outline (at least 3 points); omit with from_walls. |
from_walls |
boolean | optional | Follow the outer boundary of the walls of the level, leaving interior walls out (exterior faces; interior faces for ceilings). |
holes |
[[[x, y], …], …] | optional | Openings through the roof (courtyards): closed outlines inside the boundary, apart from each other. Pitched roofs slope down to their eaves too. |
level |
id or name | optional | Level id or name (default: the lowest level). |
offset |
number | optional | Floors: top above the level (default 0). Ceilings: bottom above the level (default 2.6). Roofs: base above the level (default: top of the tallest wall). |
overhang |
number | optional | Overhang beyond the outline, meters (default 0.5). |
type |
id or name | optional | Type id or name (default: the category’s default type). |
roof_edge_setedit — Set the slope of one edge of a gable or hip roof’s outline (edge i runs from outline point i to the next): 0 makes it a gable end, a positive slope an eave rising at that slope, null returns it to the shape’s own.
| Parameter | Type | Description | |
|---|---|---|---|
edge |
integer | required | Edge index, from 0. |
id |
integer | required | Roof id. |
slope |
number | optional | Slope as rise over run (0.5 = 50 %), 0 for a gable end, or null for the roof’s slope. |
roof_opening_removeedit — Remove one opening of a roof (by its index in the roof’s holes).
| Parameter | Type | Description | |
|---|---|---|---|
id |
integer | required | Roof id. |
index |
integer | required | Opening index, from 0. |
room_createedit — Create a room at a point enclosed by room-bounding walls (its boundary follows the walls).
| Parameter | Type | Description | |
|---|---|---|---|
point |
[x, y] | required | A point inside the room. |
height |
number | optional | Upper limit above the level (default: the level’s height). |
level |
id or name | optional | Level id or name (default: the lowest level). |
name |
string | optional | Default: the room default name. |
number |
string | optional | Default: the next free number. |
grid_createedit — Create a grid line. Without name it takes the next name of its series: the one after the most recently placed grid parallel to it (1 → 2, A → B, Z → AA, A1 → A2, 1.1 → 1.2); a grid across the existing ones starts a new series (letters across numbered grids, numbers otherwise). Names given this way are unique among the grids.
| Parameter | Type | Description | |
|---|---|---|---|
end |
[x, y] | required | End point. |
start |
[x, y] | required | Start point (where the bubble is). |
level |
id or name | optional | Level id or name (default: the lowest level). |
name |
string | optional | Grid name (default: the next name of its series). |
column_createedit — Place a column; its top goes to the level above (or height when there is none).
| Parameter | Type | Description | |
|---|---|---|---|
position |
[x, y] | required | Center of the column in plan. |
height |
number | optional | Unconnected height (default: the level’s height). |
level |
id or name | optional | Level id or name (default: the lowest level). |
rotation |
number | optional | Rotation in plan, degrees. |
structural |
boolean | optional | Load-bearing (default true); an architectural column is cut by the walls it is joined with. |
top_level |
id or name | optional | Level the top is attached to (default: the level above). |
top_offset |
number | optional | Offset of the top from top_level, meters. |
type |
id or name | optional | Type id or name (default: the category’s default type). |
beam_createedit — Create a beam from start to end; its location line is top_offset above the level (default: the level’s height), at the top of the section unless vertical says otherwise.
| Parameter | Type | Description | |
|---|---|---|---|
end |
[x, y] | required | End of the beam axis. |
start |
[x, y] | required | Start of the beam axis. |
end_offset |
number | optional | Elevation of the location line at the end, when it differs from the start (a sloped beam). |
lateral |
string | optional | Line across the section the axis follows: center (default), left or right face. |
level |
id or name | optional | Level id or name (default: the lowest level). |
top_offset |
number | optional | Elevation of the location line above the level, meters (default: the level height). |
type |
id or name | optional | Type id or name (default: the category’s default type). |
vertical |
string | optional | Height of the section at the location elevation: top (default), center or bottom. |
columns_at_gridsedit — Place a column at every intersection of grid lines on a level, skipping places that already have a column. Returns the new ids (created) and how many intersections were skipped.
| Parameter | Type | Description | |
|---|---|---|---|
grids |
[id, …] | optional | Grid ids (default: every grid). |
height |
number | optional | Unconnected height (default: the level’s height). |
level |
id or name | optional | Level id or name (default: the lowest level). |
rotation |
number | optional | Rotation in plan, degrees. |
structural |
boolean | optional | Load-bearing (default true). |
top_level |
id or name | optional | Level the tops are attached to (default: the level above). |
top_offset |
number | optional | Offset of the tops from top_level, meters. |
type |
id or name | optional | Column type id or name (default: the category’s default type). |
beams_on_gridsedit — Place beams along grid lines: on each grid, a beam between each pair of neighboring columns of the level whose centers lie on it. Spans that already have a beam are skipped.
| Parameter | Type | Description | |
|---|---|---|---|
grids |
[id, …] | optional | Grid ids (default: every grid). |
level |
id or name | optional | Level id or name (default: the lowest level). |
top_offset |
number | optional | Top of the beams above the level, meters (default: the level height). |
type |
id or name | optional | Beam type id or name (default: the category’s default type). |
beams_between_columnsedit — Place beams from column to column in the order given (a chain), on the level of the first column. Spans that already have a beam are skipped.
| Parameter | Type | Description | |
|---|---|---|---|
columns |
[id, …] | required | Column ids, at least two, in the order to connect. |
top_offset |
number | optional | Top of the beams above the level, meters (default: the level height). |
type |
id or name | optional | Beam type id or name (default: the category’s default type). |
slab_join_supportsedit — Join each slab with the structure that carries it: beams, structural columns and structural walls whose bodies overlap it (default: every floor, or every floor of level). Beams and columns cut the slab, the slab cuts walls, and the shared volume counts once. Pairs already joined are left as they are.
| Parameter | Type | Description | |
|---|---|---|---|
floors |
[id, …] | optional | Floor ids (default: every floor, or those of level). |
level |
id or name | optional | Level id or name, when no floors are given. |
structure_numberedit — Number the marks of beams, columns and pad footings (default: all three) in reading order: horizontal beams top to bottom then left to right, the other beams left to right then top to bottom, columns and footings top to bottom then left to right. Marks are a prefix per category (V, P, S in Portuguese; B, C, F in English) and a number.
| Parameter | Type | Description | |
|---|---|---|---|
categories |
[string, …] | optional | Categories to number: beam, column and/or foundation (default: all three). |
level |
id or name | optional | Level id or name (default: every level, numbered as one sequence per category). |
brace_createedit — Create a brace: a member between two points in space ([x, y, z], z above the level), its axis through both. Its ends must not be one above the other.
| Parameter | Type | Description | |
|---|---|---|---|
end |
[number, …] | required | End point [x, y, z]. |
start |
[number, …] | required | Start point [x, y, z]. |
level |
id or name | optional | Level id or name (default: the lowest level). |
type |
id or name | optional | Beam type id or name (default: the category’s default type). |
braces_between_columnsedit — Brace the bay between two columns: x (default) crosses two members from the base of each column to the top of the other, diagonal places one from the base of the first to the top of the second.
| Parameter | Type | Description | |
|---|---|---|---|
columns |
[id, …] | required | The two column ids. |
pattern |
string | optional | x or diagonal. |
type |
id or name | optional | Beam type id or name (default: the category’s default type). |
truss_createedit — Lay out a plane truss from start to end: a bottom and a top chord height apart, panels panels and the web of pattern (pratt, the default, howe or warren). Pratt and Howe trusses get a post at every panel point, Warren trusses only at the ends; posts are columns. The members form a group, so the truss moves as one.
| Parameter | Type | Description | |
|---|---|---|---|
end |
[x, y] | required | End of the truss in plan. |
height |
number | required | Distance between the chord axes, meters. |
start |
[x, y] | required | Start of the truss in plan. |
bottom_offset |
number | optional | Elevation of the bottom chord’s axis above the level (default: the level height minus height). |
chord_type |
id or name | optional | Beam type of the chords (default: the category’s default type). |
level |
id or name | optional | Level id or name (default: the lowest level). |
panels |
integer | optional | Number of panels (default: about one per 1.5 m). |
pattern |
string | optional | pratt, howe or warren. |
post_type |
id or name | optional | Column type of the posts (default: the first profile column type). |
web_type |
id or name | optional | Beam type of the diagonals (default: the chord type). |
rebar_createedit — Add a set of bars to a beam or column: layout is top or bottom (beams), perimeter (columns) with count bars, or stirrups every spacing. The bars are cover inside the faces (default 2.5 cm) and follow the host.
| Parameter | Type | Description | |
|---|---|---|---|
host |
integer | required | Beam or column id. |
layout |
string | required | top, bottom, perimeter or stirrups. |
count |
integer | optional | Number of longitudinal bars (default: 2 in beams, 4 in columns). |
cover |
number | optional | Concrete cover, meters (default 0.025). |
spacing |
number | optional | Stirrup spacing, meters (default 0.15). |
type |
id or name | optional | Bar type id or name (default: the type nearest 10 mm, or 5 mm for stirrups). |
rebar_typicaledit — Give beams and columns without reinforcement a typical one: beams two (three when 20 cm wide or more) 10 mm bars at the bottom, two 8 mm at the top and 5 mm stirrups every 15 cm; columns four 10 mm bars (six in round ones) and 5 mm ties every 15 cm. Default: every beam and column of level (or of the project).
| Parameter | Type | Description | |
|---|---|---|---|
elements |
[id, …] | optional | Beam and column ids (default: all of level, or of the project). |
level |
id or name | optional | Level id or name, when no elements are given. |
analytical_modelquery — The analytical model of the structure: structural columns and beams as members along their center lines between shared nodes. Beams framed into columns end on the column axis, beams ending on beams end on their line, and members are split where others connect.
No parameters.
analytical_exportfile — Write the analytical model (as analytical_model returns it) to a JSON file.
| Parameter | Type | Description | |
|---|---|---|---|
path |
string | required | Path of the .json file to write. |
footing_createedit — Place a pad footing centered at position; its top is top_offset above the level (default 0).
| Parameter | Type | Description | |
|---|---|---|---|
position |
[x, y] | required | Center of the pad in plan. |
level |
id or name | optional | Level id or name (default: the lowest level). |
rotation |
number | optional | Rotation in plan, degrees. |
top_offset |
number | optional | Top above the level, meters (default 0). |
type |
id or name | optional | Pad footing type id or name (default: the first pad type). |
strip_footing_createedit — Place a strip footing (a ground beam) centered on the line start-end; its top is top_offset above the level (default 0). Strips meet at corners and tees like beams.
| Parameter | Type | Description | |
|---|---|---|---|
end |
[x, y] | required | End of the strip’s center line. |
start |
[x, y] | required | Start of the strip’s center line. |
level |
id or name | optional | Level id or name (default: the lowest level). |
top_offset |
number | optional | Top above the level, meters (default 0). |
type |
id or name | optional | Strip footing type id or name (default: the first strip type). |
foundation_slab_createedit — Create a foundation slab (a raft) from an outline or under the loop of walls of the level; offset is its top above the level (default 0).
| Parameter | Type | Description | |
|---|---|---|---|
boundary |
[[x, y], …] | optional | Closed outline (at least 3 points); omit with from_walls. |
from_walls |
boolean | optional | Follow the outer boundary of the walls of the level, leaving interior walls out (exterior faces; interior faces for ceilings). |
level |
id or name | optional | Level id or name (default: the lowest level). |
offset |
number | optional | Floors: top above the level (default 0). Ceilings: bottom above the level (default 2.6). Roofs: base above the level (default: top of the tallest wall). |
type |
id or name | optional | Type id or name (default: the category’s default type). |
footings_under_columnsedit — Place a pad footing under each column (default: every column of the level), centered and turned with it, its top at the column’s base. Columns that already stand on a pad are skipped.
| Parameter | Type | Description | |
|---|---|---|---|
columns |
[id, …] | optional | Column ids (default: every column of level). |
level |
id or name | optional | Level id or name, when no columns are given (default: the lowest level). |
type |
id or name | optional | Pad footing type id or name (default: the first pad type). |
strip_footings_under_wallsedit — Place a strip footing under each wall (default: every wall of the level), along its body’s centerline, its top at the wall’s base. Walls that already have a strip are skipped; strips meet at corners like beams.
| Parameter | Type | Description | |
|---|---|---|---|
level |
id or name | optional | Level id or name, when no walls are given (default: the lowest level). |
type |
id or name | optional | Strip footing type id or name (default: the first strip type). |
walls |
[id, …] | optional | Wall ids (default: every wall of level). |
stair_createedit — Create a stair starting at start (the middle of its first riser) and rising along direction up to the level above (or height). Risers and treads follow the type: the fewest risers within its maximum, and a fixed tread or one from Blondel’s formula (2 × riser + tread). shape lays it out straight, with a landing, L- or U-shaped, or around a center.
| Parameter | Type | Description | |
|---|---|---|---|
start |
[x, y] | required | Start of the run (center of the first step’s edge). |
direction |
number | optional | Direction of the first flight in plan, degrees counter-clockwise from +X. |
gap |
number | optional | Clear gap between the flights of a U-shaped stair, meters (default 0.1). |
height |
number | optional | Height when there is no level above (default 3). |
inner_radius |
number | optional | Radius of the inner edge of a spiral stair, meters (default 0.15). |
landing |
number | optional | Landing depth along the first flight, meters (default: the stair width). |
level |
id or name | optional | Level id or name (default: the lowest level). |
shape |
string | optional | Plan shape: straight (default), straight_landing, l_shaped, u_shaped or spiral. |
split |
integer | optional | Risers of the first flight (default: half of them). |
top_level |
id or name | optional | Level the stair rises to (default: the level above). |
turn |
string | optional | Side the stair turns to, walking up: left (default) or right. |
type |
id or name | optional | Type id or name (default: the category’s default type). |
winders |
integer | optional | Winder treads in the corner of an L-shaped stair instead of a landing (2 to 6). |
stair_checkquery — Check a stair’s steps: riser count and height, tread on the walking line, Blondel’s step 2 × riser + tread and the rules of its type they break (riser out of range, short tread, step out of the Blondel range, short landing).
| Parameter | Type | Description | |
|---|---|---|---|
id |
integer | required | Stair element id. |
stair_railings_addedit — Add railings along the sides of a stair or a ramp: they follow its flights, landings and turns (at the pitch of the nosings on stairs), and go with it when it changes, moves or is deleted.
| Parameter | Type | Description | |
|---|---|---|---|
id |
integer | required | Stair or ramp element id. |
inset |
number | optional | Distance in from the edge of the stair, meters (default 0.05). |
side |
string | optional | left, right or both (default), walking up. |
type |
id or name | optional | Railing type id or name (default: the category’s default type). |
ramp_createedit — Create a ramp starting at start (the middle of its foot) and rising along direction up to the level above (or height). Flights follow the type’s rules: at most its steepest slope and its highest rise per flight, with landings between them; shape lays them out in line, L- or U-shaped (switchback), or as a helix. A project without a ramp type gets one.
| Parameter | Type | Description | |
|---|---|---|---|
start |
[x, y] | required | Foot of the ramp (middle of its lower edge). |
direction |
number | optional | Direction of the first flight in plan, degrees counter-clockwise from +X. |
gap |
number | optional | Clear gap between the flights of a U-shaped ramp, meters (default 0.1). |
height |
number | optional | Height when there is no level above (default 3). |
inner_radius |
number | optional | Radius of the inner edge of a spiral ramp, meters (default 1.5). |
landing |
number | optional | Landing length, meters (default: the type’s shortest landing). |
level |
id or name | optional | Level id or name (default: the lowest level). |
shape |
string | optional | Plan shape: straight (default), l_shaped, u_shaped or spiral. |
slope |
number | optional | Slope of the flights, percent (default: the steepest the type allows). |
top_level |
id or name | optional | Level the ramp rises to (default: the level above). |
turn |
string | optional | Side the ramp turns to, going up: left (default) or right. |
type |
id or name | optional | Type id or name (default: the category’s default type). |
ramp_checkquery — Check a ramp: its slope, flights (count, rise and run of each) and the rules of its type it breaks (too steep, a flight rising too high, a short landing).
| Parameter | Type | Description | |
|---|---|---|---|
id |
integer | required | Ramp element id. |
ramp_type_createedit — Create a ramp type: a slab thickness thick and width wide, within the accessibility rules given (by default 8.33 % slope, 0.80 m rise per flight and 1.20 m landings).
| Parameter | Type | Description | |
|---|---|---|---|
max_flight_rise |
number | optional | Highest rise of one flight, meters (default 0.80). |
max_slope |
number | optional | Steepest slope, percent (default 8.33). |
min_landing |
number | optional | Shortest landing, meters (default 1.20). |
name |
string | optional | Type name (default: the template’s ramp name). |
thickness |
number | optional | Slab thickness, meters (default 0.15). |
width |
number | optional | Width, meters (default 1.2). |
railing_createedit — Create a railing along a path (at least 2 points).
| Parameter | Type | Description | |
|---|---|---|---|
path |
[[x, y], …] | required | Points of the railing path (at least 2). |
base_offset |
number | optional | Base above the level, meters. |
level |
id or name | optional | Level id or name (default: the lowest level). |
type |
id or name | optional | Type id or name (default: the category’s default type). |
component_placeedit — Place a component (furniture, plumbing fixture, electrical device…) of a component type. Electrical devices default to their usual mounting height (outlets 0.30 m, switches 1.10 m, boards 1.30 m, wall lights 2.10 m, ceiling lights at the level height) and may be put on a circuit.
| Parameter | Type | Description | |
|---|---|---|---|
position |
[x, y] | required | Insertion point in plan. |
type |
id or name | required | Component type id or name. |
base_offset |
number | optional | Base above the level, meters (default 0; for devices, their mounting height). |
level |
id or name | optional | Level id or name (default: the lowest level). |
rotation |
number | optional | Rotation in plan, degrees. |
system |
id or name | optional | Circuit or system id, name or code to connect it to. |
pipe_createedit — Create a pipe from start to end (or a vertical riser at start up or down to end_offset), in a plumbing system. Its center line starts offset above the level (default: where it starts on a pipe of its system, such as the end of a run or a riser; else 0.60 m for supply and vent pipes, -0.30 m for drains). Drains fall along the flow by slope (percent; default 2 % up to 75 mm, 1 % above); other pipes are level unless end_offset or slope says otherwise.
| Parameter | Type | Description | |
|---|---|---|---|
start |
[x, y] | required | Start of the center line in plan. |
end |
[x, y] | optional | End in plan (default: the start, for a riser). |
end_offset |
number | optional | Elevation of the end above the level, meters (overrides slope). |
level |
id or name | optional | Level id or name (default: the lowest level). |
offset |
number | optional | Elevation of the start above the level, meters. |
slope |
number | optional | Fall from the start to the end, percent of the plan length. |
system |
id or name | optional | Plumbing system id, name or code (e.g. “AF”). |
type |
id or name | optional | Pipe type id or name (default: the first pipe type). |
conduit_createedit — Create a conduit from start to end (or a vertical drop at start to end_offset) carrying circuits. It runs offset above the level (default: where it starts on another conduit, such as the end of a run or a vertical drop; else in the slab above, at the level height).
| Parameter | Type | Description | |
|---|---|---|---|
start |
[x, y] | required | Start of the center line in plan. |
circuits |
[id or name, …] | optional | Circuits it carries: ids, names or codes. |
end |
[x, y] | optional | End in plan (default: the start, for a vertical drop). |
end_offset |
number | optional | Elevation of the end above the level, meters (default: as the start). |
level |
id or name | optional | Level id or name (default: the lowest level). |
offset |
number | optional | Elevation of the start above the level, meters. |
type |
id or name | optional | Conduit type id or name (default: the first conduit type). |
systems_listquery — List the plumbing systems and electrical circuits with what is in them: element count, pipe or conduit length, fixture units and supply weights of plumbing fixtures, and the devices and load of circuits.
No parameters.
system_createedit — Create a plumbing system or an electrical circuit. kind is cold_water, hot_water, sanitary, vent, rainwater, power or lighting; circuits may name the board (panel, a component element; default: the project’s only board, if it has one) feeding them and their voltage (default 127 V). A circuit’s code defaults to the next free number on its board.
| Parameter | Type | Description | |
|---|---|---|---|
kind |
string | required | What it carries. |
code |
string | optional | Short code shown in tags (e.g. “AF”, a circuit number). |
color |
[id, …] | optional | Display color [r, g, b] (default: by kind). |
name |
string | optional | Name (default: the code, or the kind’s name). |
panel |
integer | optional | Circuits: the distribution board feeding it (element id; default: the only board). |
voltage |
number | optional | Circuits: nominal voltage, volts. |
system_setedit — Change a system or circuit: params is a merge patch over the values systems_list shows (name, code, kind, color, panel, voltage).
| Parameter | Type | Description | |
|---|---|---|---|
params |
JSON | required | Values to change. |
system |
id or name | required | System id, name or code. |
system_deleteedit — Delete a system or circuit; its pipes, conduits and devices stay, outside any system.
| Parameter | Type | Description | |
|---|---|---|---|
system |
id or name | required | System id, name or code. |
system_assignedit — Put elements in a system or circuit, or take them out (remove). A pipe belongs to one system (it moves); a conduit carries several circuits (one is added); a fixture or device connects to one.
| Parameter | Type | Description | |
|---|---|---|---|
elements |
[id, …] | required | Pipe, conduit and component ids. |
system |
id or name | required | System id, name or code. |
remove |
boolean | optional | Take them out instead. |
circuit_loadsquery — The load schedule of the circuits (of one board, or all): per circuit its devices, installed load (VA) and current at its voltage, with the total per board.
| Parameter | Type | Description | |
|---|---|---|---|
panel |
integer | optional | Distribution board element id (default: every circuit). |
mep_fittingsquery — The fittings where pipes and conduits meet, counted by category, kind, angle (elbows), diameters and system: the fittings takeoff.
| Parameter | Type | Description | |
|---|---|---|---|
level |
id or name | optional | Level id or name (default: every level). |
mep_connectedit — Connect plumbing fixtures and electrical devices to the nearest pipe or conduit of their level (or riser of another floor passing through it). A fixture gets a branch to the nearest sanitary drain (falling towards it, with a drop from the floor), and to the nearest cold (and, when it takes it, hot) water pipe; a device gets a conduit to the nearest conduit, with a drop from its mounting height, carrying its circuit. A component with connectors gets a branch from each connector to the nearest run of a system of the connector’s kind, from the connector’s position and of its diameter (leaving vertically or horizontally as the connector points). Branches end on the runs, which forms tees. system connects only to that system or circuit.
| Parameter | Type | Description | |
|---|---|---|---|
elements |
[id, …] | required | Fixture and device ids. |
system |
id or name | optional | Only to this system or circuit (id, name or code). |
mep_sizingquery — Size the building services from their networks (simplified tables of common Brazilian practice): drains by the fixture units upstream, water pipes by the flow from the fixtures’ weights (at most 3 m/s), circuits by their current (breaker, copper conductor) and the voltage drop to the farthest device (at most 4 %). Diameters in mm, lengths in m.
No parameters.
mep_size_applyedit — Give each sized pipe the smallest pipe type of the project at least as wide as mep_sizing requires. Pipes already wide enough keep their type unless downsize is set.
| Parameter | Type | Description | |
|---|---|---|---|
downsize |
boolean | optional | Also narrow pipes wider than required. |
elements_deleteedit — Delete elements (doors and windows of deleted walls go too; pinned elements stay).
| Parameter | Type | Description | |
|---|---|---|---|
ids |
[id, …] | required | Element ids. |
elements_moveedit — Move elements by delta (walls take their doors and windows; doors and windows alone slide along their wall).
| Parameter | Type | Description | |
|---|---|---|---|
delta |
[x, y] | required | Displacement [dx, dy] in meters. |
ids |
[id, …] | required | Element ids. |
elements_copyedit — Copy elements by delta; with count > 1, a linear array of that many copies spaced by delta.
| Parameter | Type | Description | |
|---|---|---|---|
delta |
[x, y] | required | Displacement [dx, dy] of the first copy, meters (the next ones repeat it). |
ids |
[id, …] | required | Element ids. |
count |
integer | optional | Number of copies (default 1, at most 1000). |
elements_rotateedit — Rotate elements by angle degrees (counter-clockwise) about center (default: the center of their extents); with copy, rotated copies.
| Parameter | Type | Description | |
|---|---|---|---|
angle |
number | required | Angle in degrees, counter-clockwise. |
ids |
[id, …] | required | Element ids. |
center |
[x, y] | optional | Center of rotation (default: the center of the elements’ extents). |
copy |
boolean | optional | Rotate copies, keeping the originals. |
elements_mirroredit — Mirror elements across an axis: two points, or the line of a wall, grid, beam or railing (axis_element). Copies by default (copy: false moves them).
| Parameter | Type | Description | |
|---|---|---|---|
ids |
[id, …] | required | Element ids. |
axis |
[[x, y], [x, y]] | optional | Two points of the axis. |
axis_element |
integer | optional | Id of an element whose line is the axis. |
copy |
boolean | optional | Keep the originals and mirror copies (default true). |
elements_pinedit — Pin elements (they cannot be moved or deleted) or unpin them.
| Parameter | Type | Description | |
|---|---|---|---|
ids |
[id, …] | required | Element ids. |
pinned |
boolean | required | true to pin, false to unpin. |
element_flipedit — Flip a door or window to the other side of its wall (facing) and/or to the other jamb (hand).
| Parameter | Type | Description | |
|---|---|---|---|
id |
integer | required | Id of the door or window. |
facing |
boolean | optional | Flip to the other side of the wall. |
hand |
boolean | optional | Flip the hinge to the other jamb. |
elements_turnedit — Turn elements a quarter: components and columns rotate 90° about their insertion point; doors and windows flip to the other side of their wall (the Space key on a selection). Others and pinned elements are left alone.
| Parameter | Type | Description | |
|---|---|---|---|
ids |
[id, …] | required | Element ids. |
elements_exportquery — The elements as a portable set for elements_paste: doors and windows of the given walls come along. The set keeps type, level and view ids, so it pastes into this project or one sharing them.
| Parameter | Type | Description | |
|---|---|---|---|
ids |
[id, …] | required | Element ids. |
elements_pasteedit — Paste a set from elements_export moved by delta, on level when given (else on their own levels). Elements whose type, level, view or wall does not exist here are skipped. Returns the new ids.
| Parameter | Type | Description | |
|---|---|---|---|
elements |
JSON | required | The elements of an elements_export result. |
delta |
[x, y] | optional | Displacement [dx, dy], meters (default: none). |
level |
id or name | optional | Level id or name to paste on (default: each element’s own level). |
wall_joinedit — Allow or disallow joining at one end of a wall or beam. A wall end joins other walls; a beam end stops at the face of a structural column it lies in, or meets other beams at the same depth (mitered corners, butt joints).
| Parameter | Type | Description | |
|---|---|---|---|
end |
string | required | start or end. |
id |
integer | required | Wall or beam id. |
joined |
boolean | required | true to allow joining at that end, false to keep it free. |
geometry_joinedit — Join the geometry of two elements that touch or overlap (walls, floors, ceilings, roofs, columns, beams, stairs, railings, components). Where they overlap, one cuts the other: structural columns and beams cut walls, floors, ceilings and roofs; floors, ceilings and roofs cut walls; walls cut architectural columns; between equals the first cuts the second. The shared volume is counted once, and plans and sections draw two elements cut in the same material as one piece.
| Parameter | Type | Description | |
|---|---|---|---|
first |
integer | required | The first element. |
second |
integer | required | The second element. |
geometry_unjoinedit — Unjoin the geometry of two joined elements: each keeps its whole body again.
| Parameter | Type | Description | |
|---|---|---|---|
first |
integer | required | The first element. |
second |
integer | required | The second element. |
group_createedit — Group elements: selecting one of them selects them all, so they move, copy and rotate together. Elements already in a group leave it.
| Parameter | Type | Description | |
|---|---|---|---|
ids |
[id, …] | required | The elements (at least two). |
name |
string | optional | Group name (default: “Group N”). |
group_ungroupedit — Ungroup: the group goes, its elements stay.
| Parameter | Type | Description | |
|---|---|---|---|
group |
integer | required | Group id (see groups_list, or group in element_get). |
trim_corneredit — Trim or extend two linear elements (walls, beams, grids) to meet at a corner; each pick point marks the part of its element to keep. Arc walls meet lines and other arcs where their circles cross them.
| Parameter | Type | Description | |
|---|---|---|---|
a |
integer | required | First element id. |
b |
integer | required | Second element id. |
pick_a |
[x, y] | required | A point on the part of a to keep. |
pick_b |
[x, y] | required | A point on the part of b to keep. |
trim_extendedit — Trim or extend a linear element to the line of a reference element (the circle of an arc wall); the pick point marks the part to keep. Arc walls trim and extend along their circle.
| Parameter | Type | Description | |
|---|---|---|---|
id |
integer | required | Element to trim or extend. |
pick |
[x, y] | required | A point on the part to keep. |
reference |
integer | required | Id of the element whose line is the boundary. |
element_splitedit — Split a linear element (wall, beam, grid) at a point; returns the new element.
| Parameter | Type | Description | |
|---|---|---|---|
id |
integer | required | Element id. |
point |
[x, y] | required | Where to split (projected on the element’s line). |
element_offsetedit — Copy a linear element parallel at distance (positive: to the left of its direction).
| Parameter | Type | Description | |
|---|---|---|---|
distance |
number | required | Offset distance, meters: positive to the left of start→end, negative to the right. |
id |
integer | required | Element id. |
element_alignedit — Move a linear element parallel onto the line of a reference element, or an arc wall onto the circle of a concentric arc wall (its radius changes). Elements without a location line (columns, components) align by an edge of their plan outline, the one nearest to a picked point. Alignment is in plan, so the elements may be on different levels (a column above onto the face of the column below).
| Parameter | Type | Description | |
|---|---|---|---|
id |
integer | required | Element to move. |
reference |
integer | required | Element whose line it moves onto. |
pick |
[x, y] | optional | Plan point [x, y] near the edge of id that moves onto the reference line, for an element without a location line (the outline edge nearest to it, parallel to the reference line). Without it such an element moves its insertion point onto the line. |
reference_pick |
[x, y] | optional | Plan point [x, y] near the edge of reference to align to; needed when the reference has no location line (a column or component: the outline edge nearest to it). |
element_move_endedit — Move one end of a wall, beam or grid (joined wall ends follow).
| Parameter | Type | Description | |
|---|---|---|---|
end |
string | required | start or end. |
id |
integer | required | Element id. |
point |
[x, y] | required | New position of that end. |
grids_align_endsedit — Give grids the extents of a reference grid, so their bubbles line up: each grid parallel to the reference (within 1°) has its ends moved along its own line onto the lines through the reference’s ends perpendicular to it (each end to the reference end on its side). Grids that are not parallel and pinned grids are left alone.
| Parameter | Type | Description | |
|---|---|---|---|
reference |
integer | required | Id of the reference grid. |
ends |
string | optional | Which ends move: both (default), start (the bubble end) or end. |
grids |
[id, …] | optional | Ids of the grids to align (default: every other grid parallel to the reference). |
element_setedit — Change an element: its level (doors and windows of a wall follow it), type (of the same category), mark, comments, and any of its params as element_get shows them (merged: only the fields given change, e.g. {"height": 2.8} for a wall or {"shape": {"Gable": {"slope": 0.5, "ridge_deg": 0}}} for a roof). The edit is refused if it would leave the model invalid.
| Parameter | Type | Description | |
|---|---|---|---|
id |
integer | required | Element id. |
comments |
string | optional | New comments. |
level |
id or name | optional | New level id or name. |
mark |
string | optional | New mark. |
params |
JSON | optional | Fields of the element’s parameters to change. |
type |
id or name | optional | New type id or name (same category). |
elements_set_typeedit — Give elements a type (all must be of the type’s category), like Match Type.
| Parameter | Type | Description | |
|---|---|---|---|
ids |
[id, …] | required | Element ids. |
type |
id or name | required | Type id or name. |
dimension_createedit — Place a dimension in a 2D view (points in the view’s drawing coordinates: plan X/Y in plans; horizontal position and height in elevations and sections). Its ends follow the elements (or level lines) their points lie on, so it keeps measuring them. Aligned dimensions measure from a to b, linear ones along a horizontal or vertical direction, angular ones the angle at vertex between the rays through a and b, radial and diameter ones the arc centered at a through b.
| Parameter | Type | Description | |
|---|---|---|---|
a |
[x, y] | required | First point (center for radial and diameter). |
b |
[x, y] | required | Second point (a point on the arc for radial and diameter). |
view |
id or name | required | View id or name. |
direction |
string | optional | Linear dimensions: horizontal or vertical (default: the larger extent). |
kind |
string | optional | aligned (default), linear, angular, radial or diameter. |
offset |
number | optional | Distance of the dimension line from a (left of a→b positive), or the arc radius for angular ones (default 1). |
type |
id or name | optional | Dimension type id or name (default: the default dimension type). |
vertex |
[x, y] | optional | Vertex of an angular dimension. |
dimension_chain_createedit — Place a chain of dimensions on one dimension line (continuous dimensioning): one dimension from each point to the next, all measured along the same direction and drawn on the same line, in one undo step. Points are in the view’s drawing coordinates, as for dimension_create, and each end follows the element (or level line) it lies on. In an aligned chain, segments along the direction are aligned dimensions and the others measure along that direction.
| Parameter | Type | Description | |
|---|---|---|---|
points |
[[x, y], …] | required | The measured points in order (at least 2, at most 500). |
view |
id or name | required | View id or name. |
angle |
number | optional | Direction to measure along, degrees counter-clockwise from the X axis (overrides direction and the direction of the first two points). |
direction |
string | optional | Linear chains: horizontal or vertical (default: the larger extent of the first two points). |
kind |
string | optional | aligned (default: along the first two points) or linear (horizontal or vertical). |
offset |
number | optional | Distance of the dimension line from the first point, positive to the left of the direction (default 1). |
type |
id or name | optional | Dimension type id or name (default: the default dimension type). |
dimension_set_valueedit — Give a dimension a new value (meters; degrees for angular dimensions): in plans what its moving end measures moves or stretches; between level lines in elevations and sections the upper level moves. Radial and diameter dimensions are read-only.
| Parameter | Type | Description | |
|---|---|---|---|
id |
integer | required | Dimension element id. |
value |
number | required | New value: meters, or degrees for angular dimensions. |
text_createedit — Place a text note in a 2D view (points in the view’s drawing coordinates, as for dimensions). Without width it is single-line text (only line breaks in text break it); with width (paper millimeters) it is multiline text wrapped to that width. Leaders point from the text to what it describes, each with one segment or two (with an elbow).
| Parameter | Type | Description | |
|---|---|---|---|
position |
[x, y] | required | Top left corner of the text. |
text |
string | required | The text; a line break starts a new line. |
view |
id or name | required | View id or name. |
leaders |
[object, …] | optional | Leaders from the text. |
rotation |
number | optional | Rotation in degrees counter-clockwise. |
type |
id or name | optional | Text type id or name (default: the default text type). |
width |
number | optional | Wrapping width in paper millimeters (multiline text). |
text_add_leaderedit — Add a leader to a text note.
| Parameter | Type | Description | |
|---|---|---|---|
end |
[x, y] | required | The point the leader points at, where its symbol is drawn. |
id |
integer | required | Text element id. |
elbow |
[x, y] | optional | A bend point that splits the leader in two segments (text → elbow → end). |
symbol |
string | optional | End symbol: Arrow, OpenArrow, Triangle, Dot, Circle, Square, FilledSquare, Tick or None (default: the text type’s symbol). |
text_remove_leaderedit — Remove a leader from a text note.
| Parameter | Type | Description | |
|---|---|---|---|
id |
integer | required | Text element id. |
index |
integer | required | Index of the leader (from 0, as in params.leaders). |
type_setedit — Change a type: its name, its parameters (params, merged into what type_get shows: layers, sizes, materials, a component’s def…) and its identity data (info: type mark, description, manufacturer, cost…). Changing a component’s definition updates every type of that component, each keeping its own parameter values.
| Parameter | Type | Description | |
|---|---|---|---|
type |
id or name | required | A level, type, view or material: its numeric id or its name. |
info |
JSON | optional | Fields of the identity data to change, shaped like info in type_get. |
name |
string | optional | New name (unique in its category). |
params |
JSON | optional | Fields of the type’s parameters to change, shaped like params in type_get. |
renames |
[[old, new], …] | optional | Component parameters renamed by a new def, as [old, new] pairs in order, so the component’s other types keep their values. |
type_duplicateedit — Copy a type under a new name (default “
| Parameter | Type | Description | |
|---|---|---|---|
type |
id or name | required | A level, type, view or material: its numeric id or its name. |
elements |
[id, …] | optional | Elements of the type to switch to the copy. |
name |
string | optional | Name of the copy (default: “ |
type_deleteedit — Delete a type that no element uses (the last type of a category is kept).
| Parameter | Type | Description | |
|---|---|---|---|
type |
id or name | required | A level, type, view or material: its numeric id or its name. |
component_createedit — Create a component type: def holds its parameters and pieces, shaped like a component type’s params.def in type_get. A piece’s shape is a Box {x, y, z, width, depth, height}, a Cylinder {x, y, z, radius, height}, an Extrusion {points: [[x, y], …], z, height} (a plan outline extruded up), a Profile {plane: Plan, Front or Side, points: [{u, v, radius}, …], offset, depth} (lines and arcs drawn on a plane: u, v are x, y in plan, x, z from the front and y, z from the side; the plane stands at offset on the remaining axis and extrudes depth along it; a point’s optional radius makes the segment to the next point an arc, positive bulging outwards) or a Revolution {plane, points, offset, axis, angle} (the profile turned about the line u = axis of its plane). Every field is an expression over the parameters (meters, degrees). A piece with void: true is cut out of the solid pieces it overlaps; one with plan_only: true is a plan symbol (a door’s swing), drawn in plans and not a solid. A kind of Door or Window with an opening {width, height, sill, own_symbol} (expressions) makes a door or window type, placed with door_create or window_create: it cuts that opening in its wall; its frame has x along the wall from the opening’s center, y across it (towards the side a door opens to), z up from the sill, and WallThickness is the wall’s thickness. connectors [{name, system: ColdWater, HotWater, Sanitary, Vent, Rainwater, Power or Lighting, x, y, z, direction: Down, Up, Front (-y), Back (+y), Left (-x) or Right (+x), diameter}] are where mep_connect joins pipes and conduits (a toilet’s inlet and outlet).
| Parameter | Type | Description | |
|---|---|---|---|
def |
JSON | required | The definition: params (name, value, kind, instance) and items (pieces), shaped like a component type’s params.def in type_get. |
name |
string | required | Name of the component and of its first type. |
material_createedit — Create a material (default name “Material”; a number is added when taken).
| Parameter | Type | Description | |
|---|---|---|---|
color |
[id, …] | optional | Shading color [r, g, b], 0–255 (default light gray). |
name |
string | optional | Name (default: “Material”; a number is added when taken). |
material_duplicateedit — Copy a material under a new name (default “
| Parameter | Type | Description | |
|---|---|---|---|
material |
id or name | required | A level, type, view or material: its numeric id or its name. |
name |
string | optional | Name of the copy (default: “ |
material_renameedit — Rename a material; every type using it follows.
| Parameter | Type | Description | |
|---|---|---|---|
material |
id or name | required | A level, type, view or material: its numeric id or its name. |
name |
string | required | New name. |
material_setedit — Change a material’s fields (merged into what material_get shows: description, class, colors, patterns, transparency, finish, physical values…). Use material_rename to rename it.
| Parameter | Type | Description | |
|---|---|---|---|
material |
id or name | required | A level, type, view or material: its numeric id or its name. |
values |
JSON | required | Fields to change, shaped like the result of material_get. |
material_deleteedit — Delete a material no type uses.
| Parameter | Type | Description | |
|---|---|---|---|
material |
id or name | required | A level, type, view or material: its numeric id or its name. |
level_createedit — Add a level (default: 3 m above the highest, named “Level n”) with its floor and ceiling plans.
| Parameter | Type | Description | |
|---|---|---|---|
elevation |
number | optional | Elevation in meters. |
name |
string | optional | Level name (default: “Level n”). |
plans |
boolean | optional | Also create its floor and ceiling plans (default true). |
level_setedit — Rename a level or change its elevation (what is attached to it moves along).
| Parameter | Type | Description | |
|---|---|---|---|
level |
id or name | required | A level, type, view or material: its numeric id or its name. |
elevation |
number | optional | New elevation, meters. |
name |
string | optional | New name. |
level_deleteedit — Delete a level no element is on, with its plan views; walls rising to it keep their current height, unconnected. The last level is kept.
| Parameter | Type | Description | |
|---|---|---|---|
level |
id or name | required | A level, type, view or material: its numeric id or its name. |
view_createedit — Create a view. kind is floor_plan or ceiling_plan (with level), section (with start, end and optional depth), elevation (with direction: north, south, east or west), structural_plan (with level: a formwork plan of the structure, tagged), plumbing_plan and electrical_plan (with level: the pipes, or the conduits and devices, over the architecture, tagged), three_d, analytical (a 3D view of the analytical model), rebar (a 3D view of the reinforcement), legend (all types), schedule (with category), panel_diagram (with panel: the single-line diagram and load schedule of a distribution board; default the only board) or sheet (A3, numbered after the others).
| Parameter | Type | Description | |
|---|---|---|---|
kind |
string | required | floor_plan, ceiling_plan, structural_plan, plumbing_plan, electrical_plan, section, elevation, three_d, analytical, rebar, legend, schedule, panel_diagram or sheet. |
category |
string | optional | Schedules: the category scheduled (default wall). |
depth |
number | optional | Section depth beyond the cut line, meters (default 8). |
direction |
string | optional | Elevations: north, south (default), east or west. |
end |
[x, y] | optional | Sections: end of the cut line. |
level |
id or name | optional | Plans: level id or name (default: the lowest). |
name |
string | optional | View name (default: by kind). |
panel |
integer | optional | Distribution board element id, for a panel diagram. |
scale |
integer | optional | Scale denominator (e.g. 50 for 1:50). |
start |
[x, y] | optional | Sections: start of the cut line. |
view_setedit — Change a view: name, scale, phase and phase filter, and its params as view_get shows them (merged: cut height, section depth, legend types, schedule fields, sort, filter and totals, sheet number and size, viewport positions…).
| Parameter | Type | Description | |
|---|---|---|---|
view |
id or name | required | A level, type, view or material: its numeric id or its name. |
name |
string | optional | New name. |
params |
JSON | optional | Fields of the view’s parameters to change, shaped like params in view_get. |
phase |
id or name | optional | Phase the view shows (id or name; plans, elevations, sections, 3D views, schedules). |
phase_filter |
id or name | optional | Phase filter (id or name), or null for none (every status by category). |
scale |
integer | optional | Scale denominator (e.g. 100 for 1:100). |
view_duplicateedit — Copy a view (a copied sheet starts without viewports).
| Parameter | Type | Description | |
|---|---|---|---|
view |
id or name | required | A level, type, view or material: its numeric id or its name. |
view_deleteedit — Delete a view (and its viewports on sheets; dimensions drawn in it go too).
| Parameter | Type | Description | |
|---|---|---|---|
view |
id or name | required | A level, type, view or material: its numeric id or its name. |
sheet_place_viewedit — Place a view on a sheet at center (paper millimeters; default left of center). A view can be on only one sheet; sheets cannot be placed.
| Parameter | Type | Description | |
|---|---|---|---|
sheet |
id or name | required | A level, type, view or material: its numeric id or its name. |
view |
id or name | required | A level, type, view or material: its numeric id or its name. |
center |
[x, y] | optional | Center of the viewport on the sheet, paper millimeters. |
sheet_remove_viewportedit — Remove a view from a sheet.
| Parameter | Type | Description | |
|---|---|---|---|
sheet |
id or name | required | A level, type, view or material: its numeric id or its name. |
view |
id or name | required | A level, type, view or material: its numeric id or its name. |
view_graphics_getquery — The visibility/graphics of a view (or of a view template): every category’s visibility and overrides, the applied filters in order, the element overrides and hidden elements, the view’s template and what it controls, and what is temporarily hidden or isolated. Overrides are objects like {"cut_lines": {"color": [255, 0, 0], "weight": 0.5, "pattern": "Dash"}, "projection_lines": {..}, "cut_fill": {"color": [..], "pattern": "Solid"}, "surface_fill": {..}, "halftone": true, "transparency": 0.5} (absent attributes are not overridden).
| Parameter | Type | Description | |
|---|---|---|---|
template |
id or name | optional | Or a view template id or name. |
view |
id or name | optional | View id or name. |
view_graphics_setedit — Show or hide a category in a view (or view template) and change its graphic overrides: overrides is merged into the current ones (null resets one attribute; see view_graphics_get), reset clears them first. Refused when the view’s template controls its categories.
| Parameter | Type | Description | |
|---|---|---|---|
category |
string | required | Category (wall, door, room, dimension…). |
overrides |
JSON | optional | Overrides to merge. |
reset |
boolean | optional | Clear the category’s overrides before merging. |
template |
id or name | optional | Or a view template id or name. |
view |
id or name | optional | View id or name. |
visible |
boolean | optional | Show (true) or hide (false) the category. |
element_override_setedit — Override the graphics of elements in one view (they keep their category’s and filters’ graphics for what is not overridden): overrides is merged into each element’s (null resets an attribute), reset clears them first, so reset alone removes the overrides.
| Parameter | Type | Description | |
|---|---|---|---|
ids |
[id, …] | required | Element ids. |
view |
id or name | required | View id or name. |
overrides |
JSON | optional | Overrides to merge (see view_graphics_get). |
reset |
boolean | optional | Clear the elements’ overrides before merging. |
element_hide_in_viewedit — Hide elements in one view (hidden: false shows them again). Hidden elements stay in the model and in other views.
| Parameter | Type | Description | |
|---|---|---|---|
ids |
[id, …] | required | Element ids. |
view |
id or name | required | View id or name. |
hidden |
boolean | optional | Hide (default) or unhide. |
filters_listquery — The project’s view filters with their categories and rules.
No parameters.
filter_createedit — Create a view filter: the elements of categories (all when empty) that pass its rules — all of them, or any with any; a filter without rules matches every element of its categories. Apply it to views with view_filter_add.
| Parameter | Type | Description | |
|---|---|---|---|
name |
string | required | Name (unique). |
any |
boolean | optional | Match when any rule passes (default: all must pass). |
categories |
[string, …] | optional | Categories (wall, door…); empty for all. |
rules |
[object, …] | optional | Rules on parameters. |
filter_setedit — Change a view filter: name, categories, rules (replaced as a whole) or how rules combine. Views that apply it follow.
| Parameter | Type | Description | |
|---|---|---|---|
filter |
id or name | required | Filter id or name. |
any |
boolean | optional | Match when any rule passes (false: all must pass). |
categories |
[string, …] | optional | New categories (empty for all). |
name |
string | optional | New name. |
rules |
[object, …] | optional | New rules (replace the old ones). |
filter_deleteedit — Delete a view filter (views and templates stop applying it).
| Parameter | Type | Description | |
|---|---|---|---|
filter |
id or name | required | Filter id or name. |
filter_elementsquery — The elements a view filter matches (only those drawn in view when given).
| Parameter | Type | Description | |
|---|---|---|---|
filter |
id or name | required | Filter id or name. |
view |
id or name | optional | Only elements drawn in this view. |
view_filter_addedit — Apply a filter to a view (or view template), at index in the list (default last: the first matching filter wins for each attribute), hiding what it matches (visible: false) or overriding its graphics.
| Parameter | Type | Description | |
|---|---|---|---|
filter |
id or name | required | Filter id or name. |
index |
integer | optional | Position in the view’s filter list (0 = first). |
overrides |
JSON | optional | Overrides of the matching elements (see view_graphics_get). |
template |
id or name | optional | Or a view template id or name. |
view |
id or name | optional | View id or name. |
visible |
boolean | optional | Show (default) or hide the matching elements. |
view_filter_setedit — Change how a view (or view template) applies a filter: visibility of the matching elements, whether it is enabled, and its overrides (merged; reset clears them first).
| Parameter | Type | Description | |
|---|---|---|---|
filter |
id or name | required | Filter id or name. |
enabled |
boolean | optional | Apply the filter (false keeps it listed without effect). |
overrides |
JSON | optional | Overrides to merge (see view_graphics_get). |
reset |
boolean | optional | Clear the overrides before merging. |
template |
id or name | optional | Or a view template id or name. |
view |
id or name | optional | View id or name. |
visible |
boolean | optional | Show (true) or hide (false) the matching elements. |
view_filter_removeedit — Stop applying a filter in a view (or view template).
| Parameter | Type | Description | |
|---|---|---|---|
filter |
id or name | required | Filter id or name. |
template |
id or name | optional | Or a view template id or name. |
view |
id or name | optional | View id or name. |
view_filter_moveedit — Move a filter to index in a view’s (or view template’s) filter list (0 = first, the highest priority).
| Parameter | Type | Description | |
|---|---|---|---|
filter |
id or name | required | Filter id or name. |
index |
integer | required | New position (0 = first). |
template |
id or name | optional | Or a view template id or name. |
view |
id or name | optional | View id or name. |
templates_listquery — The project’s view templates: the properties each holds, which of them it controls (include) and the views that follow it.
No parameters.
template_createedit — Create a view template, from the properties of view when given (scale, category graphics, filters, plan cut height, building services display, structural display), else with defaults. Every property is controlled (include) until changed with template_set.
| Parameter | Type | Description | |
|---|---|---|---|
name |
string | required | Name (unique). |
view |
id or name | optional | View to take the properties from. |
template_setedit — Change a view template: name, properties and which of them it controls (include, merged: {"scale": false} lets views keep their own scale). Views that follow the template change with it, in the same undo step.
| Parameter | Type | Description | |
|---|---|---|---|
template |
id or name | required | Template id or name. |
cut_height |
number | optional | Plans: cut plane height, meters. |
discipline |
string | optional | Floor plans: none, plumbing or electrical (services over a faint architecture). |
include |
JSON | optional | Which properties the template controls: scale, categories, filters, cut_height, discipline, structural, phase_filter (true/false). |
name |
string | optional | New name. |
phase_filter |
id or name | optional | Phase filter (id or name), or null for none. |
scale |
integer | optional | Scale denominator. |
structural |
boolean | optional | Floor plans: structural (formwork) display. |
structure_tags |
boolean | optional | Floor plans: tag beams and columns. |
template_deleteedit — Delete a view template; views that follow it keep their current properties and become free.
| Parameter | Type | Description | |
|---|---|---|---|
template |
id or name | required | Template id or name. |
view_template_applyedit — Copy a template’s properties into views once (they stay free to change). Views that follow another template are refused.
| Parameter | Type | Description | |
|---|---|---|---|
template |
id or name | required | Template id or name. |
views |
[id or name, …] | required | View ids or names. |
view_template_assignedit — Make views follow a template (template: null frees them): the properties it controls are copied now and whenever the template changes, and cannot be changed in the view.
| Parameter | Type | Description | |
|---|---|---|---|
views |
[id or name, …] | required | View ids or names. |
template |
id or name | optional | Template id or name, or null to unassign. |
view_temporaryquery — Temporarily hide or isolate elements or categories in a view, or reset. This is display state, not a model change: it is not saved, not undone and not printed (sheets and exports show the view as it is); the application marks the view while it is active. action: hide and isolate (the elements ids), hide_category and isolate_category (categories, and the categories of ids), or reset. Hiding adds to what is already hidden; isolating replaces it.
| Parameter | Type | Description | |
|---|---|---|---|
action |
string | required | hide, isolate, hide_category, isolate_category or reset. |
view |
id or name | required | View id or name. |
categories |
[string, …] | optional | Category names. |
ids |
[id, …] | optional | Element ids. |
view_temporary_applyedit — Make a view’s temporary hiding permanent: hidden elements become hidden in the view and hidden categories are turned off; when isolating, every other element drawn in the view is hidden in it. The temporary state is then reset. One undo step.
| Parameter | Type | Description | |
|---|---|---|---|
view |
id or name | required | View id or name. |
phases_listquery — The project’s construction phases in time order, with how many elements each builds and demolishes and how many views show it.
No parameters.
phase_createedit — Add a construction phase, at the end (the latest) or before another. Elements and views keep their phases.
| Parameter | Type | Description | |
|---|---|---|---|
name |
string | required | Name (unique). |
before |
id or name | optional | Insert before this phase (id or name; default: after the last). |
description |
string | optional | Description. |
phase_setedit — Rename a phase, change its description, or move it to another place in time (index, 0 = earliest). A move that would put an element’s demolition before its construction is refused.
| Parameter | Type | Description | |
|---|---|---|---|
phase |
id or name | required | Phase id or name. |
description |
string | optional | New description. |
index |
integer | optional | New position in time order (0 = earliest). |
name |
string | optional | New name. |
phase_deleteedit — Delete a phase. A phase that elements are built or demolished in, or that views show, needs merge_into: they move to that phase (an element then built and demolished in the same phase is temporary). The last remaining phase cannot be deleted.
| Parameter | Type | Description | |
|---|---|---|---|
phase |
id or name | required | Phase id or name. |
merge_into |
id or name | optional | Phase that takes over its elements and views. |
elements_phase_setedit — Set the phase elements are built in and/or demolished in (null: not demolished). A demolition cannot come before the construction. Doors, windows and rebar follow their hosts: they are never built before them and are demolished with them (unless demolished earlier).
| Parameter | Type | Description | |
|---|---|---|---|
ids |
[id, …] | required | Element ids. |
created |
id or name | optional | Phase built in (id or name). |
demolished |
id or name | optional | Phase demolished in (id or name), or null to keep it standing. |
elements_demolishedit — Demolish elements in a phase: phase when given, else the phase of view, else the phase new elements are built in (the last by default). Their doors, windows and rebar go with them (unless demolished earlier). Elements not built by then, or already demolished earlier, are refused.
| Parameter | Type | Description | |
|---|---|---|---|
ids |
[id, …] | required | Element ids. |
phase |
id or name | optional | Phase id or name. |
view |
id or name | optional | Or the view whose phase to use. |
phase_creation_setquery — Set the phase new elements are built in by this session (the active view’s phase in the application): display state, not saved, not undone. phase (id or name), or the phase of view; neither resets it to the last phase.
| Parameter | Type | Description | |
|---|---|---|---|
phase |
id or name | optional | Phase id or name. |
view |
id or name | optional | Or the view whose phase to use. |
phase_filters_listquery — The phase filters: for each status (existing, demolished, new, temporary) whether views using the filter show it by_category, overridden (with the status graphics, see phase_graphics_get) or not_displayed.
No parameters.
phase_filter_createedit — Create a phase filter; statuses not given show by_category.
| Parameter | Type | Description | |
|---|---|---|---|
name |
string | required | Name (unique). |
demolished |
string | optional | Demolished elements. |
existing |
string | optional | Existing elements: by_category, overridden or not_displayed. |
new |
string | optional | New elements. |
temporary |
string | optional | Temporary elements. |
phase_filter_setedit — Change a phase filter: its name or how it shows each status. Views using it follow.
| Parameter | Type | Description | |
|---|---|---|---|
filter |
id or name | required | Phase filter id or name. |
demolished |
string | optional | Demolished elements. |
existing |
string | optional | Existing elements: by_category, overridden or not_displayed. |
name |
string | optional | New name. |
new |
string | optional | New elements. |
temporary |
string | optional | Temporary elements. |
phase_filter_deleteedit — Delete a phase filter; views and view templates using it are left without one (showing every status by category).
| Parameter | Type | Description | |
|---|---|---|---|
filter |
id or name | required | Phase filter id or name. |
phase_graphics_getquery — The graphics of each phase status (existing, demolished, new, temporary), used by phase filters that show a status overridden. Overrides are shaped as in view_graphics_get.
No parameters.
phase_graphics_setedit — Change the graphics of a phase status: overrides is merged into the current ones (null resets an attribute; see view_graphics_get), reset clears them first.
| Parameter | Type | Description | |
|---|---|---|---|
status |
string | required | existing, demolished, new or temporary. |
overrides |
JSON | optional | Overrides to merge. |
reset |
boolean | optional | Clear the status overrides before merging. |