MicroStation CONNECT Update 10 — Serious Problem with Binary Tags

This is the latest in a series of MicroStation CONNECT bugs regarding large binary tag values. MicroStation V8i SS4 handles these tags perfectly, but MicroStation CONNECT does not.

Background
MicroStation CONNECT Update 4 fixed one aspect of a binary tag bug introduced in MicroStation CONNECT. But it turns out that that problem with binary tag values was not completely fixed in MicroStation CONNECT Update 4. Here I describe the symptoms we discovered during testing.

The previous problem in this series (not fully fixed in MicroStation CONNECT Update 4) was:

  • SR # 7000498972
  • Defect # 439635

The Current Bug
MicroStation CONNECT Update 10 (10.10.00.23). Probably exists in earlier CONNECT versions as well.

Steps to Reproduce
1. Open the attached design file in MicroStation CONNECT Update 10. Observe two cells, each containing lines and text. These have tags associated with them.
2. Key-in "edit tags" and choose the leftmost cell. Observe all tags properly displayed. (Note: MicroStation CONNECT Update 3 was UNable to display all the tags. Bentley staff can refer to SR 7000498972 for details on this. This is the aspect that was fixed in MicroStation CONNECT Update 4.)
3. When done, press {Cancel} to close the Edit Tags box. Up to this step, things are working okay. 

The Problem
4. Now key-in "edit tags" and pick the rightmost cell. Observe "Attached Sets" dialog with an empty list. That is an error. It should display two (2) tags: column_index and column_height.

Expected (Correct) Behavior
5. Repeat step (4) but in MicroStation V8i SS4. You will see that V8i SS4 does not have this bug. Only MicroStation CONNECT has this bug.

MDL Code
Execute the code below on the first (left) cell. Observe that some tags are not extracted properly by mdlTag_extract routine. If you watch tagSpec.set.setName and tagSpec.tagName variables in debugger you can see that they contain garbage symbols. Also, tagValue contains garbage. A strange thing though is that "edit tags" key-in against first (left) cell displays all names and values properly.

void readTags (MSElement *elP)
{
int n_tag;
TagValue tagValue;
TagSpec tagSpec;
MSElementDescr *edP, *currP;

mdlTag_getElementTags (&edP, &n_tag, &elP, MASTERFILE, 0);
if (n_tag == 0) return;
currP = edP;

while (currP != NULL)
{
mdlTag_extract (NULL, NULL, &tagSpec, NULL, &tagValue, NULL, NULL,
NULL, NULL, NULL, &currP->el, MASTERFILE);

currP = currP->h.next;
}
}

old_tags_test.dgn

Parents Reply Children
No Data