Legacy Ideas are now read-only and have been migrated to our new platform: Aha! Click Here

New

Item Type properties should have a Display Label as well as a Name

Most EC schema objects have both a Name and a DisplayLabel.  The Name is for MicroStation consumption.  The DisplayLabel is for human consumption.  The Name may have certain (unpublished) restrictions.  The DisplayLabel can be anything: MicroStation doesn't use it internally.  For examples of EC Names and DisplayLabels look at the XML files in the ..\MicroStation\ECSchemas folder.

Item Type properties have only a Name: they don't have a DisplayLabel.  This can lead to problems when a MicroStation tool uses the property's mangled internal name.  See this post about Expression problems in Item Type properties.  If Item Type properties were to emulate their ECSchema peers and have a DisplayLabel, then those sorts of problems would disappear.  A MicroStation user would assign to a property a Name that is subject to constraints (for example, must use ASCII characters, cannot contain a space or hyphen) and a DisplayLabel that could be any human-readable text (including non-ASCII characters for non-English users).

  • "There is not any reason for such feature in my opinion."
    I upvoted this as I disagree with the statement. (For now. Yes it shouldn't be an issue, but it is)
    There are many bugs deprecating usage of ITEMTYPES names. And I'd like to be able to use the hyphen.

    • Prefix names with numbers causes (some?) IT expressions to fail
    • Names with hyphens definitely causes failure.
    • Exporting IT Schema to Excel causes a default "sorting" by Names, and not by order in the IT definition. Being able to use number prefixes (and not have expressions fail) will alleviate this issue

    Will post a discussion on the bugs soon. Probably in Insiders Forum.

  • I downvoted this idea, because in my opinion it's based on misunderstanding how EC world is defined and also it would lead to incompatibility between general EC schemas and Item Types specifics.

    Some notes:

    • The Name is for MicroStation consumption. ... The Name is (thinking about EC Class and EC Property) mandatory, but it's not for MicroStation consumption only. It's both unique identifier (in relevant context like Class > Schema or Property > Class) and when Display Label is not defined, it's also "name used for GUI".
    • The Name may have certain (unpublished) restrictions.  ... Not correct, the limitations are defined and documented, at least in Bentley Class Editor help and also in EC help file delivered with MicroStation SDK U13. The rules are simple: The name has to be valid XML tag name, plus it cannot contain "-". A recommendation is to think about the name as about NET namespace (with their naming restrictions).
    • Item Type properties have only a Name: they don't have a DisplayLabel. ...Also incorrect. Every EC property always has Name and DisplayLabel parameters. The only difference is that Name is mandatory and has to be unique, whereas DisplayLabel is optional and more properties can use the same label (but of course it's pretty bad idea).
    • If Item Type properties were to emulate their ECSchema peers and have a DisplayLabel, then those sorts of problems would disappear. ... I do not understand this statement. Item Types are subset of EC features, it can be treated as (but technically it's not) as Item Types are based on pre-defined EC schema where not all features are accessible (because it would become too complicated for users) and also some configurations are "pre-cooked" automatically at the background. But what is mandatory for EC Class or Property, it's also mandatory for Item Types.
    • A MicroStation user would assign to a property a Name that is subject to constraints (for example, must use ASCII characters, cannot contain a space or hyphen) and a DisplayLabel that could be any human-readable text (including non-ASCII characters for non-English users). ... There is not any reason for such feature in my opinion. How ItemTypes works internally can be evaluated in just a few minutes and it's clear there is full compatibility with EC specification requirements:
      • When ItemType Property name, entered by user, is valid EC name, it's used as the Name (because it's mandatory) and DisplayLabel is undefined.
      • When the name entered by user is evaluated as invalid, so it cannot be used as the Name, it's converted to valid representation and the original name is used for DisplayLabel.

    In my opinion existing system is fine, fully compatible with EC specification and works the same way as general EC schemas / classes / properties. When anything special is required (e.g. formalized internal names because of custom code working with them, but nice displayed names, localization, special formatting...), EC schemas should be used, not users oriented Item Types.

    With regards,

      Jan