Set properties
set_propertiesSets values by IFC path: attributes, properties, material, style, classification. New revision, effect report (n_changed, rejected, cloned, carried). A call that succeeds is not a job that's done. Target: guid, guids or a set from find_elements/get_selection, never a filter. Beyond the named: PLAN_REQUIRED, run its plan_id with expect_beyond. Paths: "Name", "Pset_WallCommon.FireRating", "Material.Name" (beside it "Material.Category", written only to a new material; IFC4X3 recommends concrete, steel, aluminium, block, brick, stone, wood, glass, gypsum, plastic, earth; any text), "Material.MassDensity" (kg/m3 or a text with unit; one held beyond the named is cloned), "SurfaceColour", "SurfaceTransparency" (0..1), "SurfaceReflectanceMethod" (GLASS ...) - a style others read is cloned. level occurrence (default) writes at the elements and overrides a type value; level type at the type object, reaching every occurrence; level material in place at the one IfcMaterial, reaching every holder (paths: level). A named type object (its GlobalId) also takes attributes, Material.Name and style paths (its occurrences take them); its PredefinedType reaches occurrences stating none, USERDEFINED with ElementType in the same values. Spatial nodes take style and classification paths. "Classification.<IfcClassification.Name>" takes the Identification of a reference: the element joins it and leaves its other one in that system (a missing reference is created; "Classification" alone: references without a system). remove deletes a value; null is not a removal. The value type comes from the PSD template or the existing property; a property with neither goes in a pset named "Moddl_..." (exactly this case), typed from the value, or names its type in measure_type. A group, zone, system or other non-element object by guid takes attributes and property values. Example: {"set":"s_7f3","values":{"Pset_WallCommon.FireRating":"F90"}}
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "set_properties"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| set | No | A set id from find_elements or get_selection: writes exactly the elements seen there, nothing that matches later. An element changed since reading is rejected alone; the others are written | |
| guid | No | One element (GlobalId) | |
| note | No | Your note, stored with the new revision | |
| guids | No | These elements (GlobalIds) | |
| level | No | Where the value is written. material: Material.Name, .Description, .Category, .MassDensity, its own sets ("Pset_MaterialThermal.ThermalConductivity", file unit), SurfaceColour and SurfaceTransparency at its surface style (built where it has none; material_colour counts the holders showing a colour of their own) | |
| remove | No | Paths whose value is removed; "Pset_X.*" a whole set (also level type), "Qto_X.Q" or "Qto_X.*" quantities at elements (a quantity is never set); a set losing its last property falls, at level type too. No rename: the value under the new path in values, the old path here (different values per element: run_script) | |
| 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) | |
| values | No | Path -> value; paths as list_properties and find_elements show them. Lengths in metres, angles in degrees, temperatures in degC, times in s. At an IfcSite "SiteAddress.<IfcPostalAddress attribute>" (Town, PostalCode, AddressLines: a line break per line ...), at an IfcBuilding "BuildingAddress.<...>"; at an IfcAnnotation "Text" its one IfcTextLiteral, in a call of its own | |
| dry_run | No | Preview: the planned effect and a plan_id, nothing written | |
| plan_id | No | Execute exactly the plan a dry_run returned, all or nothing; the plan holds target and fields. Plans that clone the same shared object (type, material) run one after the other: plan the second after the first ran, else PLAN_CHANGED | |
| request_id | No | Your id for this call: a repeat answers the first result and writes nothing | |
| new_systems | No | Systems (IfcClassification.Name) to create for "Classification.<name>" values | |
| expect_count | No | With set: how many elements the set holds - guards against a mixed-up set id | |
| measure_type | No | Path -> IFC value type (IfcLabel, IfcReal, IfcLengthMeasure, IfcDate ...) for a new property neither the file, the PSD nor a Moddl_ set types; refused where one does; elements, type objects, structural items and analysis models only, never a spatial node, other group or zone | |
| expect_beyond | No | With plan_id: how many elements the plan reaches beyond those named (n_beyond of PLAN_REQUIRED or the dry_run) |