AECgeeks / infra-repo-issue-test-2

0 stars 0 forks source link

jwg12 IfcRevolvedAreaSolid AxisStartInXY #9

Open aothms opened 2 years ago

aothms commented 2 years ago

Where rule fix due to more general point type usage in IfcPlacement

aothms commented 2 years ago
--- tmp/a/IFC.exp   2022-08-26 23:08:09.300513800 +0200
+++ tmp/b/IFC.exp   2022-09-05 20:18:40.046645700 +0200
@@ -10094,21 +10094,21 @@
  SUPERTYPE OF (ONEOF
    (IfcRevolvedAreaSolidTapered))
  SUBTYPE OF (IfcSweptAreaSolid);
    Axis : IfcAxis1Placement;
    Angle : IfcPlaneAngleMeasure;
  DERIVE
     AxisLine : IfcLine := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcCurve() || IfcLine(Axis.Location, 
   IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector(Axis.Z,1.0));
  WHERE
    AxisDirectionInXY : Axis.Z.DirectionRatios[3] = 0.0;
-   AxisStartInXY : Axis.Location.Coordinates[3] = 0.0;
+   AxisStartInXY : ('IFC4X3_DEV.IFCCARTESIANPOINT' IN TYPEOF(Axis.Location)) AND (Axis.Location\IfcCartesianPoint.Coordinates[3] = 0.0);
 END_ENTITY;

 ENTITY IfcRevolvedAreaSolidTapered
  SUBTYPE OF (IfcRevolvedAreaSolid);
    EndSweptArea : IfcProfileDef;
  WHERE
    CorrectProfileAssignment : IfcTaperedSweptAreaProfiles(SELF\IfcSweptAreaSolid.SweptArea, SELF.EndSweptArea);
 END_ENTITY;

 ENTITY IfcRightCircularCone
SergejMuhic commented 2 years ago

Okay, I am afraid I experienced a serious brain fart here. I cannot seem to get my head around the extra check. If this check is required, would it not make more sense to just restrict IfcAxis1Placement.Location in the first place? It would be consistent with IfcAxis2Placement2/3D.

aothms commented 2 years ago

It seems LocationIsCP already exists on IfcAxis1Placement, so the first part is indeed redundant. I've created an issue so can we can address that in the next tc https://github.com/buildingSMART/IFC4.3.x-development/issues/535

SergejMuhic commented 2 years ago

Well then, this is great. No need for such a check.