Open SergejMuhic opened 1 year ago
Used to be correct, not sure why it was reduced into INTEGER. I agree, should be NUMBER like it used to be.
Related: #167
Sorry, but I do not see a requirement in @czapplitec saying "we do not use it".
There is IfcInteger
as well as IfcIntegerCountRateMeasure
available. I do not see any solid reasoning in that thread other than some feelings.
@SergejMuhic there is a solid reason that IfcQuantityCount is used in cost items for the costing discipline, and their domain requirement requires that counts are always integers. Allowing numbers would be incorrect from a costing perspective.
I think @aothms had a reason of improving interoperability between props and quants, but he is the best person to elaborate on that.
Guys, this was discussed a year ago and after consensus with the people involved has been proposed and accepted as a schema change in the reviewing process by the people involved in the iso ratification.
Sorry, but I do not see a requirement in @czapplitec saying "we do not use it".
It is not about who is using what, the aim should be to work towards an internally consistent standard: we have count-related properties and a data type for measuring counts, but were not using it because its underlying type being too flexible. This is one of those many cases where we're very clearly violating the principle of least astonishment.
What is your reasoning to come to the conclusion this is "wrong"?
First of all, I do not think I have to explain quotations/references. We are all adults here. We also all know that the standard is not standalone, it is built on standards that are built on standards.
A couple of things to unpack here though:
Maybe this is going to be somewhat reassuring, we have a lot of dedicated measures for these already:
If I want to count money
IfcMonetaryMeasure (is a real - but actually in software you would never use floating point math, but a scaled integer approach)
If I want to count hours, years, again same issue.
IfcTimeMeasure / IfcDuration
NetSurfaceArea
IfcQuantityArea
NaturalVentilationRate
You have a point there, but in my view that should never have been a count measure, that has dimensional exponents (0,0,-1,0,0,0,0), it's number / hour after all. We need a dedicated measure for that if it doesn't exist yet. Somewhat ironically we only seem to have IfcIntegerCountRateMeasure
(which is an... integer
š) or you use the IfcVolumetricFlowRateMeasure but it's a different property.
You made my point though. If you want to count integers, by all means IfcCountMeasure
does it since it is a generalization. If you want something more specific, you have others. There are enough options. Focusing on one and changing it based on personal opinions is a bit erratic. IfcCountMeasure
is a generic count that can be used for anything.
I did not want to go through all the possible measures one by one. I just wanted to convey the notion of what one might want to do. Another example, significant digits; I might just want to count in millions and have one decimal space for hundred thousand. Or from the schema IfcReinforcementBarProperties.BarCount
. Sure we can go down a rabbit hole again whether it should have decimal place or not but I can definitely think of a scenario where it would be plausible. Since the specification has options of restricting concepts, I do not see a point in changing a properly defined and referenced one.
What you have missed in my post is the statement that we are referencing another standard with it. Unless you want to go and change it there, you should not take the right to do it here. If absolutely necessary which I do not see in this case, introduce a new measure? Changing this existing one is just wrong in any perspective.
Ok, but now we do indeed get to the two core underlying difference in understanding.
1.
Since the specification has options of restricting concepts, I do not see a point in changing a properly defined and referenced one.
I think it's near-universally accepted now that (while flexibility helped earlier in reaching consensus) it is now time to consolidate the fragmented usage of IFC to a more compatible and interoperable (and hence more constrained) core set of definitions. If you don't agree with that aim I think it has to be discussed elsewhere. We can't keep dancing around this in every individual issue.
If you want to count integers
I hate to be citing Wikipedia here, but the first sentence on counting is:
Counting is the process of determining the number of elements of a finite set of objects
https://en.wikipedia.org/wiki/Counting
It's not a matter of if you count in integers. The area of a wall is not a finite set so measuring the area of a wall is not an act of counting, it's an act of measuring.
The only few cases I can imagine where non-integer 'counts' make sense are when a division is applied (and you get a different measure or ratio), such as:
we are referencing another standard with it
We have made adaptations to concepts bothered from other standards as well, I'm not saying it's not a thing to consider, but it's clearly not a universal decisive factor in all cases. I could have lived with an integer_count_measure assigned to all properties where it makes sense. Not my preference though (again, standardization is sometimes about making choices).
IfcIntegerWhateverMeasure
can do exactly what you want it to. I think here it is much easier to reach consensus. Let's focus on this point?
Definition is wrong. Should be 'NUMBER'.