buildingSMART / buildingSMART/IFC4.x-development
Pset_ElementSize and IfcCableCarrierSegment
- Dominant language
- Python
- Stars
- 234
- Forks
- 123
- Avg merge
- 15h 4m
- Merged PRs (30d)
- 5
Description
@Moult on Mar 7
> Pset_CableCarrierSegmentTypeConduitSegment still seems to have nominal width / height?
>
> JunctionLeftRadius and JunctionRightRadius should be IfcLengthMeasure not IfcPositiveLengthMeasure to allow for radius = 0 for sharp corners?
>
> Similarly, now that nominal width / height has been removed, CableCarrierSegmentType has no dimensional nomination. Should Pset_ElementSize be applicable to it? I guess this is part of [#233](https://github.com/buildingSMART/IFC4.3.x-development/issues/233).
@khellandgs on Dec 7
> You've removed NominalWidth and NominalHeight from Pset_CableCarrierSegmentType*** psets, and the new Pset_ElementSize is not applicable for IfcCableCarrierSegment. Is this intended?
@TLiebich on Dec 7
> When I check the applicable entities for Pset_ElementSize I also wonder, why not just using IfcDistributionElement to cover all (it can even be discussed to assign it to IfcElement, since other building elements also have nominal lenght, width, height being potentially different to geometrically correct lenght, width, heigth.
@aothms now
### Pset_ElementSize applicability
Below you can find a table of all recursive types of `IfcDistributionElement`. I agree with @TLiebich, just simply associating Pset_ElementSize to IfcDistributionElement is probably the most sane thing to do. Associating it to IfcElement would in my humble view be more of a 4.4 action, we have to look at the redundancies etc. But this should be a 4x3_addN thing if you ask me.
Pset_ElementSize | entity name
-----------------|------------
|`IfcDistributionElement`
|` IfcDistributionControlElement`
|` IfcActuator`
|` IfcAlarm`
|` IfcController`
|` IfcFlowInstrument`
|` IfcProtectiveDeviceTrippingUnit`
|` IfcSensor`
|` IfcUnitaryControlElement`
|` IfcDistributionFlowElement`
x |` IfcDistributionChamberElement`
x |` IfcEnergyConversionDevice`
. |` IfcAirToAirHeatRecovery`
. |` IfcBoiler`
. |` IfcBurner`
. |` IfcChiller`
. |` IfcCoil`
. |` IfcCondenser`
. |` IfcCooledBeam`
. |` IfcCoolingTower`
. |` IfcElectricGenerator`
. |` IfcElectricMotor`
. |` IfcEngine`
. |` IfcEvaporativeCooler`
. |` IfcEvaporator`
. |` IfcHeatExchanger`
. |` IfcHumidifier`
. |` IfcMotorConnection`
. |` IfcSolarDevice`
. |` IfcTransformer`
. |` IfcTubeBundle`
. |` IfcUnitaryEquipment`
x |` IfcFlowController`
. |` IfcAirTerminalBox`
. |` IfcDamper`
. |` IfcDistributionBoard`
. |` IfcElectricDistributionBoard`
. |` IfcElectricTimeControl`
. |` IfcFlowMeter`
. |` IfcProtectiveDevice`
. |` IfcSwitchingDevice`
. |` IfcValve`
|` IfcFlowFitting`
|` IfcCableCarrierFitting`
|` IfcCableFitting`
|` IfcDuctFitting`
|` IfcJunctionBox`
|` IfcPipeFitting`
x |` IfcFlowMovingDevice`
. |` IfcCompressor`
. |` IfcFan`
. |` IfcPump`
|` IfcFlowSegment`
|` IfcCableCarrierSegment`
|` IfcCableSegment`
|` IfcConveyorSegment`
|` IfcDuctSegment`
|` IfcPipeSegment`
x |` IfcFlowStorageDevice`
. |` IfcElectricFlowStorageDevice`
. |` IfcTank`
x |` IfcFlowTerminal`
. |` IfcAirTerminal`
. |` IfcAudioVisualAppliance`
. |` IfcCommunicationsAppliance`
. |` IfcElectricAppliance`
. |` IfcFireSuppressionTerminal`
. |` IfcLamp`
. |` IfcLightFixture`
. |` IfcLiquidTerminal`
. |` IfcMedicalDevice`
. |` IfcMobileTelecommunicationsAppliance`
. |` IfcOutlet`
. |` IfcSanitaryTerminal`
. |` IfcSignal`
. |` IfcSpaceHeater`
. |` IfcStackTerminal`
. |` IfcWasteTerminal`
x |` IfcFlowTreatmentDevice`
. |` IfcDuctSilencer`
. |` IfcElectricFlowTreatmentDevice`
. |` IfcFilter`
. |` IfcInterceptor`
### Pset_CableCarrierSegmentTypeConduitSegment old properties
Should we remove Pset_CableCarrierSegmentTypeConduitSegment.NominalWidth -Height or deprecate? This was clearly unfinished left-over. I can live with both removal or deprecation. No strong opinion. Can also be deprecation for 4x3_addN deletion in 4x4.
### Radius measure
> JunctionLeftRadius and JunctionRightRadius should be IfcLengthMeasure not IfcPositiveLengthMeasure to allow for radius = 0 for sharp corners?
I've looked at the existing radius properties, and apparently Positive- is the way to go. Omitting the property is then apparently either sharp or unknown...
```
$ grep -A4 Radius Pset_* | grep -v 'Definition\|PropertyType\|TypeProperty'
Pset_CableSegmentTypeCableSegment.xml: MaximumBendingRadius
Pset_CableSegmentTypeCableSegment.xml-
--
Pset_DistributionChamberElementTypeInspectionChamber.xml: ChamberLengthOrRadius
Pset_DistributionChamberElementTypeInspectionChamber.xml-
--
Pset_DistributionChamberElementTypeInspectionChamber.xml: AccessLengthOrRadius
Pset_DistributionChamberElementTypeInspectionChamber.xml-
--
Pset_DistributionChamberElementTypeManhole.xml: AccessLengthOrRadius
Pset_DistributionChamberElementTypeManhole.xml-
--
Pset_DistributionChamberElementTypeMeterChamber.xml: ChamberLengthOrRadius
Pset_DistributionChamberElementTypeMeterChamber.xml-
--
Pset_DistributionChamberElementTypeValveChamber.xml: ChamberLengthOrRadius
Pset_DistributionChamberElementTypeValveChamber.xml-
--
Pset_ElementAssemblyTypeTurnoutPanel.xml: TurnoutCurvedRadius
Pset_ElementAssemblyTypeTurnoutPanel.xml-
--
Pset_FittingBend.xml: BendRadius
Pset_FittingBend.xml-
--
Pset_FittingJunction.xml: JunctionLeftRadius
Pset_FittingJunction.xml-
--
Pset_FittingJunction.xml: JunctionRightRadius
Pset_FittingJunction.xml-
--
Pset_RadiiKerbStone.xml: Radius
Pset_RadiiKerbStone.xml-
--
Pset_RailTypeBlade.xml: BladeRadius
Pset_RailTypeBlade.xml-
--
Pset_RailTypeStockRail.xml: StockRailRadius
Pset_RailTypeStockRail.xml-
--
Pset_TankTypeCommon.xml: FirstCurvatureRadius
Pset_TankTypeCommon.xml-
--
Pset_TankTypeCommon.xml: SecondCurvatureRadius
Pset_TankTypeCommon.xml-
--
Pset_TankTypePreformed.xml: FirstCurvatureRadius
Pset_TankTypePreformed.xml-
--
Pset_TankTypePreformed.xml: SecondCurvatureRadius
Pset_TankTypePreformed.xml-
```
TurnoutCurvedRadius is the only IfcLengthMeasure, should we change it to Positive-?
Contributor guide
Assessment
This issue has not been assessed yet.