Skip to content

QTY001 (IVS-87) #404

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

Open
wants to merge 5 commits into
base: development
Choose a base branch
from
Open

QTY001 (IVS-87) #404

wants to merge 5 commits into from

Conversation

civilx64
Copy link
Contributor

@civilx64 civilx64 commented May 5, 2025

Pretty simple rule, but adds more substance to the QTY functional part.

civilx64 added 3 commits May 4, 2025 22:46
1. Rename feature file to match the ticket in the backlog.
2. Add pass and fail unit test files

(IVS-87)
@civilx64 civilx64 requested review from aothms and evandroAlfieri May 5, 2025 03:37
@aothms
Copy link
Collaborator

aothms commented May 5, 2025

I don't think this is the intention behind the docs. Rather, I think the intention of the docs there is to establish the equivalent of our PSE001 rule. I.e:

  • Given Name equals one of the predefined names, e.g Qto_DoorBaseQuantities [0]
  • Then in that case it needs to (a) have the BaseQuantities MoM (pse001/psets do not have that). Names need to be one of the specified names in the spec [0] and type.

[0] https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/Qto_DoorBaseQuantities.htm

For equivalence between PSE001 and QTO001 it would be nice establish exactly the same structure. Although I'm not sure whether we can enforce that the Qto_ name prefix is reserved for definitions from the spec.

@civilx64
Copy link
Contributor Author

civilx64 commented May 5, 2025

Point taken - but the rule as-is captures and enforces a documented agreement, correct? So we can rename this to QTY010 or something that doesn't conflict with existing PSE numbers, then come back to build QTY001 similarly to PSE001 as you have suggested.

@civilx64
Copy link
Contributor Author

civilx64 commented May 5, 2025

Although I'm not sure whether we can enforce that the Qto_ name prefix is reserved for definitions from the spec.

Why not?

@aothms
Copy link
Collaborator

aothms commented May 5, 2025

Why not?

Not that I personally would be against it, just because I don't recall it's ever written down like that and people might complain.

Point taken - but the rule as-is captures and enforces a documented agreement

No I don't think so, because the BaseQuantities MoM should only be set under the condition that the name matches any of the predefined names in the spec. (bottom half of https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/annex-b3.html)

civilx64 added 2 commits May 6, 2025 11:50
QTY001 will be very similar to PSE001.
This commit is the first step to add flexibility to the property set step implementations so that they can handle validation of the `QTY` functional part also.

(IVS-87)
The step implementation previously included all matching step permutations in the decorator but also repeated fragments with control flow statements in the body of the function.

This revised functions are much smaller and each match a single step statement.
There are a few function calls repeated with each implementation, but these are cached with `functools` to minimize any performance ramifications.

(IVS-87)
@civilx64
Copy link
Contributor Author

civilx64 commented May 6, 2025

Per discussion today, the Qto_ prefix will not be enforced as part of this rule. Note: this would have been implemented as QTY002, not QTY001, for consistency with the PSE functional part.

Also as discussed, .MethodOfMeasurement. == 'BaseQuantities' is only applicable to the standard Qto property sets defined in the specifications.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants