buildingSMART / IFC4.3.x-development

Repository to collect updates to the IFC4.3 Specification
Other
166 stars 83 forks source link

Introduce the DEFAULT IfcWorkCalendarTypeEnum that indicates the default schedule Calendar #290

Open JovanMarkovicBexel opened 2 years ago

JovanMarkovicBexel commented 2 years ago

Many scheduling tools have a concept of defining the default schedule calendar. The default schedule calendar could be used for task relation lag calculation (in case that IfcTaskDurationEnum.WORKTIME is set to IfcRelSequence) or for assigning the calendar to newly created tasks in scheduling tools. The IfcWorkCalendar already contains the PredefinedType attribute. In order to enable the preserving of this information, it’s needed to add the DEFAULT value to the IfcWorkCalendarTypeEnum.

Moult commented 2 years ago

Sorry this is one I would disagree.

Many scheduling tools have a concept of defining the default schedule calendar.

Yes, this is true. IFC also has this feature - it has calendar inheritance. A calendar defined at a root level task will be inherited by all subtasks unless overridden. This means it is only ever necessary to define the "default schedule calendar" once.

The default schedule calendar could be used for task relation lag calculation (in case that IfcTaskDurationEnum.WORKTIME is set to IfcRelSequence)

Though this is technically possible, isn't it weird? There are already two possibilities to consider (predecessor and successor calendar), why would adding a third be a good thing? Wouldn't it just add confusion?

or for assigning the calendar to newly created tasks in scheduling tools.

Newly created tasks inherit the calendar from their parent, in effect having a "default".

The IfcWorkCalendar already contains the PredefinedType attribute. In order to enable the preserving of this information, it’s needed to add the DEFAULT value to the IfcWorkCalendarTypeEnum.

I don't think this is a good location to place this data. An IFC project may have multiple work schedules and multiple work calendars. Which work schedule is the calendar the "default"? Some work schedules may be for construction, others for planning, others for facility management, etc.

Hope it makes sense. In short I think a "default" calendar already is possible for IfcTask and IfcTaskType and given it is inherited I don't see the need to specify it at the work schedule level.