User Attribute Data ID

Hello all,

We are using MicroStation CONNECT Edition Update 16.

We're planning on using User Data Attribute to store some specific application data. Upon consulting the help files, we found out that we need to reserve an ID to be able to add our data to the element.

Is there a list online or in .h files where these IDs are published if we do not wish to use existing IDs?

And how do we contact developer support at Bentley Systems to reserve an ID?

Thank you,
Kevin

  • Hi  Kevin Ho (5883e759-5e06-4685-85ab-dcacc53abec5),

    In many/most cases MicroStation CONNECT Edition Item Types (based on EC APIs) are often preferred to associate non-graphic yet important data to graphical elements. Doing so helps application developers (and users/admins) seamlessly and consistently integrate with many MicroStation's workflows, features and tools, like: DgnLibsElement PropertiesElement TemplatesText FieldsTablesScheduling and Reporting, with more functionality likely to come.

    In MicroStation CONNECT it is much more uncommon to require a Bentley Signature ID and when we provide one to a company the structured data (attached to an element - reducing element size) should be "partitioned" with fields such as: Company, Organization, Application, Feature/Command, then custom data for an application/command.

    If you do find a need to request a Bentley Signature ID for your company, please feel free to request one using the BDN Contact Us form.

    HTH,

    Bob



  • Hi Kevin,

    I agree with Bob that to use User Data Attributes (User Linkages) today in a new code is not good decision, because more modern alternatives exist on CE platform.

    We're planning on using User Data Attribute to store some specific application data

    What kind of data you plan to store with elements?

    We are using MicroStation CONNECT Edition Update 16.

    As Bob wrote, Item Types (or EC data when more complex requirements exist) is the way to go. There is rich API available both in C++ and NET (you do not tell anything about used language / API) and the data itself are fully compatible with the rest of MicroStation. Plus, no custom ID is required ;-)

    With regards,

      Jan

  • Hello Robert,

    Thanks for the quick and informational reply. For the application data, it's strictly for programmatic purposes. In other words, we want the data hidden from the user. Can we do that with Item Types?

    Thank you,

    Kevin

  • Hi Kevin,

    In other words, we want the data hidden from the user. Can we do that with Item Types?

    because Item Types are a "users subset of EC data", I think you cannot hide Item, attached to an element, completely, only a property can be defined as "hidden".

    When you need to hide attached data completely (so they are not presented in GUI), you can use EC API to define hidden EC class. And when you want to obfuscate data completely (so data cannot be read programmatically by another person), you can encrypt them in your code and store as string property.

    Personally, I always prefer to use EC data, because it is standard, widely used platform technology, and engine is highly optimized to work with EC data efficiently. But, exceptions exist, so it always makes sense to think about pros and cons. I did not do any real benchmark, but I assume to access user attribute data stored "in element" can be faster than to access EC data stored separately. On the other hand, normally there is no difference for a user.

    Disadvantage of user attribute data is they are size-limited and you must implement your own "application and version identification mechanism", because ID is per developer, not per application. So in binary data, you must store something like app/tool id and version number, defining in what format data is stored, because in API and for MicroStation, they are only raw binary data with no internal structure.

    HTH,

      Jan