|
|
|
@@ -0,0 +1,187 @@
|
|
|
|
|
@classification
|
|
|
|
|
Feature: Classification
|
|
|
|
|
|
|
|
|
|
Scenario: Load classification library
|
|
|
|
|
Given an empty IFC project
|
|
|
|
|
When I press "bim.load_classification_library(filepath='{cwd}/test/files/classification.ifc')"
|
|
|
|
|
Then nothing happens
|
|
|
|
|
|
|
|
|
|
Scenario: Add classification
|
|
|
|
|
Given an empty IFC project
|
|
|
|
|
And I press "bim.load_classification_library(filepath='{cwd}/test/files/classification.ifc')"
|
|
|
|
|
And the variable "classification" is "{classification_ifc}.by_type('IfcClassification')[0].id()"
|
|
|
|
|
And I set "scene.BIMClassificationProperties.available_classifications" to "{classification}"
|
|
|
|
|
When I press "bim.add_classification"
|
|
|
|
|
Then nothing happens
|
|
|
|
|
|
|
|
|
|
Scenario: Add classification - IFC2X3
|
|
|
|
|
Given an empty IFC2X3 project
|
|
|
|
|
And I press "bim.load_classification_library(filepath='{cwd}/test/files/classification.ifc')"
|
|
|
|
|
And the variable "classification" is "{classification_ifc}.by_type('IfcClassification')[0].id()"
|
|
|
|
|
And I set "scene.BIMClassificationProperties.available_classifications" to "{classification}"
|
|
|
|
|
When I press "bim.add_classification"
|
|
|
|
|
Then nothing happens
|
|
|
|
|
|
|
|
|
|
Scenario: Enable editing classification
|
|
|
|
|
Given an empty IFC project
|
|
|
|
|
And I press "bim.load_classification_library(filepath='{cwd}/test/files/classification.ifc')"
|
|
|
|
|
And the variable "classification" is "{classification_ifc}.by_type('IfcClassification')[0].id()"
|
|
|
|
|
And I set "scene.BIMClassificationProperties.available_classifications" to "{classification}"
|
|
|
|
|
And I press "bim.add_classification"
|
|
|
|
|
And the variable "classification" is "{ifc}.by_type('IfcClassification')[0].id()"
|
|
|
|
|
When I press "bim.enable_editing_classification(classification={classification})"
|
|
|
|
|
Then nothing happens
|
|
|
|
|
|
|
|
|
|
Scenario: Disable editing classification
|
|
|
|
|
Given an empty IFC project
|
|
|
|
|
And I press "bim.load_classification_library(filepath='{cwd}/test/files/classification.ifc')"
|
|
|
|
|
And the variable "classification" is "{classification_ifc}.by_type('IfcClassification')[0].id()"
|
|
|
|
|
And I set "scene.BIMClassificationProperties.available_classifications" to "{classification}"
|
|
|
|
|
And I press "bim.add_classification"
|
|
|
|
|
And the variable "classification" is "{ifc}.by_type('IfcClassification')[0].id()"
|
|
|
|
|
And I press "bim.enable_editing_classification(classification={classification})"
|
|
|
|
|
When I press "bim.disable_editing_classification"
|
|
|
|
|
Then nothing happens
|
|
|
|
|
|
|
|
|
|
Scenario: Remove classification
|
|
|
|
|
Given an empty IFC project
|
|
|
|
|
And I press "bim.load_classification_library(filepath='{cwd}/test/files/classification.ifc')"
|
|
|
|
|
And the variable "classification" is "{classification_ifc}.by_type('IfcClassification')[0].id()"
|
|
|
|
|
And I set "scene.BIMClassificationProperties.available_classifications" to "{classification}"
|
|
|
|
|
And I press "bim.add_classification"
|
|
|
|
|
And the variable "classification" is "{ifc}.by_type('IfcClassification')[0].id()"
|
|
|
|
|
When I press "bim.remove_classification(classification={classification})"
|
|
|
|
|
Then nothing happens
|
|
|
|
|
|
|
|
|
|
Scenario: Edit classification
|
|
|
|
|
Given an empty IFC project
|
|
|
|
|
And I press "bim.load_classification_library(filepath='{cwd}/test/files/classification.ifc')"
|
|
|
|
|
And the variable "classification" is "{classification_ifc}.by_type('IfcClassification')[0].id()"
|
|
|
|
|
And I set "scene.BIMClassificationProperties.available_classifications" to "{classification}"
|
|
|
|
|
And I press "bim.add_classification"
|
|
|
|
|
And the variable "classification" is "{ifc}.by_type('IfcClassification')[0].id()"
|
|
|
|
|
And I press "bim.enable_editing_classification(classification={classification})"
|
|
|
|
|
When I press "bim.edit_classification"
|
|
|
|
|
Then nothing happens
|
|
|
|
|
|
|
|
|
|
Scenario: Add classification reference
|
|
|
|
|
Given an empty IFC project
|
|
|
|
|
And I press "bim.load_classification_library(filepath='{cwd}/test/files/classification.ifc')"
|
|
|
|
|
And the variable "classification" is "{classification_ifc}.by_type('IfcClassification')[0].id()"
|
|
|
|
|
And I set "scene.BIMClassificationProperties.available_classifications" to "{classification}"
|
|
|
|
|
And I press "bim.add_classification"
|
|
|
|
|
And I add a cube
|
|
|
|
|
And 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"
|
|
|
|
|
And I press "bim.change_classification_level(parent_id={classification})"
|
|
|
|
|
And the variable "reference" is "{classification_ifc}.by_type('IfcClassificationReference')[0].id()"
|
|
|
|
|
When I press "bim.add_classification_reference(reference={reference})"
|
|
|
|
|
Then nothing happens
|
|
|
|
|
|
|
|
|
|
Scenario: Change classification level
|
|
|
|
|
Given an empty IFC project
|
|
|
|
|
And I press "bim.load_classification_library(filepath='{cwd}/test/files/classification.ifc')"
|
|
|
|
|
And the variable "classification" is "{classification_ifc}.by_type('IfcClassification')[0].id()"
|
|
|
|
|
And I set "scene.BIMClassificationProperties.available_classifications" to "{classification}"
|
|
|
|
|
And I press "bim.add_classification"
|
|
|
|
|
And I add a cube
|
|
|
|
|
And 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"
|
|
|
|
|
And I press "bim.change_classification_level(parent_id={classification})"
|
|
|
|
|
And the variable "reference" is "{classification_ifc}.by_type('IfcClassificationReference')[0].id()"
|
|
|
|
|
When I press "bim.change_classification_level(parent_id={reference})"
|
|
|
|
|
Then nothing happens
|
|
|
|
|
|
|
|
|
|
Scenario: Disable editing classification references
|
|
|
|
|
Given an empty IFC project
|
|
|
|
|
And I press "bim.load_classification_library(filepath='{cwd}/test/files/classification.ifc')"
|
|
|
|
|
And the variable "classification" is "{classification_ifc}.by_type('IfcClassification')[0].id()"
|
|
|
|
|
And I set "scene.BIMClassificationProperties.available_classifications" to "{classification}"
|
|
|
|
|
And I press "bim.add_classification"
|
|
|
|
|
And I add a cube
|
|
|
|
|
And 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"
|
|
|
|
|
And I press "bim.change_classification_level(parent_id={classification})"
|
|
|
|
|
When I press "bim.disable_editing_classification_references"
|
|
|
|
|
Then nothing happens
|
|
|
|
|
|
|
|
|
|
Scenario: Enable editing classification reference
|
|
|
|
|
Given an empty IFC project
|
|
|
|
|
And I press "bim.load_classification_library(filepath='{cwd}/test/files/classification.ifc')"
|
|
|
|
|
And the variable "classification" is "{classification_ifc}.by_type('IfcClassification')[0].id()"
|
|
|
|
|
And I set "scene.BIMClassificationProperties.available_classifications" to "{classification}"
|
|
|
|
|
And I press "bim.add_classification"
|
|
|
|
|
And I add a cube
|
|
|
|
|
And 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"
|
|
|
|
|
And I press "bim.change_classification_level(parent_id={classification})"
|
|
|
|
|
And the variable "reference" is "{classification_ifc}.by_type('IfcClassificationReference')[0].id()"
|
|
|
|
|
And I press "bim.add_classification_reference(reference={reference})"
|
|
|
|
|
And the variable "reference" is "{ifc}.by_type('IfcClassificationReference')[0].id()"
|
|
|
|
|
When I press "bim.enable_editing_classification_reference(reference={reference})"
|
|
|
|
|
Then nothing happens
|
|
|
|
|
|
|
|
|
|
Scenario: Disable editing classification reference
|
|
|
|
|
Given an empty IFC project
|
|
|
|
|
And I press "bim.load_classification_library(filepath='{cwd}/test/files/classification.ifc')"
|
|
|
|
|
And the variable "classification" is "{classification_ifc}.by_type('IfcClassification')[0].id()"
|
|
|
|
|
And I set "scene.BIMClassificationProperties.available_classifications" to "{classification}"
|
|
|
|
|
And I press "bim.add_classification"
|
|
|
|
|
And I add a cube
|
|
|
|
|
And 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"
|
|
|
|
|
And I press "bim.change_classification_level(parent_id={classification})"
|
|
|
|
|
And the variable "reference" is "{classification_ifc}.by_type('IfcClassificationReference')[0].id()"
|
|
|
|
|
And I press "bim.add_classification_reference(reference={reference})"
|
|
|
|
|
And the variable "reference" is "{ifc}.by_type('IfcClassificationReference')[0].id()"
|
|
|
|
|
And I press "bim.enable_editing_classification_reference(reference={reference})"
|
|
|
|
|
When I press "bim.disable_editing_classification_reference"
|
|
|
|
|
Then nothing happens
|
|
|
|
|
|
|
|
|
|
Scenario: Remove classification reference
|
|
|
|
|
Given an empty IFC project
|
|
|
|
|
And I press "bim.load_classification_library(filepath='{cwd}/test/files/classification.ifc')"
|
|
|
|
|
And the variable "classification" is "{classification_ifc}.by_type('IfcClassification')[0].id()"
|
|
|
|
|
And I set "scene.BIMClassificationProperties.available_classifications" to "{classification}"
|
|
|
|
|
And I press "bim.add_classification"
|
|
|
|
|
And I add a cube
|
|
|
|
|
And 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"
|
|
|
|
|
And I press "bim.change_classification_level(parent_id={classification})"
|
|
|
|
|
And the variable "reference" is "{classification_ifc}.by_type('IfcClassificationReference')[0].id()"
|
|
|
|
|
And I press "bim.add_classification_reference(reference={reference})"
|
|
|
|
|
And the variable "reference" is "{ifc}.by_type('IfcClassificationReference')[0].id()"
|
|
|
|
|
And I press "bim.enable_editing_classification_reference(reference={reference})"
|
|
|
|
|
When I press "bim.remove_classification_reference(reference={reference})"
|
|
|
|
|
Then nothing happens
|
|
|
|
|
|
|
|
|
|
Scenario: Edit classification reference
|
|
|
|
|
Given an empty IFC project
|
|
|
|
|
And I press "bim.load_classification_library(filepath='{cwd}/test/files/classification.ifc')"
|
|
|
|
|
And the variable "classification" is "{classification_ifc}.by_type('IfcClassification')[0].id()"
|
|
|
|
|
And I set "scene.BIMClassificationProperties.available_classifications" to "{classification}"
|
|
|
|
|
And I press "bim.add_classification"
|
|
|
|
|
And I add a cube
|
|
|
|
|
And 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"
|
|
|
|
|
And I press "bim.change_classification_level(parent_id={classification})"
|
|
|
|
|
And the variable "reference" is "{classification_ifc}.by_type('IfcClassificationReference')[0].id()"
|
|
|
|
|
And I press "bim.add_classification_reference(reference={reference})"
|
|
|
|
|
And the variable "reference" is "{ifc}.by_type('IfcClassificationReference')[0].id()"
|
|
|
|
|
And I press "bim.enable_editing_classification_reference(reference={reference})"
|
|
|
|
|
When I press "bim.edit_classification_reference"
|
|
|
|
|
Then nothing happens
|