Open aothms opened 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
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.
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
Well then, this is great. No need for such a check.
Where rule fix due to more general point type usage in IfcPlacement