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

Pset_Warranty PointOfContact data type changed is incompatible with COBie and needs updating

Open Moult opened this issue 2 years ago • 8 comments

In IFC2X3, PointOfContact has a type of IfcPropertyReferenceValue pointing to an IfcOrganization. This reference is then used in the COBie 2.4 mappings from IFC to the COBie spreadsheet (such as in here https://github.com/opensourceBIM/COBie-plugins/blob/master/COBieShared/src/org/bimserver/cobie/shared/serialization/util/IfcTypeToCOBieTypeSerializer.java#L84 )

In IFC4 this was changed and it is unclear how IFC4 should deal with it. What should this label contain? An email? An organisation name? An organisation identifier? An actor reference? etc.

This is one of a number of problematic COBie integrations in IFC that I hope AOH-BEM can solve / supersede with better specs.

Moult avatar Sep 10 '23 13:09 Moult

My 2cts.

IfcPropertyReferenceValue has never really been implemented in the dominant software authoring tools, maybe because it's hard for them to deal with this in their native model, maybe just because they aren't enough of them to be worthy of their effort.

Conceptually I would say that for the couple of types that IfcPropertyReferenceValue actually support we better deprecate it and find IfcRelationships to model these (and find more bespoke approach for times series and non-lookup tables).

Now that we have settled on IfcActor being the proper way to designate/decorate persons and organizations with a rooted node in the 4.3/4.4 branch I'd say there has to be a way to use a relationship to express this information.

It does raise the question though of whether we should introduce a untyped/generic/latebound relationship node for this kind of use cases. This came up in the IFC5 discussions: we have userdefined types (latebound in ifc5), userdefined properties (latebound by definition also pre ifc5), but not userdefined relationships (maybe name/description can be used, but you'd be pretty limited in what you can relate). At that time there were no decisive answers to this, but looking at this kind of use cases I'm beginning to think it might make sense.

aothms avatar Sep 11 '23 07:09 aothms

100% agree. I only bring this up because people around the world are delivering "COBie" (mostly contractually) and nobody is really asking these questions :(

Moult avatar Sep 11 '23 07:09 Moult

yes, this was already the intention in IFC4 time frame - to minimize the use of IfcPropertyReferenceValue in order to be able to deprecate it all together. Maybe it is a good time now to initiate the deprecation process.

TLiebich avatar Sep 11 '23 10:09 TLiebich

Maybe it is a good time now to initiate the deprecation process.

Given the list below, I'm fairly optimistic it's a sensible thing to do:

IfcCostValue

Pset_ProjectCommon.NetEarnedValue Pset_ProjectCommon.ProjectInvestmentEstimate

IfcDocumentReference

Pset_Condition.AssessmentMethod Pset_ElementAssemblyTypeDilatationPanel.InstallationPlan Pset_ElementAssemblyTypeTrackPanel.InstallationPlan Pset_ElementAssemblyTypeTurnoutPanel.InstallationPlan Pset_ManufacturerTypeInformation.PerformanceCertificate Pset_ManufacturerTypeInformation.SafetyDocument

IfcExternalReference

Pset_CableCarrierSegmentTypeCatenaryWire.PhysicalDescriptionReference Pset_CableCarrierSegmentTypeDropper.AssemblyInstruction Pset_CableSegmentTypeStitchWire.AssemblyInstruction Pset_DiscreteAccessoryFixingSocket.FixingSocketTypeReference Pset_DiscreteAccessoryTypeLock.InstallationPlan Pset_DiscreteAccessoryTypeTensioningEquipment.AssemblyInstruction Pset_ElectricFlowStorageDeviceTypeBattery.AssemblyInstruction Pset_ElectricFlowStorageDeviceTypeUPS.AssemblyInstruction Pset_ElementAssemblyTypeCantilever.AssemblyInstruction Pset_ElementAssemblyTypeDilatationPanel.TechnicalStandard Pset_ElementAssemblyTypeHeadSpan.AssemblyInstruction Pset_ElementAssemblyTypeRigidFrame.AssemblyInstruction Pset_ElementAssemblyTypeSteadyDevice.AssemblyInstruction Pset_ManufacturerTypeInformation.OperationalDocument Pset_MarkerGeneral.Symbol Pset_MechanicalFastenerTypeRailFastening.TechnicalStandard Pset_MemberTypeCatenaryStay.AssemblyInstruction Pset_MemberTypeOCSRigidSupport.AssemblyInstruction Pset_PowerControlSystem.AssemblyInstruction Pset_PrecastConcreteElementGeneral.SupportDuringTransportDocReference Pset_RailTypeCheckRail.InstallationPlan Pset_RailTypeRail.InstallationPlan Pset_RailTypeRail.TechnicalStandard Pset_RailTypeStockRail.InstallationPlan Pset_RailwaySignalAspect.SignalAspectSymbol Pset_SlabTypeTrackSlab.TechnicalStandard Pset_TrackElementTypeSleeper.TechnicalStandard

IfcMaterialDefinition

Pset_DistributionChamberElementTypeInspectionChamber.AccessCoverMaterial Pset_DistributionChamberElementTypeInspectionChamber.BaseMaterial Pset_DistributionChamberElementTypeInspectionChamber.WallMaterial Pset_DistributionChamberElementTypeManhole.AccessCoverMaterial Pset_DistributionChamberElementTypeManhole.BaseMaterial Pset_DistributionChamberElementTypeManhole.WallMaterial Pset_DistributionChamberElementTypeMeterChamber.AccessCoverMaterial Pset_DistributionChamberElementTypeMeterChamber.BaseMaterial Pset_DistributionChamberElementTypeMeterChamber.WallMaterial Pset_DistributionChamberElementTypeValveChamber.AccessCoverMaterial Pset_DistributionChamberElementTypeValveChamber.BaseMaterial Pset_DistributionChamberElementTypeValveChamber.WallMaterial Pset_DistributionSystemTypeVentilation.DuctSealant Pset_FilterTypeAirParticleFilter.FrameMaterial Pset_PackingInstructions.ContainerMaterial Pset_PackingInstructions.WrappingMaterial Pset_WasteTerminalTypeFloorTrap.CoverMaterial

IfcPerson

Pset_ActionRequest.RequestSourceName

IfcTimeSeries

Pset_ActuatorPHistory.PositionHistory Pset_ActuatorPHistory.QualityHistory Pset_ActuatorPHistory.StatusHistory Pset_AirTerminalBoxPHistory.AirFlowCurve Pset_AirTerminalBoxPHistory.AtmosphericPressure Pset_AirTerminalBoxPHistory.DamperPosition Pset_AirTerminalBoxPHistory.Sound Pset_AirTerminalPHistory.AirFlowRateHistory Pset_AirTerminalPHistory.NeckAirVelocity Pset_AirTerminalPHistory.PressureDrop Pset_AirTerminalPHistory.SupplyAirTemperatureCooling Pset_AirTerminalPHistory.SupplyAirTemperatureHeating Pset_AirToAirHeatRecoveryPHistory.AirPressureDropCurves Pset_AirToAirHeatRecoveryPHistory.DefrostTemperatureEffectiveness Pset_AirToAirHeatRecoveryPHistory.HumidityEffectiveness Pset_AirToAirHeatRecoveryPHistory.LatentHeatTransferRate Pset_AirToAirHeatRecoveryPHistory.SensibleEffectiveness Pset_AirToAirHeatRecoveryPHistory.SensibleEffectivenessTable Pset_AirToAirHeatRecoveryPHistory.SensibleHeatTransferRate Pset_AirToAirHeatRecoveryPHistory.TemperatureEffectiveness Pset_AirToAirHeatRecoveryPHistory.TotalEffectiveness Pset_AirToAirHeatRecoveryPHistory.TotalEffectivenessTable Pset_AirToAirHeatRecoveryPHistory.TotalHeatTransferRate Pset_AlarmPHistory.Acknowledge Pset_AlarmPHistory.ConditionHistory Pset_AlarmPHistory.Enabled Pset_AlarmPHistory.Severity Pset_AlarmPHistory.UserHistory Pset_AudioVisualAppliancePHistory.AudioVolumeHistory Pset_AudioVisualAppliancePHistory.MediaContent Pset_AudioVisualAppliancePHistory.MediaSourceHistory Pset_AudioVisualAppliancePHistory.PowerState Pset_BoilerPHistory.AuxiliaryEnergyConsumption Pset_BoilerPHistory.CombustionChamberTemperature Pset_BoilerPHistory.CombustionEfficiency Pset_BoilerPHistory.EnergySourceConsumption Pset_BoilerPHistory.Load Pset_BoilerPHistory.OperationalEfficiency Pset_BoilerPHistory.PartLoadRatio Pset_BoilerPHistory.PrimaryEnergyConsumption Pset_BoilerPHistory.WorkingPressureHistory Pset_ChillerPHistory.Capacity Pset_ChillerPHistory.CoefficientOfPerformance Pset_ChillerPHistory.EnergyEfficiencyRatio Pset_CoilPHistory.AirPressureDropCurveHistory Pset_CoilPHistory.AtmosphericPressure Pset_CoilPHistory.FaceVelocity Pset_CoilPHistory.SoundCurveHistory Pset_CommunicationsAppliancePHistory.PowerState Pset_CompressorPHistory.CoefficientOfPerformance Pset_CompressorPHistory.CompressionEfficiency Pset_CompressorPHistory.CompressorCapacity Pset_CompressorPHistory.CompressorTotalEfficiency Pset_CompressorPHistory.CompressorTotalHeatGain Pset_CompressorPHistory.EnergyEfficiencyRatio Pset_CompressorPHistory.FrictionHeatGain Pset_CompressorPHistory.FullLoadRatio Pset_CompressorPHistory.InputPower Pset_CompressorPHistory.IsentropicEfficiency Pset_CompressorPHistory.LubricantPumpHeatGain Pset_CompressorPHistory.MechanicalEfficiency Pset_CompressorPHistory.ShaftPower Pset_CompressorPHistory.VolumetricEfficiency Pset_CondenserPHistory.CompressorCondenserHeatGain Pset_CondenserPHistory.CompressorCondenserPressureDrop Pset_CondenserPHistory.CondenserMeanVoidFraction Pset_CondenserPHistory.CondensingTemperature Pset_CondenserPHistory.ExteriorHeatTransferCoefficient Pset_CondenserPHistory.HeatRejectionRate Pset_CondenserPHistory.InteriorHeatTransferCoefficient Pset_CondenserPHistory.LogarithmicMeanTemperatureDifference Pset_CondenserPHistory.RefrigerantFoulingResistance Pset_CondenserPHistory.UAcurves Pset_CondenserPHistory.WaterFoulingResistance Pset_ConstructionResource.ActualCompletion Pset_ConstructionResource.ActualCost Pset_ConstructionResource.ActualWorkTime Pset_ConstructionResource.RemainingCost Pset_ConstructionResource.RemainingWorkProgression Pset_ConstructionResource.ScheduleCompletion Pset_ConstructionResource.ScheduleCost Pset_ConstructionResource.ScheduleWorkProgression Pset_ControllerPHistory.Quality Pset_ControllerPHistory.Status Pset_ControllerPHistory.ValueHistory Pset_CooledBeamPHistory.BeamCoolingCapacity Pset_CooledBeamPHistory.BeamHeatingCapacity Pset_CooledBeamPHistory.CoolingWaterFlowRate Pset_CooledBeamPHistory.CorrectionFactorForCooling Pset_CooledBeamPHistory.CorrectionFactorForHeating Pset_CooledBeamPHistory.HeatingWaterFlowRate Pset_CooledBeamPHistory.ReturnWaterTemperatureCooling Pset_CooledBeamPHistory.ReturnWaterTemperatureHeating Pset_CooledBeamPHistory.SupplyWaterTemperatureCooling Pset_CooledBeamPHistory.SupplyWaterTemperatureHeating Pset_CooledBeamPHistory.TotalCoolingCapacity Pset_CooledBeamPHistory.TotalHeatingCapacity Pset_CooledBeamPHistory.WaterPressureDropCurves Pset_CooledBeamPHistoryActive.AirFlowRate Pset_CooledBeamPHistoryActive.AirPressureDropCurves Pset_CooledBeamPHistoryActive.Throw Pset_CoolingTowerPHistory.Capacity Pset_CoolingTowerPHistory.HeatTransferCoefficient Pset_CoolingTowerPHistory.Performance Pset_CoolingTowerPHistory.SumpHeaterPower Pset_CoolingTowerPHistory.UACurve Pset_DamperPHistory.AirFlowRate Pset_DamperPHistory.BladePositionAngle Pset_DamperPHistory.DamperPosition Pset_DamperPHistory.Leakage Pset_DamperPHistory.PressureDrop Pset_DamperPHistory.PressureLossCoefficient Pset_DistributionPortPHistoryCable.ApparentPower Pset_DistributionPortPHistoryCable.CurrentHistory Pset_DistributionPortPHistoryCable.DataReceived Pset_DistributionPortPHistoryCable.DataTransmitted Pset_DistributionPortPHistoryCable.PowerFactorHistory Pset_DistributionPortPHistoryCable.ReactivePower Pset_DistributionPortPHistoryCable.RealPower Pset_DistributionPortPHistoryCable.VoltageHistory Pset_DistributionPortPHistoryDuct.FlowConditionHistory Pset_DistributionPortPHistoryDuct.MassFlowRateHistory Pset_DistributionPortPHistoryDuct.PressureHisotry Pset_DistributionPortPHistoryDuct.TemperatureHistory Pset_DistributionPortPHistoryDuct.VelocityHistory Pset_DistributionPortPHistoryDuct.VolumetricFlowRateHistory Pset_DistributionPortPHistoryDuct.WetBulbTemperatureHistory Pset_DistributionPortPHistoryPipe.Flowrate Pset_DistributionPortPHistoryPipe.Pressure Pset_DistributionPortPHistoryPipe.Temperature Pset_DuctFittingPHistory.AirFlowLeakage Pset_DuctFittingPHistory.AtmosphericPressure Pset_DuctFittingPHistory.LossCoefficient Pset_DuctSegmentPHistory.AtmosphericPressure Pset_DuctSegmentPHistory.FluidFlowLeakage Pset_DuctSegmentPHistory.LeakageCurveHistory Pset_DuctSegmentPHistory.LossCoefficient Pset_DuctSilencerPHistory.AirFlowRate Pset_DuctSilencerPHistory.AirPressureDropCurve Pset_ElectricAppliancePHistory.PowerState Pset_EvaporativeCoolerPHistory.Effectiveness Pset_EvaporativeCoolerPHistory.LatentHeatTransferRate Pset_EvaporativeCoolerPHistory.SensibleHeatTransferRate Pset_EvaporativeCoolerPHistory.TotalHeatTransferRate Pset_EvaporativeCoolerPHistory.WaterSumpTemperature Pset_EvaporatorPHistory.CompressorEvaporatorHeatGain Pset_EvaporatorPHistory.CompressorEvaporatorPressureDrop Pset_EvaporatorPHistory.EvaporatingTemperature Pset_EvaporatorPHistory.EvaporatorMeanVoidFraction Pset_EvaporatorPHistory.ExteriorHeatTransferCoefficient Pset_EvaporatorPHistory.HeatRejectionRate Pset_EvaporatorPHistory.InteriorHeatTransferCoefficient Pset_EvaporatorPHistory.LogarithmicMeanTemperatureDifference Pset_EvaporatorPHistory.RefrigerantFoulingResistance Pset_EvaporatorPHistory.UAcurves Pset_EvaporatorPHistory.WaterFoulingResistance Pset_FanPHistory.DischargePressureLoss Pset_FanPHistory.DischargeVelocity Pset_FanPHistory.DrivePowerLoss Pset_FanPHistory.FanEfficiency Pset_FanPHistory.FanPowerRate Pset_FanPHistory.FanRotationSpeed Pset_FanPHistory.OverallEfficiency Pset_FanPHistory.ShaftPowerRate Pset_FanPHistory.WheelTipSpeed Pset_FilterPHistory.CountedEfficiency Pset_FilterPHistory.ParticleMassHolding Pset_FilterPHistory.WeightedEfficiency Pset_FlowInstrumentPHistory.Quality Pset_FlowInstrumentPHistory.Status Pset_FlowInstrumentPHistory.Value Pset_HumidifierPHistory.AtmosphericPressure Pset_HumidifierPHistory.SaturationEfficiency Pset_IpNetworkEquipmentPHistory.NumberOfPackets Pset_PipeFittingPHistory.FlowrateLeakage Pset_PipeFittingPHistory.LossCoefficient Pset_PipeSegmentPHistory.FluidFlowLeakage Pset_PipeSegmentPHistory.LeakageCurve Pset_PumpPHistory.Flowrate Pset_PumpPHistory.MechanicalEfficiency Pset_PumpPHistory.OverallEfficiency Pset_PumpPHistory.PowerHistory Pset_PumpPHistory.PressureRise Pset_PumpPHistory.RotationSpeed Pset_SensorPHistory.Direction Pset_SensorPHistory.Quality Pset_SensorPHistory.Status Pset_SensorPHistory.Value Pset_ShadingDevicePHistory.Azimuth Pset_ShadingDevicePHistory.TiltAngle Pset_SoundAttenuation.SoundPressure Pset_SpaceHeaterPHistory.AirResistanceCurve Pset_SpaceHeaterPHistory.AuxiliaryEnergySourceConsumption Pset_SpaceHeaterPHistory.CharacteristicExponent Pset_SpaceHeaterPHistory.Effectiveness Pset_SpaceHeaterPHistory.FractionConvectiveHeatTransfer Pset_SpaceHeaterPHistory.FractionRadiantHeatTransfer Pset_SpaceHeaterPHistory.HeatOutputRate Pset_SpaceHeaterPHistory.OutputCapacityCurve Pset_SpaceHeaterPHistory.SpaceAirTemperature Pset_SpaceHeaterPHistory.SpaceMeanRadiantTemperature Pset_SpaceHeaterPHistory.SurfaceTemperature Pset_SpaceHeaterPHistory.UACurve Pset_SpaceThermalLoadPHistory.AirExchangeRateTimeHistory Pset_SpaceThermalLoadPHistory.DryBulbTemperatureHistory Pset_SpaceThermalLoadPHistory.EquipmentSensibleHistory Pset_SpaceThermalLoadPHistory.ExhaustAirHistory Pset_SpaceThermalLoadPHistory.InfiltrationSensibleHistory Pset_SpaceThermalLoadPHistory.LightingHistory Pset_SpaceThermalLoadPHistory.PeopleHistory Pset_SpaceThermalLoadPHistory.RecirculatedAirHistory Pset_SpaceThermalLoadPHistory.RelativeHumidityHistory Pset_SpaceThermalLoadPHistory.TotalLatentLoadHistory Pset_SpaceThermalLoadPHistory.TotalRadiantLoadHistory Pset_SpaceThermalLoadPHistory.TotalSensibleLoadHistory Pset_SpaceThermalLoadPHistory.VentilationIndoorAirHistory Pset_SpaceThermalLoadPHistory.VentilationOutdoorAirHistory Pset_SpaceThermalPHistory.CoolingAirFlowRate Pset_SpaceThermalPHistory.ExhaustAirFlowRate Pset_SpaceThermalPHistory.HeatingAirFlowRate Pset_SpaceThermalPHistory.SpaceRelativeHumidity Pset_SpaceThermalPHistory.SpaceTemperatureHistory Pset_SpaceThermalPHistory.VentilationAirFlowRateHistory Pset_SwitchingDeviceTypePHistory.SetPointHistory Pset_TrackElementPHistoryDerailer.IsDerailing Pset_UnitaryControlElementPHistory.Fan Pset_UnitaryControlElementPHistory.OperationModeHistory Pset_UnitaryControlElementPHistory.SetPoint Pset_UnitaryControlElementPHistory.Temperature Pset_UtilityConsumptionPHistory.Electricity Pset_UtilityConsumptionPHistory.Fuel Pset_UtilityConsumptionPHistory.Heat Pset_UtilityConsumptionPHistory.Steam Pset_UtilityConsumptionPHistory.Water Pset_ValvePHistory.MeasuredFlowRate Pset_ValvePHistory.MeasuredPressureDrop Pset_ValvePHistory.PercentageOpen

aothms avatar Sep 11 '23 11:09 aothms

agree - so let's make the recommendation to deprecate it for IFC4.4.

PS: the time series has never been implemented in IMHO

TLiebich avatar Sep 11 '23 12:09 TLiebich

Hold on, what happens to timeseries? For the other usecases, I think it makes sense to deprecate and they seem pretty straightforward, but for timeseries it breaks a pretty fundamental concept template.

Is it perhaps worthwhile to leave the phistory ones alone since it only applies to IfcPerformanceHistory (which is a bit of a weird oddity in itself) since it's nicely isolated?

I'm not aware of any implementation of timeseries but I've been working quite a bit with Brickschema and I think it would be prudent to wait until there is an implementation (at least just academic / experimental) to learn more about exactly how useful (or not) it is. I would be happy to take on that responsibility to implement. (FWIW Brickschema only specifies a connection string reference to a external timeseries database since there is no "standard" on how to store timeseries data: https://brickschema.org/ontology/1.3/classes/TimeseriesReference/ )

Moult avatar Sep 12 '23 23:09 Moult

time series

I think there's two sides to this. Does time series make sense in SPF (or other serialization) containers. Shouldn't it be an external reference to something else? It's an honest question. I don't know the answer.

Secondly point is that probably time series deserve a distinct property type. We already have ListValue, TableValue (lookup table). Conceptually a time series is just a table value with Time as one of the axes. There is also ongoing debate in 4.4 whether voxel is a geometry type or a property type, so maybe we end up with something like an nD-array-PropertyValue. All in all it doesn't feel right to have time series under a reference (also because it becomes rather indirect to constrain the types, we basically only have <PropertyReferenceVal reftype=TimeSeries> in the XML if I'm not mistaken (although this was never really clearly documented anyway, maybe there is more).

For the material definition properties we should probably look into material constituent sets (probably these properties are from before those were invented) or decomposition.

I don't know enough about cost value. Is such an intricate structure necessary or can it be one (or two) property single values?

The references is a single URI ref simple property sufficient? It's a possibility now since 4.3.

aothms avatar Sep 13 '23 07:09 aothms

I would second this we could somehow "initiate" an deprecation process and see if there are some disagreements.

time series - as table of by linking to an external source material - all handle via IfcMaterialDefinition - let's not have different ways (soon it will cause issues in IDS as well) external reference is an URI - IfcURIReference

TLiebich avatar Sep 15 '23 15:09 TLiebich