As an example:
For architectural uses, traditionally we record three pieces of information about a door: its door type (e.g. D01, D02, D03, for instance D01 would be a 2400x920 metal door with 2 hour fire rating, and D02 would be a 2100x820 wooden door), and its door number, which is simply an identifier for that door (e.g. 01, 02, 03). Usually these identifiers are paired with the room that the door opens to, so a door D01, with number 01, might be in room G01.
Where should these attributes be stored in IFC? Or should they be stored at all? Programmatically, without any human data, we can extract the following:
- The spatial relationship with the door and an IfcSpace can derive the room the door is part of. If nothing else, the IfcSpace must have a GlobalId, so we can schedule and identify it.
- The door type can be derived by the IfcDoorType IsTypedBy relationship, and each IfcDoorType has a GlobalId. Not exactly pronounceable, but it can be identified and scheduled.
- The door number can be derived by the IfcDoor’s GlobalId itself. Again, not a traditional “number” by any means, but it is technically unique.
However, where is the proper place to store this information? Should I store the name of a room in
IfcSpace.Name? Or should I store it in
IfcSpace.Pset_SpaceCommon.Reference? Similarly, should I store the door number in
IfcDoor.Name, or in
IfcDoor.Pset_DoorCommon.Reference? Should I store the door type in
IfcDoorType.Name, or is there another location that I am unsure of?