IFC4.3.x-development icon indicating copy to clipboard operation
IFC4.3.x-development copied to clipboard

IfcTypeObject and NOTDEFINED web specification statement

Open daviddelven opened this issue 2 years ago • 4 comments

I need some clarification of the following statement or, at least, some examples:

If the object is typed by an IfcTypeObject, then the PredefinedType at the IfcObject occurrence shall only be used if the PredefinedType at IfcTypeObject is set to NOTDEFINED.

daviddelven avatar Aug 26 '23 11:08 daviddelven

IfcWall <-- IfcRelDefinesByType --> IfcWallType

These are valid scenarios:

  1. IfcWallType.PredefinedType = PARTITIONING, IfcWall.PredefinedType = NULL
  2. IfcWallType.PredefinedType = USERDEFINED, IfcWallType.ElementType = FOOBAR, IfcWall.PredefinedType = NULL
  3. IfcWallType.PredefinedType = NOTDEFINED, IfcWall.PredefinedType = PARTITIONING
  4. IfcWallType.PredefinedType = NULL, IfcWall.PredefinedType = NULL

These are invalid scenarios:

  1. IfcWallType.PredefinedType = PARTITIONING, IfcWall.PredefinedType = PARTITIONING
  2. IfcWallType.PredefinedType = USERDEFINED, IfcWallType.ElementType = FOOBAR, IfcWall.PredefinedType = PARTITIONING
  3. IfcWallType.PredefinedType = NULL, IfcWall.PredefinedType = PARTITIONING

Moult avatar Aug 26 '23 23:08 Moult

A bit clearer. But I can imagine someone who is reading that specification section for the first time, he/she should wonder similarly. Your additional answer helps to understand it, although the logic behind it should be explicitly written in the specification paragraph, i.m.o.

Maybe a quoted example, as in many other specification sections? This is a quite common subject for end users while creating or enriching containers.

daviddelven avatar Aug 27 '23 07:08 daviddelven

Isn't this already explained here sufficiently? https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/concepts/Object_Attributes/Object_Predefined_Type/content.html

Moult avatar Sep 12 '23 23:09 Moult

I think we just need to harness the power of hypertext to really create a comprehensive easily browsable documentation. We're already able of course to list concept templates on the entity pages based on their applicability, but how can we somehow indicate that that particular template is relevant to the predefined type attribute (meaning we don't need to document the attribute in 1000 places). It's a bit unfortunate that the PredefinedType attribute is a weird case because it doesn't exist on the abstract level. Maybe we should have went for a global enumeration, and constrain it at the concrete level with where rules (or use attribute redeclaration in express).

aothms avatar Sep 13 '23 06:09 aothms