Question

Change label position for writing to Microstation DGN

  • 25 January 2019
  • 6 replies
  • 8 views

Badge +1

Hi,

I am using the Labeller transformer to label a point which will be written out to Microstation. I want the label to be displayed to the left of the point in the output Microstation DGN V8 file, but I can't find a way to set this within FME.

Does anyone have any tips?

I am using FME Desktop 2017.1

Thanks


6 replies

Userlevel 2
Badge +17

Hi @aquamarine,

By default, the text justification when writing to Microstation DGN is lower left, which puts the text to the right of the insertion point. To move the text to the left of the point, please use a DGNStyler to set the text justification to Right Bottom. You can also do this by creating the attribute igds_justification, and setting it to 14.

For more information on text justification on FME, please see this article:

https://knowledge.safe.com/articles/16546/text-justification.html

Badge +1

Great thanks for that @DaveAtSafe. I have done that and exposed the igds_justification attribute to check that it is set to 14 (and it is), but the text is appearing to the centre and above the point rather than to the left of it. I can't really work out from the table In the link you provided which value corresponds to left and above the point..

Userlevel 2
Badge +17

Hi @aquamarine,

You may also need to set the Labeller to label to the Left of the feature.

I am attaching a simple workspace that creates a DGN point and a label to the left of it.

labelpoint.fmw

Badge +1

Hi @daveatsafe the right bottom justification is working for me except now it is staggered as per the image below. Do you know why this would be?

Userlevel 2
Badge +17

Hi @aquamarine,

It might be due to the font metrics (ie. character width, etc.). It's a quirk of Microstation and AutoCAD that the text features are always stored in lower left justification, regardless of the justification they were placed in. Both applications calculate the placed location on the fly, using the metrics of the font.

FME doesn't have access to these font files in Microstation, so it calculates the lower left position using a standard font metric, which may not match the font you are using.

If you want more control over multi-line text, you may want look at creating a multi-text feature instead:

http://docs.safe.com/fme/html/FME_Desktop_Documentation/FME_ReadersWriters/igds/Multi_text_Strings.htm

Badge +1

Hi @aquamarine,

It might be due to the font metrics (ie. character width, etc.). It's a quirk of Microstation and AutoCAD that the text features are always stored in lower left justification, regardless of the justification they were placed in. Both applications calculate the placed location on the fly, using the metrics of the font.

FME doesn't have access to these font files in Microstation, so it calculates the lower left position using a standard font metric, which may not match the font you are using.

If you want more control over multi-line text, you may want look at creating a multi-text feature instead:

http://docs.safe.com/fme/html/FME_Desktop_Documentation/FME_ReadersWriters/igds/Multi_text_Strings.htm

Thanks @daveatsafe do you know which font is the default to which the metrics are set?

I have tried multi-line text before but there is a bug in FME which is causing the text to all go onto one line when you click on it in Microstation.

Thanks,

Reply