I was recently implementing some functions that “guess” these quantity values… it would be really good if buildingSMART could write somewhere in the documentation what the assumed terminology refers to: for example “Width” vs “Height” vs “Length” vs “Thickness”.
A wall has a “height”, but a column has a … “length”? Funky. Clearly consistency is needed.
Here’s a proposal to get the discussion started (sorry @CodeArchitecture I’m ignoring your issue about classes and nitpicking on a single comment you made on inconsistent quantity properties):
- The XY plane is horizontal, and the Z axis is vertical.
- The “Height” shall refer to a dimension in the global Z axis where possible.
- “Width”, “Length”, and “Thickness” are always references to dimensions in the XY plane.
- “Length” and “Width” may be specified together in the same quantity set. If the X and Y dimensions are unequal, “Length” refers to the greater dimension, and “Width” refers to the smaller dimension.
- “Width” and “Thickness” may be specified together, usually used for thinner/flatter objects. If the X and Y dimensions are unequal, “Width” refers to the greater dimension, and “Thickness” refers to the smaller dimension.
- All four, “Height”, “Length”, “Width”, and “Thickness” shall not be specified in the same quantity set, as this creates confusion.
- All exceptions to the rules above shall be clearly noted in the specification.