Insert in host
insert_in_hostInserts a door or window into a wall, or an empty opening into a wall or slab, in one call; moddl builds IfcOpeningElement, IfcRelVoidsElement and IfcRelFillsElement. Position as distance from the host start along its axis and sill height (a mesh wall runs along its largest vertical face from its -x, else -y end; its thickness is measured there); an empty opening may instead take an outline polygon, or around an element passing through (chimney, duct). Refused if the opening leaves the host; a door or window also if its opening meets an existing one or the wall has several bodies (layered), while an empty opening there takes the full thickness and read_as names any overlap. An IfcVoidingFeature (notch, hole) is cut as an empty opening. Beam, column, member or plate: offset refuses (no wall axis), outline cuts in its placement x/y only (a plate face; a bar its cross-section); holes drills a hole pattern in one call. A wall whose body subtracts solids from its sweep (studs out of an infill) is placed along that sweep (source assumption); the opening must stay within the measured body and meet its material, the subtractions it reaches are named. An existing empty opening is filled with opening instead of host; a window also into the empty opening of a slab (class IfcWindow with lining); a panel of a curtain wall as host gives its whole field to a door or window (class with lining) and is deleted. New revision, effect report. A call that succeeds is not a job that's done. Example: {"host":"1kTv...","like":"","offset":"1,20 m"}
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": "insert_in_host"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| face | No | With depth below the host thickness: the niche ends flush at this face, written as RECESS; wall +t/-t (frame), else +h/-h (upper/lower) | |
| host | No | A wall for a door or window; an empty opening also a slab, roof, plate, beam, column or member; a panel (IfcPlate) of a curtain wall: class with lining takes its whole field, the panel goes. Required unless opening names the place | |
| like | No | Template door/window: occurrence or type object of the model | |
| note | No | Your note, stored with the new revision | |
| sill | No | Height of the opening bottom above the host bottom; default with like the template's above its own host's bottom, else 0 | |
| class | No | Without template; typed by the type of the file pattern or a new one - like carries a body. IfcVoidingFeature: an empty cut, attributes.PredefinedType from its enum (NOTCH, HOLE ...), else none; IfcEarthworksCut is refused: edit_terrain cut | |
| depth | No | Empty opening (offset or outline) only: its depth through the host; default the host thickness, refused host_thickness_ambiguous where profile and layers disagree; below the host thickness name face | |
| holes | No | Instead of offset/outline/around: one IfcVoidingFeature HOLE (cylinder) per entry in one revision, all or none; axis = normal of the planar face pair at at, through_m their measured distance; refused with the hole index where a hole meets no planar face, leaves it or meets another | |
| hosts | No | With around or outline instead of host: one empty opening per host (a duct through wall and slab) in one revision; outline in hosts[0] coordinates, mapped through world into each level slab (a shaft); one host refused writes none, read_as names the group | |
| width | No | Without template: opening width = frame outside (OverallWidth); clear width = width - 2 x lining.thickness | |
| anchor | No | Which point of the opening offset reaches; default start | |
| around | No | Empty opening shaped by this element through the host (it stays) | |
| height | No | Without template: opening height = frame outside (OverallHeight); clear height = height - lining.thickness (door) or - 2 x lining.thickness (window) | |
| lining | No | Required with class IfcDoor/IfcWindow: builds the body (frame + glass or leaf); every value named, no default | |
| offset | No | Distance from the host start along its axis to the point anchor names | |
| source | No | Where the values you write come from: assumption (default, your own estimate, stamped in the file) or user (only what the person named word for word; it then reads as the file does) | |
| dry_run | No | Preview: the planned effect and its checks, nothing written | |
| opening | No | Instead of host: an empty IfcOpeningElement that stands, filled at its own place and size by like or class with lining (only the fill and IfcRelFillsElement are written), or a part of it with fill_within (also beside the fills it holds); like whose own opening differs by over 1 mm is refused; one in a slab or plate takes a window only (class IfcWindow with lining; read_as names its width and height axes) | |
| outline | No | Empty opening instead of offset/sill/width/height: [[u,v],...] m, 3-256 corners; wall: u along axis from start, v up from bottom; else u/v in the host own x/y from its placement origin (usually the slab corner), not world x/y | |
| clearance | No | With around: gap, default 0 | |
| attributes | No | For the door or window; with class also OperationType (IfcDoor) or PartitioningType (IfcWindow), written at its type, one leaf with lining (IFC left/right seen along +y, the swing direction; DIN 107 sees from the other side: IFC LEFT = DIN right); an empty opening takes Name only here (set_properties writes its other attributes after) | |
| request_id | No | Your id for this call: a repeat answers the first result and writes nothing | |
| fill_within | No | With opening: the fill (class with lining, width and height) takes this part of it, from its low corner on its own axes (a wall: along the axis and up), inside it and clear of the fills it holds (fill_overlaps_fill names by_m): a door beside a side light, a transom above | |
| around_shape | No | With around: hull (default; must pass through) or exact (its own body, no clearance; stopping inside the host is written as RECESS) | |
| expect_contacts | No | Intended contacts: checks.contacts splits into as_expected, missing, surprises; an omitted kind is not judged |