Question

Wrong text position of IfcAnnotation in ifc file

  • 9 February 2023
  • 4 replies
  • 12 views

Badge

Hello.

When I loaded the ifc file, I noticed that the position of the text was wrong.

The image below is the Inspector View when reading FKZ Haus data (*1) (*2).

wrong_text_pos_fme*1) https://www.ifcwiki.org/index.php?title=KIT_IFC_Examples

*2) I specified "Industry Foundation Class STEP/ XML Files (IFC)" as the format.

 

On the other hand, the image below shows the same data displayed with FKZViewer.

(I hide everything except IfcAnnotation to make it easier to see)

disp_by_fkz_viewer 

What is the reason for this misalignment? Also, are there any workarounds?


4 replies

Badge

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.

ifc_annotation_text#75793_in_fme

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?

 

Userlevel 2
Badge +17

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.

ifc_annotation_text#75793_in_fme

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.

Userlevel 1
Badge +11

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.

Badge

I have confirmed that annotations are placed in the correct location in build 22790. Thanks for the quick fix!

Reply