AECgeeks / infra-repo-issue-test-old1

0 stars 0 forks source link

Rule and function updates issue 428 #66

Closed aothms closed 2 years ago

aothms commented 2 years ago
--- tmp/a/IFC.exp   2022-03-20 15:43:48.120659700 +0100
+++ tmp/b/IFC.exp   2022-07-09 15:52:12.085255700 +0200
@@ -10135,21 +10135,21 @@
  WHERE
    ValidRadius : ((RoundingRadius <= (SELF\IfcRectangleProfileDef.XDim/2.)) AND 
  (RoundingRadius <= (SELF\IfcRectangleProfileDef.YDim/2.)));
 END_ENTITY;

 ENTITY IfcSIUnit
  SUBTYPE OF (IfcNamedUnit);
    Prefix : OPTIONAL IfcSIPrefix;
    Name : IfcSIUnitName;
  DERIVE
-    SELF\IfcNamedUnit.Dimensions : IfcDimensionalExponents := IfcDimensionsForSiUnit (SELF.Name);
+    SELF\IfcNamedUnit.Dimensions : IfcDimensionalExponents := IfcDimensionsForSIUnit (SELF.Name);
 END_ENTITY;

 ENTITY IfcSanitaryTerminal
  SUBTYPE OF (IfcFlowTerminal);
    PredefinedType : OPTIONAL IfcSanitaryTerminalTypeEnum;
  WHERE
    CorrectPredefinedType : NOT(EXISTS(PredefinedType)) OR
  (PredefinedType <> IfcSanitaryTerminalTypeEnum.USERDEFINED) OR
  ((PredefinedType = IfcSanitaryTerminalTypeEnum.USERDEFINED) AND EXISTS (SELF\IfcObject.ObjectType));
    CorrectTypeAssigned : (SIZEOF(IsTypedBy) = 0) OR
@@ -12867,21 +12867,21 @@
           (UnitElements[i].Exponent *
            UnitElements[i].Unit.Dimensions.AmountOfSubstanceExponent);
         Result.LuminousIntensityExponent := Result.LuminousIntensityExponent +
           (UnitElements[i].Exponent *
            UnitElements[i].Unit.Dimensions.LuminousIntensityExponent);
     END_REPEAT;  
     RETURN (Result);

 END_FUNCTION;

-FUNCTION IfcDimensionsForSiUnit
+FUNCTION IfcDimensionsForSIUnit
 (n : IfcSIUnitName )     : IfcDimensionalExponents;
   CASE n OF
     METRE          : RETURN (IfcDimensionalExponents
                              (1, 0, 0, 0, 0, 0, 0));
     SQUARE_METRE   : RETURN (IfcDimensionalExponents
                              (2, 0, 0, 0, 0, 0, 0));
     CUBIC_METRE    : RETURN (IfcDimensionalExponents
                              (3, 0, 0, 0, 0, 0, 0));
     GRAM           : RETURN (IfcDimensionalExponents
                              (0, 1, 0, 0, 0, 0, 0));
@@ -13410,37 +13410,47 @@
         Count := SIZEOF(QUERY(temp <* Items | ('IFC4X3_DEV.IFCCURVE' IN TYPEOF(temp)) 
                  AND (temp\IfcCurve.Dim = 2)));
       END;

     'Curve3D' :
       BEGIN 
         Count := SIZEOF(QUERY(temp <* Items | ('IFC4X3_DEV.IFCCURVE' IN TYPEOF(temp)) 
                  AND (temp\IfcCurve.Dim = 3)));
       END;

+    'Segment' :
+      BEGIN 
+        Count := SIZEOF(QUERY(temp <* Items | ('IFC4X3_DEV.IFCSEGMENT' IN TYPEOF(temp))));
+      END;
+
     'Surface' :
       BEGIN 
         Count := SIZEOF(QUERY(temp <* Items | ('IFC4X3_DEV.IFCSURFACE' IN TYPEOF(temp))));
       END;

     'Surface2D' :
       BEGIN 
         Count := SIZEOF(QUERY(temp <* Items | ('IFC4X3_DEV.IFCSURFACE' IN TYPEOF(temp)) 
                  AND (temp\IfcSurface.Dim = 2)));
       END;

     'Surface3D' :
       BEGIN 
         Count := SIZEOF(QUERY(temp <* Items | ('IFC4X3_DEV.IFCSURFACE' IN TYPEOF(temp)) 
                  AND (temp\IfcSurface.Dim = 3)));
       END;

+    'SectionedSurface' :
+      BEGIN 
+        Count := SIZEOF(QUERY(temp <* Items | 'IFC4X3_DEV.IFCSECTIONEDSURFACE' IN TYPEOF(temp)));
+      END;
+
     'FillArea' :
       BEGIN 
         Count := SIZEOF(QUERY(temp <* Items | ('IFC4X3_DEV.IFCANNOTATIONFILLAREA' IN TYPEOF(temp))));
       END;

     'Text' :
       BEGIN 
         Count := SIZEOF(QUERY(temp <* Items | ('IFC4X3_DEV.IFCTEXTLITERAL' IN TYPEOF(temp))));
       END;