When an element has a Body representation, ifc_info now includes a
geometry_summary key with representation type and geometry details.
Generated with the assistance of an AI coding tool.
Add an optional element parameter to geometry.clip_solid and
geometry.clip_solid_bounded. When provided, the resulting
IfcBooleanClippingResult is registered in the element's BBIM_Boolean
property set so that regenerate_wall_representation preserves it during
regeneration.
Generated with the assistance of an AI coding tool.
clip_solid(file, item, location, normal) wraps Clipping.apply() to
clip any solid with a half-space plane. Normal points toward the
removed material — same convention as add_wall_representation clippings.
Clarifies that agreement_flag=False means the normal direction is the
void (removed) side.
Exposes ShapeBuilder geometry methods via the MCP server: discovery
(list), documentation (docs), and execution (shape) with entity ID
coercion and numpy serialisation.
Generated with the assistance of an AI coding tool.
JSON parses whole numbers as int, but ifcopenshell's C++ binding
requires Python floats for AGGREGATE OF DOUBLE attributes such as
DirectionRatios and Coordinates. Convert list elements to float when
the list already contains at least one float, leaving pure-integer
lists (face indices etc.) unchanged.
Generated with the assistance of an AI coding tool.
New ifcquery modules list geometric representation contexts (with step
IDs, context type, identifier, target view, parent) and material sets
(IfcMaterial, layer sets, constituent sets, profile sets). Exposed as
CLI subcommands and MCP tools.
Generated with the assistance of an AI coding tool.
Guard the face array reshape so elements whose triangulation is not
divisible by 3 are silently dropped. Also wrap each _add_shape() call
in a try/except so a broken shape never aborts the whole render.
Generated with the assistance of an AI coding tool.
Renders IFC model geometry to a PNG image using pyvista (off_screen).
ifcquery CLI:
ifcquery <file> render [-o out.png] [--selector QUERY]
[--element ID[,ID...]] [--view iso|top|south|north|east|west]
ifcmcp MCP tool:
ifc_render(selector, element_ids, view) -> list[ImageContent]
Returns base64-encoded PNG as an MCP ImageContent block so the agent
can inspect the model geometry inline.
Generated with the assistance of an AI coding tool.
Adds ifc_validate, ifc_schedule, ifc_cost, ifc_schema, and ifc_quantify
to the hardcoded tool list in app.js to match the extended ifcmcp session.
Generated with the assistance of an AI coding tool.
ifcquery: validate [--rules], schedule [--depth N], cost [--depth N],
schema <EntityType>. ifcedit: quantify list/run subcommands using ifc5d
QTO rules. schedule and cost support max_depth to limit tree expansion,
replacing truncated levels with {truncated, count}. ifcmcp gains matching
session methods, @server.tool() decorators, and OpenAI tool schemas.
Generated with the assistance of an AI coding tool.
Guidelines for external contributors using AI coding tools,
covering licensing, AI disclosure requirements, PR scope,
commit style, code formatting, and testing expectations.
Generated with the assistance of an AI coding tool.
Uses ifcopenshell.geom.tree API directly to check an element for
intersections and clearance violations against sibling elements
(--scope storey) or the entire model (--scope all).
New subcommand: ifcquery <file> relations <element_id>
Returns all relationships for an element organised by category:
hierarchy (parent, container, aggregate, nest), children (contained,
parts, components, openings), type relationships, groups, systems,
zones, material, referenced structures, and connections/ports.
Empty categories are omitted from output.
Optional --traverse up flag walks the hierarchy from the element
up to IfcProject, returning the chain as a list.
Runtime introspection auto-discovers all API functions. Subcommands:
list (modules/functions), docs (parameter documentation), run (execute
with type-coerced CLI arguments). Output is JSON to stdout, supports
--dry-run validation and -o alternate output path.
Provides four subcommands for querying IFC models with JSON output:
- summary: schema, entity counts, project info
- tree: spatial hierarchy (Project > Site > Building > Storey > elements)
- info: deep element inspection (attributes, psets, type, material, container)
- select: filter elements using selector syntax