buildingSMART / buildingSMART/IFC4.x-development

Show enumerations as human names alongside STEP ALLCAPS for better accessibility to users

Open
#390 4 comments 0 reactions 0 assignees View on GitHub
allocated-www ifc-update-out iso-compatibility proposal
Dominant language
Python
Stars
234
Forks
123
Avg merge
15h 4m
Merged PRs (30d)
5

Description

Emma Hooper suggests that showing ALLCAPS for enumerations is not user-friendly. It's great for devs, but probably not for users getting into the world of IFC.

Edit: original thread https://twitter.com/liccle_em/status/1498821805271928834

Not a high priority for the ISO deadline, but thought I'd record it nonetheless as in theory it could be an easy fix.

Option 1) The harder solution, but potentially useful is to actually store a human name in UML, which can then be translated into other languages too. Maybe this already exists but I didn't notice in the XMI file.

Option 2) The easy solution, is to simply check markdown headers as the human name (e.g. "User-Defined") then canonicalised into "USERDEFINED" when correlating with the UML. If the markdown header == the UML enum literal, then a titlecase is auto applied, which gives a pretty good result for 90% of the enums out there which are single words. We actually already do something similar to this for concept usages.

Contributor guide

Open the contributing guide

Research direction

Start by tracing how Markdown headers are correlated with UML/XMI enumeration literals, then inspect the existing concept-usage handling mentioned in the issue. The change is complete when enum values retain their canonical STEP ALLCAPS representation while also displaying a human-readable name, without losing the proposed translation path.

Written by the indexing model from the issue text.

Assessment

Tech stack
markdown, python, xml
Domain
documentation
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.