buildingSMART / buildingSMART/IFC5-development

Numeric precision

Open
#69 9 comments 0 reactions 0 assignees View on GitHub
Dominant language
HTML
Stars
220
Forks
80
Avg merge
4d 6h
Merged PRs (30d)
2

Description

I see the current examples have varying numeric precision:
- six:
https://github.com/buildingSMART/IFC5-development/blob/828ee54fcfa56db3c2ca9c55d1e505f5532e3dcd/examples/Hello%20Wall/hello-wall.ifcx#L1457C15-L1457C23
- seven:
https://github.com/buildingSMART/IFC5-development/blob/828ee54fcfa56db3c2ca9c55d1e505f5532e3dcd/examples/Hello%20Wall/hello-wall.ifcx#L1185C12-L1185C24
- or even scientific notation:
https://github.com/buildingSMART/IFC5-development/blob/828ee54fcfa56db3c2ca9c55d1e505f5532e3dcd/examples/Hello%20Wall/hello-wall.ifcx#L1458
- In some examples, I also see 12-digit precision (that's 1/50th of a hydrogen atom), significantly increasing the file size

It would be good to establish a general number precision for IFCX. To start with, **how about 6 digits after the comma**? For length, that's 1 millionth of a meter - micrometre, which is a 1/50th of a human hair diameter. More than needed for AEC purposes, but enough to not have issues with rounded object geometry or conversion loss. Because we agreed to use the metric system for length (and SI for most of the quantity kinds), even if the project is in metres, the precision would remain.

Less than the agreed precision should also be allowed, for example, full numbers or single digits:
https://github.com/buildingSMART/IFC5-development/blob/828ee54fcfa56db3c2ca9c55d1e505f5532e3dcd/examples/Hello%20Wall/hello-wall.ifcx#L1056

Alternatively, we could establish separate rounding per quantity kinds, for example, four digits for length (0.0001 m - thickness of a coarse hair), but seven digits for angles (for example, geographic latitude).

TODO:
- [ ] add the agreed solution to the documentation

Contributor guide

No contributing guide indexed for this repository

Research direction

Review the discussion on issue #69 and the linked examples/Hello Wall/hello-wall.ifcx values first, since the precision rule is not yet settled. The work is done when the project agrees on a general or quantity-specific precision policy and that decision is added to the documentation.

Written by the indexing model from the issue text.

Assessment

Domain
documentation
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.