mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-31 00:46:36 +00:00
163 lines
6.4 KiB
Gherkin
163 lines
6.4 KiB
Gherkin
@void
|
|
Feature: Void
|
|
Covers voids and fillings.
|
|
|
|
Scenario: Add an opening
|
|
Given an empty IFC project
|
|
And I add a cube
|
|
And the object "Cube" is selected
|
|
And I set "scene.BIMRootProperties.ifc_product" to "IfcElement"
|
|
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
|
|
And I press "bim.assign_class"
|
|
And I add a cube
|
|
And the object "IfcWall/Cube" is selected
|
|
And additionally the object "Cube" is selected
|
|
When I press "bim.add_opening"
|
|
Then the object "Cube" does not exist
|
|
And the object "IfcWall/Cube" is voided by "Cube"
|
|
|
|
Scenario: Add an opening using the BIM tool
|
|
Given an empty IFC project
|
|
And I add a cube
|
|
And the object "Cube" is selected
|
|
And I set "scene.BIMRootProperties.ifc_product" to "IfcElement"
|
|
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
|
|
And I press "bim.assign_class"
|
|
And I press "bim.add_potential_opening"
|
|
And the object "Opening" is selected
|
|
And additionally the object "IfcWall/Cube" is selected
|
|
When I press "bim.add_opening"
|
|
Then the object "Opening" does not exist
|
|
And the object "IfcWall/Cube" is voided by "Opening"
|
|
|
|
Scenario: Show openings
|
|
Given an empty IFC project
|
|
And I add a cube
|
|
And the object "Cube" is selected
|
|
And I set "scene.BIMRootProperties.ifc_product" to "IfcElement"
|
|
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
|
|
And I press "bim.assign_class"
|
|
And I press "bim.add_potential_opening"
|
|
And the object "Opening" is selected
|
|
And additionally the object "IfcWall/Cube" is selected
|
|
And I press "bim.add_opening"
|
|
And the object "IfcWall/Cube" is selected
|
|
When I press "bim.show_openings"
|
|
Then the object "IfcOpeningElement/Opening" is an "IfcOpeningElement"
|
|
And the object "IfcWall/Cube" is voided by "Opening"
|
|
|
|
Scenario: Hide openings
|
|
Given an empty IFC project
|
|
And I add a cube
|
|
And the object "Cube" is selected
|
|
And I set "scene.BIMRootProperties.ifc_product" to "IfcElement"
|
|
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
|
|
And I press "bim.assign_class"
|
|
And I press "bim.add_potential_opening"
|
|
And the object "Opening" is selected
|
|
And additionally the object "IfcWall/Cube" is selected
|
|
And I press "bim.add_opening"
|
|
And the object "IfcWall/Cube" is selected
|
|
And I press "bim.show_openings"
|
|
When I press "bim.hide_openings"
|
|
Then the object "IfcOpeningElement/Opening" does not exist
|
|
|
|
Scenario: Edit openings
|
|
Given an empty IFC project
|
|
And I add a cube
|
|
And the object "Cube" is selected
|
|
And I set "scene.BIMRootProperties.ifc_product" to "IfcElement"
|
|
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
|
|
And I press "bim.assign_class"
|
|
And I press "bim.add_potential_opening"
|
|
And the object "Opening" is selected
|
|
And additionally the object "IfcWall/Cube" is selected
|
|
And I press "bim.add_opening"
|
|
And the object "IfcWall/Cube" is selected
|
|
And I press "bim.show_openings"
|
|
When the object "IfcOpeningElement/Opening" is moved to "1,0,0"
|
|
And I press "bim.edit_openings"
|
|
Then the object "IfcOpeningElement/Opening" does not exist
|
|
And the object "IfcWall/Cube" is voided by "Opening"
|
|
|
|
Scenario: Add an opening to Element B with a void that already voids Element A
|
|
Given an empty IFC project
|
|
And I add a cube
|
|
And the object "Cube" is selected
|
|
And I set "scene.BIMRootProperties.ifc_product" to "IfcElement"
|
|
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
|
|
And I press "bim.assign_class"
|
|
|
|
And I add a cube
|
|
And the object "Cube" is selected
|
|
And I press "bim.assign_class"
|
|
|
|
And I press "bim.add_potential_opening"
|
|
And the object "Opening" is selected
|
|
And additionally the object "IfcWall/Cube" is selected
|
|
And I press "bim.add_opening"
|
|
|
|
And the object "IfcWall/Cube" is selected
|
|
And I press "bim.show_openings"
|
|
|
|
When the object "IfcOpeningElement/Opening" is selected
|
|
And additionally the object "IfcWall/Cube.001" is selected
|
|
And I press "bim.add_opening"
|
|
|
|
Then the object "IfcWall/Cube" is not voided by "Opening"
|
|
And the object "IfcWall/Cube.001" is voided by "Opening"
|
|
|
|
Scenario: Remove opening
|
|
Given an empty IFC project
|
|
And I add a cube
|
|
And the object "Cube" is selected
|
|
And I set "scene.BIMRootProperties.ifc_product" to "IfcElement"
|
|
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
|
|
And I press "bim.assign_class"
|
|
And I press "bim.add_potential_opening"
|
|
And the object "Opening" is selected
|
|
And additionally the object "IfcWall/Cube" is selected
|
|
And I press "bim.add_opening"
|
|
And the object "IfcWall/Cube" is selected
|
|
And I press "bim.show_openings"
|
|
When the object "IfcOpeningElement/Opening" is selected
|
|
And the variable "opening_id" is "IfcStore.get_file().by_type('IfcOpeningElement')[0].id()"
|
|
And I press "bim.remove_opening(opening_id={opening_id})"
|
|
Then the object "Opening" is not an IFC element
|
|
And the object "IfcWall/Cube" is not voided by "Opening"
|
|
|
|
Scenario: Remove opening - using deletion
|
|
Given an empty IFC project
|
|
And I add a cube
|
|
And the object "Cube" is selected
|
|
And I set "scene.BIMRootProperties.ifc_product" to "IfcElement"
|
|
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
|
|
And I press "bim.assign_class"
|
|
And I press "bim.add_potential_opening"
|
|
And the object "Opening" is selected
|
|
And additionally the object "IfcWall/Cube" is selected
|
|
And I press "bim.add_opening"
|
|
And the object "IfcWall/Cube" is selected
|
|
And I press "bim.show_openings"
|
|
When the object "IfcOpeningElement/Opening" is selected
|
|
And I delete the selected objects
|
|
Then the object "Opening" does not exist
|
|
And the object "IfcWall/Cube" is not voided by "Opening"
|
|
|
|
Scenario: Remove opening - indirectly by deleting its building element
|
|
Given an empty IFC project
|
|
And I add a cube
|
|
And the object "Cube" is selected
|
|
And I set "scene.BIMRootProperties.ifc_product" to "IfcElement"
|
|
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
|
|
And I press "bim.assign_class"
|
|
And I press "bim.add_potential_opening"
|
|
And the object "Opening" is selected
|
|
And additionally the object "IfcWall/Cube" is selected
|
|
And I press "bim.add_opening"
|
|
And the object "IfcWall/Cube" is selected
|
|
And I press "bim.show_openings"
|
|
When the object "IfcWall/Cube" is selected
|
|
And I delete the selected objects
|
|
Then the object "Opening" is not an IFC element
|