From 8013fd59028ed2dd90715501a1c38f23574fd117 Mon Sep 17 00:00:00 2001 From: Bruno Postle Date: Sun, 24 May 2026 20:25:23 +0100 Subject: [PATCH] Quote {id} placeholders in examples (issue #8101) Shell {} expressions require quoting --- src/ifcedit/README.md | 6 +++--- src/ifcopenshell-python/docs/ifcedit.rst | 6 +++--- src/ifcopenshell-python/docs/ifcquery.rst | 2 +- src/ifcquery/README.md | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/ifcedit/README.md b/src/ifcedit/README.md index 19b1ec8e7a..1b8858fe5a 100644 --- a/src/ifcedit/README.md +++ b/src/ifcedit/README.md @@ -189,7 +189,7 @@ each JSON object. The model is opened once and saved once regardless of how many elements are processed. ```bash -ifcquery model.ifc select 'IfcWindow' | ifcedit foreach model.ifc root.remove_product --product {id} +ifcquery model.ifc select 'IfcWindow' | ifcedit foreach model.ifc root.remove_product --product '{id}' ``` ```json @@ -201,7 +201,7 @@ Placeholder tokens match the fields emitted by `ifcquery` — typically `{id}`, ```bash ifcquery model.ifc select 'IfcDoor' | ifcedit foreach model.ifc attribute.edit_attributes \ - --product {id} --attributes '{"Name": "Door"}' + --product '{id}' --attributes '{"Name": "Door"}' ``` **Options:** @@ -297,7 +297,7 @@ ifcedit run model.ifc spatial.unassign_container \ --products "$(ifcquery model.ifc --format ids select 'IfcWall')" # Fan-out — one operation per element, model opened and saved once -ifcquery model.ifc select 'IfcWindow' | ifcedit foreach model.ifc root.remove_product --product {id} +ifcquery model.ifc select 'IfcWindow' | ifcedit foreach model.ifc root.remove_product --product '{id}' ``` ## License diff --git a/src/ifcopenshell-python/docs/ifcedit.rst b/src/ifcopenshell-python/docs/ifcedit.rst index d5db9b7c82..450d8e221a 100644 --- a/src/ifcopenshell-python/docs/ifcedit.rst +++ b/src/ifcopenshell-python/docs/ifcedit.rst @@ -57,13 +57,13 @@ Dry-run to validate without modifying the file:: Apply an API function to each element in a JSON array from stdin (``{field}`` placeholders are substituted from each item; model is opened and saved once):: - $ ifcquery model.ifc select 'IfcWindow' | ifcedit foreach model.ifc root.remove_product --product {id} + $ ifcquery model.ifc select 'IfcWindow' | ifcedit foreach model.ifc root.remove_product --product '{id}' $ ifcquery model.ifc select 'IfcDoor' | ifcedit foreach model.ifc attribute.edit_attributes \ - --product {id} --attributes '{"Name": "Door"}' + --product '{id}' --attributes '{"Name": "Door"}' Write to a separate output file instead of overwriting:: - $ ifcquery model.ifc select 'IfcWall' | ifcedit foreach model.ifc root.remove_product -o output.ifc --product {id} + $ ifcquery model.ifc select 'IfcWall' | ifcedit foreach model.ifc root.remove_product -o output.ifc --product '{id}' Quantity take-off (writes ``IfcElementQuantity`` psets back to the file; requires C++ geometry bindings):: diff --git a/src/ifcopenshell-python/docs/ifcquery.rst b/src/ifcopenshell-python/docs/ifcquery.rst index 8735b63da2..399f542b9c 100644 --- a/src/ifcopenshell-python/docs/ifcquery.rst +++ b/src/ifcopenshell-python/docs/ifcquery.rst @@ -86,7 +86,7 @@ pass query results directly into ``ifcedit run`` parameters, or pipe JSON into --products "$(ifcquery model.ifc --format ids select 'IfcWall')" # Fan-out — one operation per element, model opened and saved once - $ ifcquery model.ifc select 'IfcWindow' | ifcedit foreach model.ifc root.remove_product --product {id} + $ ifcquery model.ifc select 'IfcWindow' | ifcedit foreach model.ifc root.remove_product --product '{id}' # Render an element highlighted against everything related to it $ ifcquery model.ifc render -o relations.png \ diff --git a/src/ifcquery/README.md b/src/ifcquery/README.md index 5cb895dc44..b5c27e5f31 100644 --- a/src/ifcquery/README.md +++ b/src/ifcquery/README.md @@ -474,11 +474,11 @@ ifcedit run model.ifc spatial.unassign_container \ --products "$(ifcquery model.ifc --format ids select 'IfcWall')" # Delete every window (model opened and saved once) -ifcquery model.ifc select 'IfcWindow' | ifcedit foreach model.ifc root.remove_product --product {id} +ifcquery model.ifc select 'IfcWindow' | ifcedit foreach model.ifc root.remove_product --product '{id}' # Bulk rename all doors ifcquery model.ifc select 'IfcDoor' | ifcedit foreach model.ifc attribute.edit_attributes \ - --product {id} --attributes '{"Name": "Door"}' + --product '{id}' --attributes '{"Name": "Door"}' # Render an element highlighted against everything related to it ifcquery model.ifc render relations.png \