``ALS011`` Alignment segment entity type consistency - v3 ======================================================================================================================================================================================================== .. parsed-literal:: 001 | \@implementer-agreement 002 | \@ALS 003 | \@version3 004 | 005 | 006 | Feature: ALS011 - Alignment segment entity type consistency 007 | 008 | The rule verifies that the same entity type is used for all segments 009 | and that IfcCurveSegment is used with IfcSegmentedReferenceCurve and IfcGradientCurve 010 | The rule is similar to GEM011, except that it requires the presence of an IfcAlignment. 011 | 012 | 013 | Background: 014 | :doc:`Given a model with Schema 'IFC4.3' ` 015 | :doc:`Given an .IfcAlignment. ` 016 | :doc:`Given its attribute .Representation. ` 017 | :doc:`Given its attribute .Representations. ` 018 | :doc:`Given its attribute .Items. ` 019 | 020 | 021 | Scenario Outline: Consistent entity types used - direct representation 022 | 023 | :doc:`Given [its entity type] ^is^ '\' ^excluding subtypes^ ` 024 | :doc:`Given its attribute .Segments. ` 025 | :doc:`Given its entity type ` 026 | 027 | :doc:`Then The values must be identical at depth 3 ` 028 | 029 | Examples: 030 | | entity | 031 | | IfcCompositeCurve | 032 | | IfcGradientCurve | 033 | | IfcSegmentedReferenceCurve | 034 | 035 | 036 | Scenario Outline: Consistent entity types used - capture parent curve in case it is not a direct representation 037 | 038 | :doc:`Given [its entity type] ^is^ '\' ` 039 | :doc:`Given its attribute .BaseCurve. ` 040 | :doc:`Given [its entity type] ^is^ '\' ^excluding subtypes^ ` 041 | :doc:`Given its attribute .Segments. ` 042 | :doc:`Given its entity type ` 043 | 044 | :doc:`Then The values must be identical at depth 3 ` 045 | 046 | Examples: 047 | | entity | entity\_parent | 048 | | IfcGradientCurve | IfcCompositeCurve | 049 | | IfcSegmentedReferenceCurve | IfcCompositeCurve | 050 | 051 | 052 | Scenario Outline: IfcCurveSegment used for IfcSegmentedReferenceCurve and IfcGradientCurve 053 | 054 | :doc:`Given [its entity type] ^is^ '\' ` 055 | :doc:`Given its attribute .Segments. ` 056 | :doc:`Given its entity type ` 057 | 058 | :doc:`Then The value must be 'IfcCurveSegment' ` 059 | 060 | Examples: 061 | | entity | 062 | | IfcGradientCurve | 063 | | IfcSegmentedReferenceCurve | .. rubric:: Version history .. list-table:: :header-rows: 1 * - Version - Tag - Date - Commit - Rule link * - v1 - :tag:`v0.6.6` - 2024-06-21 - :commit:`1cd01e0f7c5bf83ecffac0220621353247e8f069` - `view `_ * - v2 - :tag:`v0.7.7` - 2025-06-25 - :commit:`c895611be5667c980b3941b705cfc67e39e18ef7` - `view `_ * - v3 - :tag:`v0.8.3` - 2025-12-04 - :commit:`d7fcd8502e8e1cb922bb2f3e29013eadc0b6f02e` - `view `_