Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Specification short code/ identifier #339

Open
andyward opened this issue Sep 5, 2024 · 4 comments
Open

Specification short code/ identifier #339

andyward opened this issue Sep 5, 2024 · 4 comments
Labels
documentation Improvements or additions to documentation please contribute A PR is welcome for this issue. Please target the `development` branch.
Milestone

Comments

@andyward
Copy link
Contributor

andyward commented Sep 5, 2024

It seems common when building a set of IDS rules to want provide an identifier or reference for the specification for ease / clarity of identification. e.g. a BEP / EIR might have a table similar to

Reference Rule Name
01.01 a project Name must be defined
01.02 the project Name must match 'Acme Project123'
02.01 a site Name must be defined
02.02 the site Name must match 'Client site'
...
19.16 all doors must have a FireRating property in Pset_DoorCommon with a value being one of '30,60'
...

In each case the numeric Reference is a handy short code for the spec - where the name may be cumbersome to read/scan, or even duplicated. i.e. Rule 19.16 is easier to talk about than all doors must have a FireRating property in Pset_DoorCommon with a value being one of '30,60'. Especially in we change the rule name slightly in future (30,60,90).

Equally Rule 01.02 is more clearly disambiguated from 02.02.

Currently in IDS1.0 a specification has the following attributes:

  • Name (required)
  • Description (optional but presumably for longer narratives)
  • Instruction (optional for assisting the author)
  • Identifier (optional but intended as a machine readable identifier)

Question is where would we put this reference today? Possible options include:

  1. In the Identifier - where it's not strictly machine readable / GUID
  2. As part of the Name - where it's purely conventional and hard to work with
  3. In the Description - which rules out using that attribute for it's purpose.
  4. In the Name field - and move the narrative to description - which may cause other UX issues

None feel ideal. I'd like to propose an addition for IDS1.1 of an optional reference which is user-facing 'short code' which could be presented alongside the Name, and used for things like sorting, filtering etc in any user interface.

@atomczak
Copy link
Contributor

atomczak commented Sep 9, 2024

The 'Identifier' should be the place for that. Why do you find it 'not strictly machine readable' and how we could improve that in 1.1?

@atomczak atomczak added the improvement New feature or request label Sep 9, 2024
@atomczak atomczak added this to the 1.1 milestone Sep 9, 2024
@andyward
Copy link
Contributor Author

andyward commented Sep 9, 2024

The 'Identifier' should be the place for that. Why do you find it 'not strictly machine readable' and how we could improve that in 1.1?

In the schema annotations there's a note saying This is intended to be a machine readable identifier. - which I interpreted to mean it's more intended to be a Guid (which would not be user facing). I.e. it's more an IfcIdentifier than IfcLabel in IFC terminology.

We don't actually document the identifier attribute in the specification metadata section. Perhaps that's all that's needed in 1.1 is clarification on the purpose of this attribute to remove ambiguity for implementors. My assumption was that identifier would not be presented in any UI by default as it may be used as an opaque key to some external system.

@atomczak
Copy link
Contributor

atomczak commented Sep 9, 2024

I see your point now. The identifier is often used as you suggest ('01.02' etc), and it doesn't say what format should be followed. I disagree that it should be hidden from the user; I think it's intended for user input and should be exposed in the interface. @CBenghi, @berlotti?

One problem that it creates is that when a user copy-pastes a specification from one file to the other, the identifier won't necessarily be unique. But the same goes for GUID unless made using uuid3/5 (hashing).

Anyway, I agree that we should explain it better in the docs.

@atomczak atomczak added the documentation Improvements or additions to documentation label Sep 9, 2024
atomczak added a commit that referenced this issue Nov 2, 2024
add identifier and ifcversion to docs #339
@atomczak atomczak added please contribute A PR is welcome for this issue. Please target the `development` branch. and removed improvement New feature or request labels Nov 6, 2024
@atomczak
Copy link
Contributor

atomczak commented Nov 6, 2024

#369 resolves it

@atomczak atomczak modified the milestones: 1.1, 1.0 Nov 6, 2024
CBenghi added a commit that referenced this issue Nov 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation please contribute A PR is welcome for this issue. Please target the `development` branch.
Projects
None yet
Development

No branches or pull requests

2 participants