ifcopenshell.util.selector
¶
Module Contents¶
- exception ifcopenshell.util.selector.SetElementValueException¶
Bases:
Exception
Common base class for all non-exit exceptions.
- class ifcopenshell.util.selector.FacetTransformer(ifc_file: ifcopenshell.file, elements: set[ifcopenshell.entity_instance] | None = None)¶
Bases:
lark.Transformer
- attribute(args)¶
- classification(args)¶
- compare(element_value, comparison, value)¶
- comparison(args)¶
- entity(args)¶
- facet_list(args)¶
- get_container_tree(container)¶
- get_results()¶
- group(args)¶
- instance(args)¶
- keys(args)¶
- location(args)¶
- material(args)¶
- parent(args)¶
- prop(args)¶
- property(args)¶
- pset(args)¶
- query(args)¶
- type(args)¶
- value(args)¶
- container_parents¶
- container_trees¶
- file¶
- results = []¶
- class ifcopenshell.util.selector.FormatTransformer¶
Bases:
lark.Transformer
- ESCAPED_STRING(args)¶
- NUMBER(args)¶
- concat(args)¶
- format_length(args)¶
- function(args)¶
- imperial_length(args)¶
- lower(args)¶
- metric_length(args)¶
- number(args)¶
- round(args)¶
- start(args)¶
- substr(args)¶
- title(args)¶
- upper(args)¶
- class ifcopenshell.util.selector.GetElementTransformer¶
Bases:
lark.Transformer
- ESCAPED_STRING(args)¶
- key(args)¶
- keys(args)¶
- quoted_string(args)¶
- regex_string(args)¶
- start(args)¶
- unquoted_string(args)¶
- ifcopenshell.util.selector.filter_elements(ifc_file: ifcopenshell.file, query: str, elements: set[ifcopenshell.entity_instance] | None = None, edit_in_place=False) set[ifcopenshell.entity_instance] ¶
Filter elements based on the provided query.
- Parameters:
ifc_file (ifcopenshell.file) – The IFC file object
query (str) – Query to execute
elements (set[ifcopenshell.entity_instance], optional) – Base set of IFC elements for the query. If not provided, all elements in the IFC are queried. If provided, the query will be applied to this set of elements, so the result will be a subset of elements.
edit_in_place (bool) – If True, mutate the provided elements in place. Defaults to False
- Returns:
Set of filtered elements
- Return type:
set[ifcopenshell.entity_instance]
Example:
# Select all the walls and slabs in the file. elements = ifcopenshell.util.selector.filter_elements(ifc_file, "IfcWall, IfcSlab") # Add doors to the elements too. elements = ifcopenshell.util.selector.filter_elements(ifc_file, "IfcDoor", elements) # Changed our mind, exclude the slabs. elements = ifcopenshell.util.selector.filter_elements(ifc_file, "! IfcSlab", elements) # {#1=IfcWall(...), #2=IfcDoor(...)} print(elements)
- ifcopenshell.util.selector.format(query: str) str ¶
- ifcopenshell.util.selector.get_element_value(element: ifcopenshell.entity_instance, query: str) Any ¶
- ifcopenshell.util.selector.set_element_value(ifc_file: ifcopenshell.file, element: ifcopenshell.entity_instance | Iterable[ifcopenshell.entity_instance] | None, query: str | list[str], value: Any) None ¶
- ifcopenshell.util.selector.filter_elements_grammar¶
- ifcopenshell.util.selector.format_grammar¶
- ifcopenshell.util.selector.get_element_grammar¶