Skip to content

Commit

Permalink
more feature file refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
Ghesselink committed Jan 6, 2025
1 parent 3cd175b commit b711ff5
Show file tree
Hide file tree
Showing 24 changed files with 104 additions and 104 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Feature: CTX000 - Presentation colours and textures
Given its attribute .HasAssociations.
Given all referenced instances
Given [Its type] is .IfcMaterial.
Given its attribute HasRepresentation
Given its attribute .HasRepresentation.
Given Its attribute .Representations.
Given its attribute .Items.
Given [Its type] is .IfcStyledItem.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@ The rule verifies that Shape Representation identifier is unique within the prod
Given An .IfcProduct.
Given Its attribute .Representation.
Given Its attribute .Representations.
Given Its attribute RepresentationIdentifier.
Given Its attribute .RepresentationIdentifier.

Then The values must be *unique*
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ The rule verifies that shape representations adhere to the permissible values ou
Given an .IfcProduct.
Given Its attribute .Representation.
Given Its attribute .Representations.
Given Its attribute RepresentationIdentifier.
Given Its attribute .RepresentationIdentifier.

Then The values must be in 'valid_ShapeRepresentationIdentifier.csv'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ Currently, for GRF001, this is only permitted if (1) there is a single context o
Given A model with Schema "IFC4.3"
Given All instances of .IfcGeometricRepresentationContext. <without subtypes>
Given Its Attribute .HasCoordinateOperation.
Given Its values excluding SourceCRS
Given Its values excluding "SourceCRS"

Then The values must be *identical* &at depth 1&
56 changes: 28 additions & 28 deletions features/Rules/IFC/IFC102_Absence-of-deprecated-entities.feature
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ IFC4: https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/
Given A model with Schema "IFC4.3"
Given An IFC model

Then There must be less than 1 instance(s) of .<Entity>. &excluding subtypes&
Then There must be *less than* 1 instance(s) of ..<Entity>.. &excluding subtypes&

Examples:
| Entity |
Expand Down Expand Up @@ -51,7 +51,7 @@ IFC4: https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/
Given An IFC model
Given A model with Schema "IFC4"

Then There must be less than 1 instance(s) of <Entity> &excluding subtypes&
Then There must be *less than* 1 instance(s) of .<Entity>. &excluding subtypes&

Examples:
| Entity |
Expand Down Expand Up @@ -91,7 +91,7 @@ IFC4: https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/
Given An IFC model
Given A model with Schema "IFC2X3"

Then There must be less than 1 instance(s) of <Entity> &excluding subtypes&
Then There must be *less than* 1 instance(s) of .<Entity>. &excluding subtypes&

Examples:
| Entity |
Expand All @@ -106,9 +106,9 @@ IFC4: https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/
Scenario Outline: Check for deprecated attributes - IFC4.3

Given A model with Schema "IFC4.3"
Given an <Entity>
Given an .<Entity>.

Then <Attribute> = empty
Then <Attribute> is *empty*

Examples:
| Entity | Attribute |
Expand Down Expand Up @@ -140,9 +140,9 @@ IFC4: https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/
Scenario Outline: Check for deprecated attributes - IFC4

Given A model with Schema "IFC4"
Given an <Entity>
Given an .<Entity>.

Then <Attribute> = empty
Then <Attribute> is *empty*

Examples:
| Entity | Attribute |
Expand Down Expand Up @@ -180,9 +180,9 @@ IFC4: https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/
Scenario Outline: Check for deprecated attributes - IFC2X3

Given A model with Schema "IFC2X3"
Given an <Entity>
Given an .<Entity>.

Then <Attribute> = empty
Then <Attribute> is *empty*

Examples:
| Entity | Attribute |
Expand All @@ -199,9 +199,9 @@ IFC4: https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/
# IfcWall: IfcWallTypeEnum

Given A model with Schema "IFC4.3"
Given an <Entity>
Given an .<Entity>.

Then PredefinedType is not <Value>
Then .PredefinedType. is not <Value>

Examples:
| Entity | Value |
Expand All @@ -223,9 +223,9 @@ IFC4: https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/
# IfcWall: IfcWallTypeEnum

Given A model with Schema "IFC4"
Given an <Entity>
Given an .<Entity>.

Then PredefinedType is not <Value>
Then .PredefinedType. is not <Value>

Examples:
| Entity | Value |
Expand All @@ -237,9 +237,9 @@ IFC4: https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/
# IfcOwnerHistory: IfcChangeActionEnum

Given A model with Schema "IFC2X3"
Given an <Entity>
Given an .<Entity>.

Then <Attribute> is not <Value>
Then .<Attribute>. is not <Value>

Examples:
| Entity | Attribute | Value |
Expand All @@ -249,9 +249,9 @@ IFC4: https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/
Scenario Outline: Check for deprecated explicitly instantiated entities - IFC4.3

Given A model with Schema "IFC4.3"
Given an <Entity>
Given an .<Entity>.

Then its type is not "<Entity>" &excluding subtypes&
Then [Its type] is not .<Entity>. &excluding subtypes&

Examples:
| Entity |
Expand All @@ -268,9 +268,9 @@ IFC4: https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/
Scenario Outline: Check for deprecated explicitly instantiated entities - IFC4

Given A model with Schema "IFC4"
Given an <Entity>
Given an .<Entity>.

Then its type is not "<Entity>" &excluding subtypes&
Then [Its type] is not .<Entity>. &excluding subtypes&

Examples:
| Entity |
Expand All @@ -287,9 +287,9 @@ IFC4: https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/
Scenario Outline: Check for deprecated explicitly instantiated entities - IFC2X3

Given A model with Schema "IFC2X3"
Given an <Entity>
Given an .<Entity>.

Then its type is not "<Entity>" &excluding subtypes&
Then [Its type] is not .<Entity>. &excluding subtypes&

Examples:
| Entity |
Expand All @@ -302,30 +302,30 @@ IFC4: https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/
Scenario: Check for deprecated attribute values - IFC4.3

Given A model with Schema "IFC4.3"
Given an IfcShapeRepresentation
Given an .IfcShapeRepresentation.

Then RepresentationType is not "PointCloud"
Then .RepresentationType. is not "PointCloud"


Scenario: Check for deprecated property set - IFC4.3

Given A model with Schema "IFC4.3"
Given an IfcPropertySet
Given an .IfcPropertySet.

Then Name is not 'Pset_Draughting'
Then .Name. is not 'Pset_Draughting'


Scenario: Check for deprecated property set - IFC4

Given A model with Schema "IFC4"
Given an IfcPropertySet
Given an .IfcPropertySet.

Then Name is not 'Pset_Draughting'
Then .Name. is not 'Pset_Draughting'


Scenario: Check for deprecated property set - IFC2X3

Given A model with Schema "IFC2X3"
Given an IfcPropertySet

Then Name is not 'Pset_Draughting'
Then .Name. is not 'Pset_Draughting'
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ with an PlacementRelTo attribute pointing to the IfcLocalPlacement of the contai
Given An .IfcElement.
Given A relationship .IfcRelAggregates. exists from .IfcElement. to .IfcElement. &and following that&

Then The relative placement of that IfcElement must be provided by an IfcLocalPlacement entity
Then The relative placement of that .IfcElement. must be provided by an .IfcLocalPlacement. entity

@E00060
Scenario: Agreement on the container attributes of IfcElements being a part of another IfcElement through the relationship IfcRelAggregates
Expand All @@ -22,4 +22,4 @@ with an PlacementRelTo attribute pointing to the IfcLocalPlacement of the contai
Given An IfcElement
Given a relationship .IfcRelAggregates. from .IfcElement. to .IfcElement. &and following that&

Then The PlacementRelTo attribute must point to the IfcLocalPlacement of the container element established with IfcRelAggregates relationship
Then The PlacementRelTo attribute must point to the .IfcLocalPlacement. of the container element established with .IfcRelAggregates. relationship
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,19 @@ Feature: OJT001 - Object Predefined Type
Ref: https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/concepts/Object_Attributes/Object_Predefined_Type/content.html

Scenario: Validating the proper use of USERDEFINED PredefinedType for an object typed at the occurrence
Given An IfcObject with subtypes
Given IsTypedBy = empty
Given PredefinedType = "USERDEFINED"
Then The value of attribute ObjectType must be not empty
Given An .IfcObject. &with subtypes&
Given .IsTypedBy. is empty
Given .PredefinedType. is "USERDEFINED"
Then .ObjectType. must be *not empty*

Scenario: Validating the proper use of USERDEFINED PredefinedType for an object typed by IfcTypeObject
Given An IfcTypeObject with subtypes
Given An .IfcTypeObject. &with subtypes&
Given PredefinedType = "USERDEFINED"
Then The value of attribute ElementType must be not empty
Then .ElementType. must be *not empty*

Scenario: Validating the proper use of PredefinedType for an Object typed by IfcTypeObject
Given A model with Schema "IFC4" or "IFC4.3"
Given An IfcTypeObject with subtypes
Given Its PredefinedType attribute does not start with NOTDEFINED
Given An .IfcTypeObject. &with subtypes&
Given Its .PredefinedType. attribute does not start with "NOTDEFINED"
Given A relationship .IfcRelDefinesByType. from IfcTypeObject to IfcObject &and following that&
Then The value of attribute .PredefinedType. must be empty and display entity instance
Then .PredefinedType. must be *empty* &and display entity instance&
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ Feature: POR000 - Port Connectivity and Nesting

Scenario: Check for activation

Given an IfcDistributionPort
Given its attribute ConnectedFrom
Given an .IfcDistributionPort.
Given its attribute .ConnectedFrom.
Given [Its type] is 'IfcRelConnectsPorts'
Given its attribute RelatingPort
Given its attribute .RelatingPort.
Given [Its type] is 'IfcDistributionPort'

Then The IFC model contains information on port connectivity and nesting
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,31 +6,31 @@ Feature: PSE001 - Standard properties and property sets validation
The rule verifies that each IfcPropertySet starting with Pset is defined correctly.

Background:
Given An IfcPropertySet
Given its Name attribute starts with Pset
Given An .IfcPropertySet.
Given its "Name" attribute starts with "Pset"


Scenario: IfcPropertySet Name

Then The IfcPropertySet Name attribute value must use predefined values according to the "pset_definitions" table
Then The .IfcPropertySet. "Name" attribute value must use predefined values according to the "pset_definitions" table


Scenario: Property Name

Then Each associated IfcProperty must be named according to the property set definitions table "pset_definitions"
Then Each associated .IfcProperty. must be named according to the property set definitions table "pset_definitions"


Scenario: PropertySet definitions

Then The IfcPropertySet must be assigned according to the property set definitions table "pset_definitions"
Then The .IfcPropertySet. must be assigned according to the property set definitions table "pset_definitions"


Scenario: Property Type

Then Each associated IfcProperty must be of type according to the property set definitions table "pset_definitions"
Then Each associated .IfcProperty. must be of type according to the property set definitions table "pset_definitions"


Scenario: Property Data Type

Then Each associated IfcProperty value must be of data type according to the property set definitions table "pset_definitions"
Then Each associated .IfcProperty. value must be of data type according to the property set definitions table "pset_definitions"

Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Feature: PJS002 - Correct elements related to project
https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/concepts/Project_Context/Project_Declaration/content.html

Scenario: Validating correct elements relationship from IfcProject
Given An IfcProject
Given An .IfcProject.
Given a relationship .IfcRelDeclares. from .IfcProject. to .IfcRoot. &and following that&

Then the type must be in 'valid_ProjectDeclaration.csv'
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ Feature: PJS003 - Globally Unique Identifiers


Scenario Outline: Valid globally unique identifiers
Given An IfcRoot
Given Its attribute GlobalId
Given An .IfcRoot.
Given Its attribute .GlobalId.

Then <Constraint>

Expand Down
2 changes: 1 addition & 1 deletion features/Rules/PSJ-Project/PJS101_Project-presence.feature
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ For example, project libraries, including type libraries or property definition
Scenario: Check project existence
Given an IFC Model

Then There must be exactly 1 instance(s) of IfcProject
Then There must be exactly 1 instance(s) of .IfcProject.
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ Feature: QTY000 - Quantities for Objects

Scenario: Check for activation

Given an IfcObject
Given its attribute IsDefinedBy
Given an .IfcObject.
Given its attribute .IsDefinedBy.
Given [Its type] is 'IfcRelDefinesByProperties'
Given its attribute RelatingPropertyDefinition
Given its attribute .RelatingPropertyDefinition.
Given [Its type] is 'IfcElementQuantity'

Then The IFC model contains information on quantities of elements
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Feature: SPA000 - Spaces Information

Scenario Outline: Check for activation of Spaces Information

Given an <Entity>
Given an .<Entity>.

Then The IFC model contains information on spaces information

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,22 +12,22 @@ The rule verifies that there's maximum one instance of IfcSite and at least one

Scenario: Agreement141 - Agreement on having maximum of one instance of IfcSite

Then There must be at most 1 instance(s) of IfcSite
Then There must be *at most* 1 instance(s) of .IfcSite.

Scenario: Agreement142(1) - Agreement on having at least one instance of IfcBuilding as part of the spatial structure

Then There must be at least 1 instance(s) of IfcBuilding
Then There must be *at least* 1 instance(s) of .IfcBuilding.

Scenario: Agreement142(2) - Agreement on having at least one instance of IfcBuilding as part of the spatial structure

Given An IfcSite
Given an IfcBuilding
Then It must be assigned to the IfcSite
Given An .IfcSite.
Given an .IfcBuilding.
Then It must be assigned to the .IfcSite.


Scenario: Agreement142(3) - Agreement on having at least one instance of IfcBuilding as part of the spatial structure

Given no IfcSite
Given An IfcBuilding
Given no .IfcSite.
Given An .IfcBuilding.

Then It must be assigned to the IfcProject
Then It must be assigned to the .IfcProject.
Loading

0 comments on commit b711ff5

Please sign in to comment.