IFC102 Absence of deprecated entities - v5

001 | @IFC
002 | @version5
003 | @implementer-agreement
004 | Feature: IFC102 - Absence of deprecated entities
005 |
006 | The rule verifies that the IFC model does not have deprecated entities, attributes or enumerators.
007 | By definition, a deprecated entity shall not be exported by applications.
008 | Complying interpreters shall still be able to import deprecated definitions.
009 | IFC2X3: https://standards.buildingsmart.org/IFC/RELEASE/IFC2x3/TC1/HTML/deprecated_constructs.htm
010 | IFC4X3: https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/content/introduction.htm#List-of-known-backward-incompatibilities-of-this-document-with-ISO-16739-1-2018
011 | IFC4: https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/
012 |
013 |
014 |   Scenario Outline: Check for deprecated entities - IFC4.3
015 |
016 |     Given A model with Schema 'IFC4.3'
017 |     Given An IFC model
018 |
019 |     Then There must be less than 1 instance(s) of .<Entity>. ^excluding subtypes^
020 |
021 |     Examples:
022 |       | Entity                                |
023 |       | IfcBuildingSystem                     |
024 |       | IfcCivilElement                       |
025 |       | IfcCivilElementType                   |
026 |       | IfcDoorLiningProperties               |
027 |       | IfcDoorPanelProperties                |
028 |       | IfcElectricDistributionBoard          |
029 |       | IfcElectricDistributionBoardType      |
030 |       | IfcFaceBasedSurfaceModel              |
031 |       | IfcMaterialClassificationRelationship |
032 |       | IfcMaterialList                       |
033 |       | IfcPermeableCoveringProperties        |
034 |       | IfcPostalAddress                      |
035 |       | IfcRelConnectsPortToElement           |
036 |       | IfcRelCoversBldgElements              |
037 |       | IfcRelServicesBuildings               |
038 |       | IfcRelCoversSpaces                    |
039 |       | IfcTelecomAddress                     |
040 |       | IfcTextLiteral                        |
041 |       | IfcTrapeziumProfileDef                |
042 |       | IfcWallStandardCase                   |
043 |       | IfcWindowLiningProperties             |
044 |       | IfcWindowPanelProperties              |
045 |       | IfcWindowStandardCase                 |
046 |
047 |
048 |   Scenario Outline: Check for deprecated entities - IFC4
049 |
050 |     Given An IFC model
051 |     Given A model with Schema 'IFC4'
052 |
053 |     Then There must be less than 1 instance(s) of .<Entity>. ^excluding subtypes^
054 |
055 |     Examples:
056 |       | Entity                                |
057 |       | Ifc2DCompositeCurve                   |
058 |       | IfcBeamStandardCase                   |
059 |       | IfcConnectionPortGeometry             |
060 |       | IfcColumnStandardCase                 |
061 |       | IfcDoorStandardCase                   |
062 |       | IfcDoorStyle                          |
063 |       | IfcDoorStyleOperationEnum             |
064 |       | IfcElectricalElement                  |
065 |       | IfcEquipmentElement                   |
066 |       | IfcFaceBasedSurfaceModel              |
067 |       | IfcMaterialClassificationRelationship |
068 |       | IfcMaterialList                       |
069 |       | IfcMemberStandardCase                 |
070 |       | IfcNullStyle                          |
071 |       | IfcObjectTypeEnum                     |
072 |       | IfcOpeningStandardCase                |
073 |       | IfcPlateStandardCase                  |
074 |       | IfcPresentationStyleAssignment        |
075 |       | IfcProxy                              |
076 |       | IfcRelCoversBldgElements              |
077 |       | IfcRelCoversSpaces                    |
078 |       | IfcSlabElementedCase                  |
079 |       | IfcSlabStandardCase                   |
080 |       | IfcTextLiteral                        |
081 |       | IfcWallElementedCase                  |
082 |       | IfcWallStandardCase                   |
083 |       | IfcWindowStandardCase                 |
084 |       | IfcWindowStyle                        |
085 |       | IfcWindowStyleOperationEnum           |
086 |
087 |
088 |   Scenario Outline: Check for deprecated entities - IFC2X3
089 |
090 |     Given An IFC model
091 |     Given A model with Schema 'IFC2X3'
092 |
093 |     Then There must be less than 1 instance(s) of .<Entity>. ^excluding subtypes^
094 |
095 |     Examples:
096 |       |   Entity                   |
097 |       |   Ifc2DCompositeCurve      |
098 |       |   IfcConnectionPortGeometry|
099 |       |   IfcElectricalElement     |
100 |       |   IfcEquipmentElement      |
101 |       |   IfcObjectTypeEnum        |
102 |       |   IfcTextLiteral           |
103 |
104 |
105 |   Scenario Outline: Check for deprecated attributes - IFC4.3
106 |
107 |     Given A model with Schema 'IFC4.3'
108 |     Given an .<Entity>.
109 |
110 |     Then .<Attribute>. ^is^ empty
111 |
112 |     Examples:
113 |       | Entity                    | Attribute                      |
114 |       | IfcBuilding               | BuildingAddress                |
115 |       | IfcBuilding               | ElevationOfRefHeight           |
116 |       | IfcBuilding               | ElevationOfTerrain             |
117 |       | IfcBuildingStorey         | Elevation                      |
118 |       | IfcFillAreaStyleHatching  | PointOfReferenceHatchLine      |
119 |       | IfcOrganization           | Addresses                      |
120 |       | IfcPerson                 | Addresses                      |
121 |       | IfcPile                   | ConstructionType               |
122 |       | IfcReinforcingElement     | SteelGrade                     |
123 |       | IfcRelAssigns             | RelatedObjectsType             |
124 |       | IfcSite                   | LandTitleNumber                |
125 |       | IfcSite                   | SiteAddress                    |
126 |       | IfcStairFlight            | NumberOfRisers                 |
127 |       | IfcStairFlight            | NumberOfTreads                 |
128 |       | IfcStairFlight            | RiserHeight                    |
129 |       | IfcStairFlight            | TreadLength                    |
130 |       | IfcSurfaceStyleRendering  | DiffuseTransmissionColour      |
131 |       | IfcSurfaceStyleRendering  | ReflectionColour               |
132 |       | IfcSurfaceStyleRendering  | TransmissionColour             |
133 |       | IfcSurfaceTexture         | Parameter                      |
134 |       | IfcTendon                     | NominalDiameter            |
135 |       | IfcTendon                     | CrossSectionArea           |
136 |       | IfcTextureCoordinateGenerator | Parameter                  |
137 |
138 |
139 |   Scenario Outline: Check for deprecated attributes - IFC4
140 |
141 |     Given A model with Schema 'IFC4'
142 |     Given an .<Entity>.
143 |
144 |     Then .<Attribute>. ^is^ empty
145 |
146 |     Examples:
147 |       | Entity                        | Attribute                     |
148 |       | IfcDoorLiningProperties       | ShapeAspectStyle              |
149 |       | IfcDoorPanelProperties        | ShapeAspectStyle              |
150 |       | IfcFillAreaStyleHatching      | PointOfReferenceHatchLine     |
151 |       | IfcReinforcingElement         | SteelGrade                    |
152 |       | IfcRelAssignsToActor          | RelatedObjectsType            |
153 |       | IfcRelAssignsToControl        | RelatedObjectsType            |
154 |       | IfcRelAssignsToGroup          | RelatedObjectsType            |
155 |       | IfcRelAssignsToGroupByFactor  | RelatedObjectsType            |
156 |       | IfcRelAssignsToProcess        | RelatedObjectsType            |
157 |       | IfcRelAssignsToProduct        | RelatedObjectsType            |
158 |       | IfcRelAssignsToResource       | RelatedObjectsType            |
159 |       | IfcStairFlight                | NumberOfRisers                |
160 |       | IfcStairFlight                | NumberOfTreads                |
161 |       | IfcStairFlight                | RiserHeight                   |
162 |       | IfcStairFlight                | TreadLength                   |
163 |       | IfcWindowPanelProperties      | ShapeAspectStyle              |
164 |       | IfcWindowLiningProperties     | ShapeAspectStyle              |
165 |       | IfcTendon                     | SteelGrade                    |
166 |       | IfcTendon                     | NominalDiameter               |
167 |       | IfcTendon                     | CrossSectionArea              |
168 |       | IfcTendon                     | TensionForce                  |
169 |       | IfcTendon                     | PreStress                     |
170 |       | IfcTendon                     | FrictionCoefficient           |
171 |       | IfcTendon                     | AnchorageSlip                 |
172 |       | IfcTendon                     | MinCurvatureRadius            |
173 |       | IfcTendonAnchor               | SteelGrade                    |
174 |       | IfcTendonType                 | NominalDiameter               |
175 |       | IfcTendonType                 | CrossSectionArea              |
176 |       | IfcTendonType                 | SheathDiameter                |
177 |
178 |
179 |   Scenario Outline: Check for deprecated attributes - IFC2X3
180 |
181 |       Given A model with Schema 'IFC2X3'
182 |       Given an .<Entity>.
183 |
184 |       Then .<Attribute>. ^is^ empty
185 |
186 |     Examples:
187 |       | Entity                        | Attribute                     |
188 |       | IfcFillAreaStyleHatching      | PointOfReferenceHatchLine     |
189 |
190 |
191 |   Scenario Outline: Check for deprecated enumerated values - IFC4.3
192 |     # ** Description of deprecated enumerations for each entity *
193 |     # IfcBuildingElementProxy: IfcBuildingElementProxyTypeEnum
194 |     # IfcFireSuppressionTerminal: IfcFireSuppressionTerminalTypeEnum
195 |     # IfcCableCarrierFitting: IfcCableCarrierFittingTypeEnum
196 |     # IfcGeographicElement: IfcGeographicElementTypeEnum
197 |     # IfcSpace: IfcSpaceTypeEnum
198 |     # IfcWall: IfcWallTypeEnum
199 |
200 |     Given A model with Schema 'IFC4.3'
201 |     Given an .<Entity>.
202 |
203 |     Then .PredefinedType. ^is not^ <Value>
204 |
205 |     Examples:
206 |       | Entity                          |        Value                   |
207 |       | IfcBuildingElementProxy         | 'PROVISIONFORSPACE'            |
208 |       | IfcBuildingElementProxy         | 'PROVISIONFORVOID'            |
209 |       | IfcFireSuppressionTerminal      | 'SPRINKLERDEFLECTOR'          |
210 |       | IfcFireSuppressionTerminalType  | 'SPRINKLERDEFLECTOR'           |
211 |       | IfcCableCarrierFitting          | 'TEE' or 'CROSS' or 'REDUCER'  |
212 |       | IfcCableCarrierFittingType      | 'TEE' or 'CROSS' or 'REDUCER'  |
213 |       | IfcGeographicElement            | 'SOIL_BORING_POINT'            |
214 |       | IfcGeographicElementType        | 'SOIL_BORING_POINT'            |
215 |       | IfcSpace                        | 'INTERNAL' or 'EXTERNAL'       |
216 |       | IfcSpaceType                    | 'INTERNAL' or 'EXTERNAL'       |
217 |       | IfcWall                         | 'POLYGONAL' or 'STANDARD'      |
218 |       | IfcWallType                     | 'POLYGONAL' or 'STANDARD'      |
219 |
220 |
221 |   Scenario Outline: Check for deprecated enumerated values - IFC4
222 |     # IfcWall: IfcWallTypeEnum
223 |
224 |     Given A model with Schema 'IFC4'
225 |     Given an .<Entity>.
226 |
227 |     Then .PredefinedType. ^is not^ <Value>
228 |
229 |     Examples:
230 |       | Entity                   |  Value                                       |
231 |       | IfcWall                  | 'POLYGONAL' or 'STANDARD' or 'ELEMENTEDWALL' |
232 |       | IfcWallType              | 'POLYGONAL' or 'STANDARD' or 'ELEMENTEDWALL' |
233 |
234 |
235 |   Scenario Outline: Check for deprecated enumerated values - IFC2X3
236 |     # IfcOwnerHistory: IfcChangeActionEnum
237 |
238 |     Given A model with Schema 'IFC2X3'
239 |     Given an .<Entity>.
240 |
241 |     Then .<Attribute>. ^is not^ <Value>
242 |
243 |     Examples:
244 |       | Entity                   | Attribute            |         Value                                |
245 |       | IfcOwnerHistory          | ChangeAction         | 'MODIFIEDADDED' or 'MODIFIEDDELETED'         |
246 |
247 |
248 |   Scenario Outline: Check for deprecated explicitly instantiated entities - IFC4.3
249 |
250 |     Given A model with Schema 'IFC4.3'
251 |     Given an .<Entity>.
252 |
253 |     Then [its type] ^is not^ '<Entity>' ^excluding subtypes^
254 |
255 |     Examples:
256 |       | Entity                     |
257 |       | IfcFlowFitting             |
258 |       | IfcFlowSegment             |
259 |       | IfcFlowTerminal            |
260 |       | IfcFlowController          |
261 |       | IfcFlowMovingDevice        |
262 |       | IfcFlowStorageDevice       |
263 |       | IfcFlowTreatmentDevice     |
264 |       | IfcEnergyConversionDevice  |
265 |
266 |
267 |   Scenario Outline: Check for deprecated explicitly instantiated entities - IFC4
268 |
269 |     Given A model with Schema 'IFC4'
270 |     Given an .<Entity>.
271 |
272 |     Then [its type] ^is not^ '<Entity>' ^excluding subtypes^
273 |
274 |     Examples:
275 |       | Entity                     |
276 |       | IfcFlowFitting             |
277 |       | IfcFlowSegment             |
278 |       | IfcFlowTerminal            |
279 |       | IfcFlowController          |
280 |       | IfcFlowMovingDevice        |
281 |       | IfcFlowStorageDevice       |
282 |       | IfcFlowTreatmentDevice     |
283 |       | IfcEnergyConversionDevice  |
284 |
285 |
286 |   Scenario Outline: Check for deprecated explicitly instantiated entities - IFC2X3
287 |
288 |     Given A model with Schema 'IFC2X3'
289 |     Given an .<Entity>.
290 |
291 |     Then [its type] ^is not^ '<Entity>' ^excluding subtypes^
292 |
293 |     Examples:
294 |       | Entity                     |
295 |       | IfcProductRepresentation   |
296 |       | IfcRepresentation          |
297 |       | IfcRepresentationContext   |
298 |       | IfcRelAssociates           |
299 |
300 |
301 |   Scenario: Check for deprecated attribute values - IFC4.3
302 |
303 |     Given A model with Schema 'IFC4.3'
304 |     Given an .IfcShapeRepresentation.
305 |
306 |     Then .RepresentationType. ^is not^ 'PointCloud'
307 |
308 |
309 |   Scenario: Check for deprecated property set - IFC4.3
310 |
311 |     Given A model with Schema 'IFC4.3'
312 |     Given an .IfcPropertySet.
313 |
314 |     Then .Name. ^is not^ 'Pset_Draughting'
315 |
316 |
317 |   Scenario: Check for deprecated property set - IFC4
318 |
319 |     Given A model with Schema 'IFC4'
320 |     Given an .IfcPropertySet.
321 |
322 |     Then .Name. ^is not^ 'Pset_Draughting'
323 |
324 |
325 |   Scenario: Check for deprecated property set - IFC2X3
326 |
327 |     Given A model with Schema 'IFC2X3'
328 |     Given an .IfcPropertySet.
329 |
330 |     Then .Name. ^is not^ 'Pset_Draughting'

Version history

Version

Tag

Date

Commit

Rule link

v1

v0.6.6

2024-06-14

ad635c3e

view

v2

v0.6.6

2024-08-08

268f8a0d

view

v3

v0.6.7

2024-09-20

15ca2302

view

v4

v0.6.8

2024-10-31

890fd0ea

view

v5

v0.6.8

2024-10-31

1ea16524

view