Open SergejMuhic opened 2 years ago
Several types of information are needed by FM staff to efficiently operate the delivered project. The first type of information is the source of electrical power for the IfcElement. This source would be identified by the upstream electrical distribution panel (or switch gear) and the circuit number. The second type of information is the upstream cut-off valves for hydronic fluid. Two types of cut-off values are typically identified a "hot feed" and "cold feed". Another type of connection that may or may not be contained in a design model is that of the connection between a controlled object and it's controller. If these ports are available, as they should be in IFC 4.3, then some of the following required data should be available by upstream traversal of ifcPorts.
An initial mapping of the required information is found below:
FluidHotFeedName IsNestedBy[0].RelatedObjects[0].ConnectedTo[0].RelatedPort.Nests[0].RelatingObject where RelatedObjects[0].SystemType is “HEATING” and RelatedObjects[0].FlowDirection is “SINK” and RelatedPort is “SOURCE” recursively until RelatingObject.is_a(“IfcEnergyConversionDevice”) and RelatingObject.is_nota(“IfcCooledBeam”), then RelatingObject.Name
FluidColdFeedName IsNestedBy[0].RelatedObjects[0].ConnectedTo[0].RelatedPort.Nests[0].RelatingObject where RelatedObjects[0].SystemType is “CHILLEDWATER” and RelatedObjects[0].FlowDirection is “SINK” and RelatedPort is “SOURCE” recursively until RelatingObject.is_a(“IfcEnergyConversionDevice”) and RelatingObject.is_nota(“IfcCooledBeam”), then RelatingObject.Name
ElectricPanelName IsNestedBy[0].RelatedObjects[0].ConnectedTo[0].RelatedPort.Nests[0].RelatingObject where RelatedObjects[0].SystemType is “ELECTRICAL” and RelatedObjects[0].FlowDirection is “SINK” and RelatedPort is “SOURCE” recursively until RelatingObject.is_a(“IfcElectricDistributionBoard”), then RelatingObject.Name
ElectricCircuitName HasPropertySets[0].HasProperties[0].NominalValue where HasPropertySets.Name is “FMH_Element” and HasProperties.Name is “ElectricCircuitName” ControlledByName IsNestedBy[0].RelatedObjects[0].ConnectedTo[0].RelatedPort.Nests[0].RelatingObject where RelatedObjects[0].FlowDirection is “SINK” and RelatedPort is “SOURCE” recursively until RelatingObject.is_a(“IfcDistributionControlElement”), then RelatingObject.Name
InterlockedWithName IsNestedBy[0].RelatedObjects[0].ConnectedTo[0].RelatedPort.Nests[0].RelatingObject where RelatedObjects[0].FlowDirection is “SINK” and RelatedPort is “SOURCE” recursively until RelatingObject.is_in_allowed_ifc_type_objects(), then RelatingObject.Name
The IfcRelNests.RelatingObject attribute requires a RuleID.
IfcDistributionElement.Name has to be from the terminal unit to the stream. One link up should be the goal.