mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-01 01:16:27 +00:00
126 lines
5.7 KiB
Gherkin
126 lines
5.7 KiB
Gherkin
@root
|
|
Feature: Root
|
|
Covers IFC class operations on Blender objects
|
|
|
|
Scenario: Unlink object
|
|
Given an empty IFC project
|
|
And I add a cube
|
|
And the object "Cube" is selected
|
|
And I add a material
|
|
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
|
|
And I press "bim.assign_class"
|
|
And I press "bim.add_material"
|
|
When I press "bim.unlink_object(obj='IfcWall/Cube')"
|
|
Then the object "Cube" is not an IFC element
|
|
And the material "Material" is not an IFC material
|
|
And the material "Material" is not an IFC style
|
|
|
|
Scenario: Copy class
|
|
Given an empty IFC project
|
|
And I add a cube
|
|
And the object "Cube" is selected
|
|
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
|
|
And I press "bim.assign_class"
|
|
When I press "bim.copy_class(obj='IfcWall/Cube')"
|
|
Then the object "IfcWall/Cube" is an "IfcWall"
|
|
|
|
Scenario: Assign a class to a cube
|
|
Given an empty IFC project
|
|
And I add a cube
|
|
When the object "Cube" is selected
|
|
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
|
|
And I press "bim.assign_class"
|
|
Then the object "IfcWall/Cube" is an "IfcWall"
|
|
And the object "IfcWall/Cube" is in the collection "Collection"
|
|
And the object "IfcWall/Cube" has a "Tessellation" representation of "Model/Body/MODEL_VIEW"
|
|
|
|
Scenario: Assign a type class to a cube
|
|
Given an empty IFC project
|
|
And I add a cube
|
|
When the object "Cube" is selected
|
|
And I set "scene.BIMRootProperties.ifc_product" to "IfcElementType"
|
|
And I set "scene.BIMRootProperties.ifc_class" to "IfcWallType"
|
|
And I press "bim.assign_class"
|
|
Then the object "IfcWallType/Cube" is an "IfcWallType"
|
|
And the object "IfcWallType/Cube" is in the collection "Types"
|
|
And the object "IfcWallType/Cube" has a "Tessellation" representation of "Model/Body/MODEL_VIEW"
|
|
|
|
Scenario: Assign a spatial class to a cube
|
|
Given an empty IFC project
|
|
And I add a cube
|
|
When the object "Cube" is selected
|
|
And I set "scene.BIMRootProperties.ifc_product" to "IfcSpatialElement"
|
|
And I set "scene.BIMRootProperties.ifc_class" to "IfcBuilding"
|
|
And I press "bim.assign_class"
|
|
Then the object "IfcBuilding/Cube" is an "IfcBuilding"
|
|
And the object "IfcBuilding/Cube" is in the collection "IfcBuilding/Cube"
|
|
And the object "IfcBuilding/Cube" has a "Tessellation" representation of "Model/Body/MODEL_VIEW"
|
|
|
|
Scenario: Assign a spatial class to a cube already in a collection
|
|
Given an empty IFC project
|
|
And I add a cube
|
|
And the object "Cube" is placed in the collection "IfcBuildingStorey/My Storey"
|
|
When the object "Cube" is selected
|
|
And I set "scene.BIMRootProperties.ifc_product" to "IfcSpatialElement"
|
|
And I set "scene.BIMRootProperties.ifc_class" to "IfcSpace"
|
|
And I press "bim.assign_class"
|
|
Then the object "IfcSpace/Cube" is an "IfcSpace"
|
|
And the object "IfcSpace/Cube" is in the collection "IfcSpace/Cube"
|
|
And the collection "IfcSpace/Cube" is in the collection "IfcBuildingStorey/My Storey"
|
|
And the object "IfcSpace/Cube" has a "Tessellation" representation of "Model/Body/MODEL_VIEW"
|
|
|
|
Scenario: Assign an opening class to a cube
|
|
Given an empty IFC project
|
|
And I add a cube
|
|
When the object "Cube" is selected
|
|
And I set "scene.BIMRootProperties.ifc_product" to "IfcElement"
|
|
And I set "scene.BIMRootProperties.ifc_class" to "IfcOpeningElement"
|
|
And I press "bim.assign_class"
|
|
Then the object "IfcOpeningElement/Cube" is an "IfcOpeningElement"
|
|
And the object "IfcOpeningElement/Cube" should display as "WIRE"
|
|
And the object "IfcOpeningElement/Cube" is in the collection "IfcOpeningElements"
|
|
And the object "IfcOpeningElement/Cube" has a "Tessellation" representation of "Model/Body/MODEL_VIEW"
|
|
|
|
Scenario: Assign a class to a cube in a collection
|
|
Given an empty IFC project
|
|
And I add a cube
|
|
When the object "Cube" is selected
|
|
And the object "Cube" is placed in the collection "IfcBuildingStorey/My Storey"
|
|
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
|
|
And I press "bim.assign_class"
|
|
Then the object "IfcWall/Cube" is contained in "My Storey"
|
|
|
|
Scenario: Copy a wall
|
|
Given an empty IFC project
|
|
And I add a cube
|
|
When the object "Cube" is selected
|
|
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
|
|
And I press "bim.assign_class"
|
|
And I duplicate the selected objects
|
|
Then the object "IfcWall/Cube" and "IfcWall/Cube.001" are different elements
|
|
|
|
Scenario: Copy a storey
|
|
Given an empty IFC project
|
|
And the object "IfcBuildingStorey/My Storey" is selected
|
|
When I duplicate the selected objects
|
|
Then the object "IfcBuildingStorey/My Storey" and "IfcBuildingStorey/My Storey.001" are different elements
|
|
And the object "IfcBuildingStorey/My Storey" is in the collection "IfcBuildingStorey/My Storey"
|
|
And the object "IfcBuildingStorey/My Storey.001" is in the collection "IfcBuildingStorey/My Storey.001"
|
|
And the collection "IfcBuildingStorey/My Storey.001" is in the collection "IfcBuilding/My Building"
|
|
|
|
Scenario: Copy an opening
|
|
Given an empty IFC project
|
|
And I add a cube
|
|
When the object "Cube" is selected
|
|
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 additionally the object "IfcWall/Cube" is selected
|
|
And I press "bim.add_opening(opening='Cube', obj='IfcWall/Cube')"
|
|
And the object "IfcOpeningElement/Cube" is selected
|
|
And I duplicate the selected objects
|
|
Then the object "IfcOpeningElement/Cube" and "IfcOpeningElement/Cube.001" are different elements
|
|
And the object "IfcWall/Cube" has a boolean difference by "IfcOpeningElement/Cube"
|
|
And the object "IfcWall/Cube" has a boolean difference by "IfcOpeningElement/Cube.001"
|