mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-10 17:58:20 +00:00
6bf4259298
ifcedit is a new command-line tool for executing ifcopenshell.api mutations from the shell. It wraps the entire API surface — any function callable via ifcopenshell.api can be invoked without writing Python.
Subcommands:
list [module] — list all API modules, or functions within a module
docs <module.function> — full documentation (params, types, descriptions)
run <file> <module.function> [--param value ...] — execute a mutation; overwrites input file by default, or use -o <output> to write elsewhere; --dry-run validates without executing
quantify list — list available QTO rules
quantify run <file> <rule> — run quantity take-off, writing IfcElementQuantity psets back to the file
Parameter coercion: entity references can be passed as step IDs (strings); lists, dicts, booleans, and None are handled automatically.
Usage:
python3 -m ifcedit run model.ifc root.remove_product --product 42
python3 -m ifcedit docs geometry.edit_object_placement
Generated with the assistance of an AI coding tool.
34 lines
862 B
TOML
34 lines
862 B
TOML
[build-system]
|
|
requires = ["setuptools>=61.0"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "ifcedit"
|
|
version = "0.0.0"
|
|
authors = [
|
|
{ name="Bruno Postle", email="bruno@postle.net" },
|
|
]
|
|
description = "CLI wrapper for ifcopenshell.api IFC model mutation functions"
|
|
readme = "README.md"
|
|
keywords = ["IFC", "BIM", "API"]
|
|
classifiers = [
|
|
"Programming Language :: Python :: 3",
|
|
"License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)",
|
|
]
|
|
dependencies = ["ifcopenshell", "ifc5d"]
|
|
|
|
[project.scripts]
|
|
ifcedit = "ifcedit.__main__:main"
|
|
|
|
[project.urls]
|
|
Homepage = "http://ifcopenshell.org"
|
|
Documentation = "https://docs.ifcopenshell.org"
|
|
Issues = "https://github.com/IfcOpenShell/IfcOpenShell/issues"
|
|
|
|
[tool.setuptools.packages.find]
|
|
include = ["ifcedit*"]
|
|
exclude = ["test*"]
|
|
|
|
[tool.ruff]
|
|
extend = "../../pyproject.toml"
|