5 KiB
Commands
uv run ifccommit.py <command> [options]
List
List all IFC types present in a file and their element counts.
uv run ifccommit.py list <input.ifc>
Example:
uv run ifccommit.py list model.ifc
Info
Print attributes of each element matching a given IFC type.
uv run ifccommit.py info <input.ifc> <IfcType>
Example:
uv run ifccommit.py info model.ifc IfcWall
Extract
Extract elements of given IFC types (or presets) into a new IFC file.
uv run ifccommit.py extract <input.ifc> <output.ifc> <IfcType|preset> [...]
Presets:
walls— IfcWall, IfcWallStandardCasestorey— IfcBuildingStoreyfurnitures— IfcFurnishingElement
Examples:
uv run ifccommit.py extract model.ifc walls.ifc walls
uv run ifccommit.py extract model.ifc slabs.ifc IfcSlab
Insert
Insert (merge) a part IFC file into a base IFC file.
uv run ifccommit.py insert <base.ifc> <part.ifc> <output.ifc>
Example:
uv run ifccommit.py insert base.ifc part.ifc merged.ifc
Replace
Remove a space and its contents from base, then merge the part file in its place.
uv run ifccommit.py replace <base.ifc> <space> <part.ifc> <output.ifc>
Example:
uv run ifccommit.py replace model.ifc A102 part.ifc result.ifc
Split
Split an IFC file into one file per storey, optionally filtered by type.
uv run ifccommit.py split <input.ifc> <outdir> [IfcType|preset ...]
Examples:
uv run ifccommit.py split model.ifc output/
uv run ifccommit.py split model.ifc output/ walls
Space
Extract an IfcSpace and all objects contained within it.
uv run ifccommit.py space <input.ifc> <output.ifc> <name> [--by name|longname]
Options:
--by name— Match against Name (default)--by longname— Match against LongName
Examples:
uv run ifccommit.py space model.ifc output.ifc A102
uv run ifccommit.py space model.ifc output.ifc "Living Room" --by longname
Move
Translate an element by (x, y, z) metres and write to a new file.
uv run ifccommit.py move <input.ifc> <output.ifc> [entity_id] [--name X] [--x N] [--y N] [--z N]
Options:
entity_id— IFC entity id (e.g. 17902)--name— Find element by name substring--x,--y,--z— Offset in metres (default: 0.0)
Examples:
uv run ifccommit.py move model.ifc output.ifc 17902 --x 5.0 --z 1.5
uv run ifccommit.py move model.ifc output.ifc --name "Door" --x 2.0
Copy
Copy elements by entity ids or tags and translate copies by (x, y, z) metres.
uv run ifccommit.py copy <input.ifc> <output.ifc> [--entity-ids N ...] [--tags X ...] [--x N] [--y N] [--z N]
Options:
--entity-ids— IFC entity ids to copy--tags— IFC element tags to copy--x,--y,--z— Offset in metres (default: 0.0)
Examples:
uv run ifccommit.py copy model.ifc output.ifc --entity-ids 17902 17903 --x 5.0
uv run ifccommit.py copy model.ifc output.ifc --tags ABC123 --y 10.0
Diff
Show differences between two IFC files.
uv run ifccommit.py diff <source.ifc> <target.ifc> [-v] [-o FILE]
Options:
-v,--verbose— Show detailed changes (added, removed, modified elements)-o,--output— Write results to output file
Examples:
uv run ifccommit.py diff old.ifc new.ifc
uv run ifccommit.py diff old.ifc new.ifc -v -o diff.txt
History
Write or read Pset_GitCommit properties on IFC elements.
Write mode — stamp Pset_GitCommit on all output elements using HEAD:
uv run ifccommit.py history --write-psets [--workdir DIR] [--yaml YAML]
Read mode — read Pset_GitCommit back and emit JSON:
uv run ifccommit.py history --input <file.ifc> [--output <out.json>]
Options:
--write-psets— Enable write mode; stamp elements with currentHEAD--input— IFC file to readPset_GitCommitfrom (read mode)--output— Output JSON file (read mode)--workdir— Git repository root (default: cwd)--yaml— Repo-relative path to the pipeline yaml (default:yaml/duplex.yaml)
Examples:
uv run ifccommit.py history --write-psets --yaml yaml/my-pipeline.yaml
uv run ifccommit.py history --input result.ifc --output history.json
Remove
Remove all elements contained within each instance of an IFC type.
uv run ifccommit.py remove <input.ifc> <IfcType> [--output FILE]
Options:
--output— Output IFC file (default:<input>_<IfcType>_removed.ifc)
Example:
uv run ifccommit.py remove model.ifc IfcSpace --output cleaned.ifc
Run
Browse and run a pipeline yaml from the demo repo.
uv run ifccommit.py run
This command fetches available pipeline YAML files from the demo repository, lets you select one, and executes it locally.
Example:
uv run ifccommit.py run