Skip to main content

I have decided to understand how to resave DGN file with tags using FME. I have dowloaded some files from this article (https://community.safe.com/s/article/writing-microstation-dgn-tags-with-fme#AdvancedExample) and ran it. It works correctly, but when I decided to change data to display into Microstation, I got NOT displayable data into DGN file.

 

Before and after my changes into AttributeKeeper and AttributeCreator transformers:

 

1 

Owner.x_offset and Owner.y_offset are created too.

 

Before and after my changes there are some differences between output DGN files even while trying to enable display option for new tag:

 

2 

 

5 

Openning modified DGN file into FME, diffences are so big:

Reader configurated like:

 

6 

And Exposed some hidden attributes I get:

Owner.color = 0

Owner.display = no

Owner.justification = 2

Owner.x_offset = 0

Owner.y_offset = 0

 

But Owner.original_justification = 7

Owner.x (y and z) are NOT the same as I set into output DGN file.

 

And I see NEW attributes such:

igds_color, igds_weight, igds_style, igds_class, igds_graphic_group,

Owner.font, Owner.insertion_x(y and z), Owner.lx (ly and lz), Owner.rotation, Owner.style, urx, ury, urz, x, y, z

 

7 

Is it good action with file?

 

During reading the documentation and articles I have some questions:

 

1) Why after creating igds_tag_names{0} = Owner, I can not get data - Owner using AttributeKeeper, I only get "No schema" attribute? If I correctly understand, igds_tag_names{} is a main attribute for correct TAG creation into DGN file? But how it works in more details, please.

 

3 

If all tags are created using igds_tag_names{} with some technical attributes like TAG.tagset_name, TAG.tagtype, TAG.display, TAG.value why I haven't got dispalyed tag into Microstation?

 

2) How the Writer into DGN format can detect which collumns it must write and how they will be written? I mean that sometimes the Writer writes all fields as Tag for all objects and dome times (Reading Schema from Reader of DGN format) Writer writes correctly. But when I need to change schema of a DGN Reader , the Writer writes ALL collumns even which must not be visible (igds_style, igds_element_id, TAG.tagset_name and some other wich I Exposed to manipulate with them). 

 

3) Is it possible hide to Write correct technical information (hidden into dgn file from user) as Hiding Technical collumns before Writer will work?

How can I define what collumns must be applied or hidden as tags to each level into DGN file ? It must be done using PyCaller Hide attributes function? Because, sometimes I get all technical fields from FME inserts into DGN file as tags. Even it may be done for DGN elements from different layers which has not got any tags before Reader and Writer works.

It is from another FME dgn2dgn test project.

 

4 

3d question is closed. All tags that must be includen into tagset must be added via igds_tag_names{}, which is ann array of tags, that are written as text. Example using AttributeCreator:

igds_tag_names{0} = length

length.tagset_name = road

length.value = value

length.tagtype = 1 (1 = str, 4 = int)

Where tag = length, tagset = road

Using igds_tag_names{} you can sort tags into tagset.

If you want, you can create several tagsets per layer.

 

 

After this you can add some additional tag information like position or display.

 

Be carefull with AttributeKepper as it cleans Schema.

 


Reply