I did some additional research.
The capture below shows the coordinates of IfcTextLiteralWithExtent#75793, a child element of IfcAnnotation#76112, in FME.
The coordinates are (13.539999999976, 24.1600000126, 0), which is incorrect.
I also dumped the same element in ifcOpenShell.
The following is an excerpt of only the important parts.
(IfcAnnotation#76112): obj_place=(0.0, 0.0, 2.7), GlobalId=0OL3LCjon8C8eMGVs718Tk, Name=None, Description=None, ObjectType=None
...
ObjectPlacement(IfcLocalPlacement#75786):
PlacementRelTo(IfcLocalPlacement#35064):
PlacementRelTo(IfcLocalPlacement#432):
PlacementRelTo(IfcLocalPlacement#115): PlacementRelTo=None
RelativePlacement(IfcAxis2Placement3D#114):
Location(IfcCartesianPoint#112): Coordinates=(0.0, 0.0, 0.0)
Axis(IfcDirection#110): DirectionRatios=(0.0, 0.0, 1.0)
RefDirection(IfcDirection#108): DirectionRatios=(1.0, 0.0, 0.0)
RelativePlacement(IfcAxis2Placement3D#431):
Location(IfcCartesianPoint#429): Coordinates=(0.0, 0.0, 0.0)
Axis(IfcDirection#427): DirectionRatios=(0.0, 0.0, 1.0)
RefDirection(IfcDirection#425): DirectionRatios=(1.0, 0.0, 0.0)
RelativePlacement(IfcAxis2Placement3D#35063):
Location(IfcCartesianPoint#35061): Coordinates=(0.0, 0.0, 2.7)
Axis(IfcDirection#35059): DirectionRatios=(0.0, 0.0, 1.0)
RefDirection(IfcDirection#35057): DirectionRatios=(1.0, 0.0, 0.0)
RelativePlacement(IfcAxis2Placement3D#75785):
Location(IfcCartesianPoint#75783): Coordinates=(0.0, 0.0, 0.0)
Axis(IfcDirection#75781): DirectionRatios=(0.0, 0.0, 1.0)
RefDirection(IfcDirection#75779): DirectionRatios=(1.0, 0.0, 0.0)
Representation(IfcProductDefinitionShape#76109): Name=None, Description=None
Representation[0](IfcShapeRepresentation#76107): RepresentationIdentifier=Annotation, RepresentationType=Annotation2D
ContextOfItems(IfcGeometricRepresentationSubContext#15265): ContextIdentifier=Annotation, ContextType=Plan, CoordinateSpaceDimension=None, Precision=None, WorldCoordinateSystem=None, TrueNorth=None, TargetScale=0.01, TargetView=PLAN_VIEW, UserDefinedTargetView=None
ParentContext(IfcGeometricRepresentationContext#374): ContextIdentifier=None, ContextType=Plan, CoordinateSpaceDimension=3, Precision=1e-05
WorldCoordinateSystem(IfcAxis2Placement3D#371):
Location(IfcCartesianPoint#369): Coordinates=(0.0, 0.0, 0.0)
Axis(IfcDirection#367): DirectionRatios=(0.0, 0.0, 1.0)
RefDirection(IfcDirection#365): DirectionRatios=(1.0, 0.0, 0.0)
TrueNorth(IfcDirection#372): DirectionRatios=(0.766044443119, 0.642787609687)
Item[0](IfcTextLiteralWithExtent#75793): Literal=50, Path=LEFT, BoxAlignment=bottom-left
Placement(IfcAxis2Placement2D#75792):
Location(IfcCartesianPoint#75790): Coordinates=(13.5399999976, 10.620000015)
RefDirection(IfcDirection#75788): DirectionRatios=(0.0, 1.0)
Extent(IfcPlanarExtent#75787): SizeInX=0.549829, SizeInY=0.4
The coordinates are (13.53999999976, 10.620000015, 2.7), which seem to be the correct coordinates.
By the way, when the x and y of the correct coordinates are added together they match the incorrect y coordinates in FME.
(13.539999999976 + 10.620000015 = 24.1600000126)
Is there some bug that causes the IfcCartesianPoint's x and y to add up under certain circumstances?
I did some additional research.
The capture below shows the coordinates of IfcTextLiteralWithExtent#75793, a child element of IfcAnnotation#76112, in FME.
The coordinates are (13.539999999976, 24.1600000126, 0), which is incorrect.
I also dumped the same element in ifcOpenShell.
The following is an excerpt of only the important parts.
(IfcAnnotation#76112): obj_place=(0.0, 0.0, 2.7), GlobalId=0OL3LCjon8C8eMGVs718Tk, Name=None, Description=None, ObjectType=None
...
ObjectPlacement(IfcLocalPlacement#75786):
PlacementRelTo(IfcLocalPlacement#35064):
PlacementRelTo(IfcLocalPlacement#432):
PlacementRelTo(IfcLocalPlacement#115): PlacementRelTo=None
RelativePlacement(IfcAxis2Placement3D#114):
Location(IfcCartesianPoint#112): Coordinates=(0.0, 0.0, 0.0)
Axis(IfcDirection#110): DirectionRatios=(0.0, 0.0, 1.0)
RefDirection(IfcDirection#108): DirectionRatios=(1.0, 0.0, 0.0)
RelativePlacement(IfcAxis2Placement3D#431):
Location(IfcCartesianPoint#429): Coordinates=(0.0, 0.0, 0.0)
Axis(IfcDirection#427): DirectionRatios=(0.0, 0.0, 1.0)
RefDirection(IfcDirection#425): DirectionRatios=(1.0, 0.0, 0.0)
RelativePlacement(IfcAxis2Placement3D#35063):
Location(IfcCartesianPoint#35061): Coordinates=(0.0, 0.0, 2.7)
Axis(IfcDirection#35059): DirectionRatios=(0.0, 0.0, 1.0)
RefDirection(IfcDirection#35057): DirectionRatios=(1.0, 0.0, 0.0)
RelativePlacement(IfcAxis2Placement3D#75785):
Location(IfcCartesianPoint#75783): Coordinates=(0.0, 0.0, 0.0)
Axis(IfcDirection#75781): DirectionRatios=(0.0, 0.0, 1.0)
RefDirection(IfcDirection#75779): DirectionRatios=(1.0, 0.0, 0.0)
Representation(IfcProductDefinitionShape#76109): Name=None, Description=None
Representation[0](IfcShapeRepresentation#76107): RepresentationIdentifier=Annotation, RepresentationType=Annotation2D
ContextOfItems(IfcGeometricRepresentationSubContext#15265): ContextIdentifier=Annotation, ContextType=Plan, CoordinateSpaceDimension=None, Precision=None, WorldCoordinateSystem=None, TrueNorth=None, TargetScale=0.01, TargetView=PLAN_VIEW, UserDefinedTargetView=None
ParentContext(IfcGeometricRepresentationContext#374): ContextIdentifier=None, ContextType=Plan, CoordinateSpaceDimension=3, Precision=1e-05
WorldCoordinateSystem(IfcAxis2Placement3D#371):
Location(IfcCartesianPoint#369): Coordinates=(0.0, 0.0, 0.0)
Axis(IfcDirection#367): DirectionRatios=(0.0, 0.0, 1.0)
RefDirection(IfcDirection#365): DirectionRatios=(1.0, 0.0, 0.0)
TrueNorth(IfcDirection#372): DirectionRatios=(0.766044443119, 0.642787609687)
Item[0](IfcTextLiteralWithExtent#75793): Literal=50, Path=LEFT, BoxAlignment=bottom-left
Placement(IfcAxis2Placement2D#75792):
Location(IfcCartesianPoint#75790): Coordinates=(13.5399999976, 10.620000015)
RefDirection(IfcDirection#75788): DirectionRatios=(0.0, 1.0)
Extent(IfcPlanarExtent#75787): SizeInX=0.549829, SizeInY=0.4
The coordinates are (13.53999999976, 10.620000015, 2.7), which seem to be the correct coordinates.
By the way, when the x and y of the correct coordinates are added together they match the incorrect y coordinates in FME.
(13.539999999976 + 10.620000015 = 24.1600000126)
Is there some bug that causes the IfcCartesianPoint's x and y to add up under certain circumstances?
Hi @rhikos,
Thank you very much for this information. I have created a problem report for our development team (FMEENGINE-76579) and expect this to be a quick fix. We will notify you when the fix is available in beta.
Hi @rhikos,
I'm pleased to share that the issue @daveatsafe had filed has been resolved, and annotations should now be placed in the correct location. The fix can be found in the official release build: FME 2022.2 build 22790 and higher from our downloads page here: safe.com/downloads
While checking this out, our QA team has identified a separate problem with reading this same dataset where it comes through with some incorrect geometries in 3D view. We are tracking this issue internally as (FMEENGINE-76696) and we can update here when it has been addressed too.
I have confirmed that annotations are placed in the correct location in build 22790. Thanks for the quick fix!