Model Flow Segment (FP)
Provides the information concerning flow segments. A flow segment is an element of a distribution system in which there is a single port at which the medium being distributed enters the segment and a single port at which the medium leaves the segment.
The sole purpose of a flow segment is to enable the medium being distributed to pass from the entry port to the exit port. It is typically contiguous (i.e. there are no breaks along its length) and straight (although the path of a flow segment may be a curve rather than a straight line). In certain cases, this last definition of flow along a curved path may mean that a decision needs to be taken regarding whether an element is a flow segment or a flow fitting. This is a decision that must be taken by the user.
All flow segments are types of flow element (IfcDistributionFlowElement) within the IFC model.
The types of segment contained within IFC include:
| Service | IfcFlowSegmentType subtype |
|---|---|
| Cable transport | IfcCableCarrierSegmentType |
| Communications systems | IfcCableSegmentType |
| Controls systems | IfcCableSegmentType |
| Electrical systems | IfcCableSegmentType |
| Oil/gas systems | IfcPipeSegmentType |
| Water systems | IfcPipeSegmentType |
| Ventilation systems | IfcDuctSegmentType |
The information presented in this functional part enables:
- extension of a basic building model through the provision of size and location information
- provision of weight information for the structural engineer
- provision of performance information for analysis
This information includes:
- Specification of segment name and description if required
- Shape representations of the segment
- Identification of the type to which a segment occurrence conforms
- The material from which the segment is constructed
- The weight of the equipment
In addition, performance information for occurrences of segments of particular types as indicated in the list above may be provided.
Note that the particular type of segment to be used, and that therefore defines the performance information requirement, can be set as a parameter in the exchange requirement by:
fp_model_flow_segment [type, {predefined_type}]
For instance, for a cable segment, reference to the relevant items within this functional part from the exchange requirement would be by specifying:
fp_model_flow_segment [Cable, Conductor]
Results
Model of flow segment occurrence(s) including shape representation and other basic information
| Description | Entity/Pset/Functional Part | MAN | REC | OPT |
|---|---|---|---|---|
| Model the segment type | ||||
| Select the type of segment to be modeled | The following are the selections available within the model. Each of these is a functional subtype of IfcFlowSegmentType (as shown in the Overview list). Further reference generally to these types is shown below as Ifc<Functional>Type.
|
|
||
| Set the specific type of the segment being used | Ifc<Functional>Type.PredefinedType | |
||
| If the value of the predefined type identifier is set to USERDEFINED, then establish the value that the user wishes to set. | IfcElementType.ElementType | |
||
| In certain cases, the shape representation may be be a representation map assigned to the segment type in which case the representation map will be created using one or more of the shape representations given for the segment occurrence below. This is for cases where the shape representation for the segment type may be defined once and used by multiple occurrences of the same type. |
fp_map_representation | |
||
| Assert general attributes for the type | ||||
| Set the global unique identifier | Ifc<Functional>Type.GlobalId à IfcGloballyUniqueId | |
||
| Assert the owner history of the equipment type | Ifc<Functional>Type.OwnerHistory à fp_apply_owner_history | |
||
| Specify a name of the segment type | Ifc<Functional>Type.Name | |
||
| Specify a description of the segment type | Ifc<Functional>Type.Description | |
||
| Model the segment occurrence | ||||
| Establish the placement of the origin point of the segment occurrence | fp_place_object | |
||
| Generally, the shape representation of a segment will be defined for the occurrence rather than the type. Various forms of shape representation are possible and an occurrence may have several shape representations. In determining which shape representations should be supported for a flow segment, it is important to be aware of the capabilities of any system which may expect to receive and use shape representations provided. This is to ensure that the shape representation(s) given are supported by receiving systems. |
fp_represent_product | |
||
| Axis Representation The segment axis is represented by a two-dimensional open curve. The segment axis is used to apply the segment length parameter to the segment geometry. In case of a straight segment, the set of items shall include a single geometric representation item of type IfcPolyline. In the case of a curved segment, the set of items shall include a single geometric representation item of type IfcTrimmedCurve. The curve shall have a BasisCurve of type IfcCircle. |
Use the following attribute values: IfcShapeRepresentation.RepresentationIdentifier à 'Axis' IfcShapeRepresentation.RepresentationType à 'GeometricSet' |
|
||
| Body Representation The body of the IfcFlowSegment may be defined using SweptSolid representation for segments without clippings. |
Use the following attribute values: IfcShapeRepresentation.RepresentationIdentifier à 'Body' IfcShapeRepresentation.RepresentationType à 'SweptSolid' The standard geometric representation (for body) of IfcFlowSegment is defined using the swept solid representation. The following additional constraints apply to the swept solid representation:
|
|
||
| Body Representation The body of the IfcFlowSegment may be defined using CSG representation for segments with clippings. |
Use the following attribute values: IfcShapeRepresentation.RepresentationIdentifier à 'Body' IfcShapeRepresentation.RepresentationType à 'CSG' The advanced geometric representation (for body) of IfcFlowSegment is defined using the CSG representation. The following additional constraints apply to the swept solid representation:
|
|
||
| Body Representation The body of the IfcFlowSegment may be defined using a bounding box. |
Use the following attribute values: IfcShapeRepresentation.RepresentationIdentifier à 'Body' IfcShapeRepresentation.RepresentationType à 'BoundingBox' |
|
||
| B-Rep Representation The solid representation of the IfcFlowSegment may be defined using a boundary representation. The faceted B-Rep capabilities (with or without voids) shall be supported for B-Rep representation. |
Use the following attribute values: IfcShapeRepresentation.RepresentationIdentifier à 'Brep' IfcShapeRepresentation.RepresentationType à 'Brep' |
|
||
| Logical Representation Whilst not properly a shape representation, a logical connection may be made between certain elements using one or more realizing elements that do not have a shape represent but that need to be asserted with a logical representation. This is particularly relevant for cable segments between electrical devices. |
fp_connect_logical | |
||
| Establish Properties | ||||
| For each segment type, the value of type properties within property sets may be defined. Information on relevant property sets for the various types is given in the extension tables below. | fp_property | |
||
| For each segment occurrence, the value of occurrence properties within property sets may be defined. Information on relevant property sets for the various occurrences is given in the extension tables below. | fp_property | |
||
| Define type and occurrence | ||||
| Define the type of segment to which the segment occurrence conforms Refer to the list given in the Overview section for further information. |
fp_define_by_type | |
||
| Define the property set for the segment occurrence | fp_define_by_properties | |
||
| Extend occurrence information | ||||
| Define the material from which the segment is constructed | fp_associate_material | |
||
| Add information about the weight of the segment occurrence according to the particular method of measurement applied in the local usage. | fp_apply_quantity[weight] | |
||
| Classify the segment occurrence according to the selected classification approach | fp_associate_classification | |
IFC Entities Required
- IfcCableCarrierSegmentType
- IfcCableSegmentType
- IfcDistributionElement
- IfcDistributionElementType
- IfcDistributionFlowElement
- IfcDistributionFlowElementType
- IfcDuctSegmentType
- IfcElement
- IfcElementType
- IfcFlowSegment
- IfcFlowSegmentType
- IfcObject
- IfcPipeSegmentType
- IfcProduct
- IfcPropertyDefinition
- IfcPropertySetDefinition
- IfcPropertySet
- IfcRoot
- IfcTypeObject
- IfcTypeProduct
IFC Datatypes Required
- IfcGloballyUniqueId
- IfcIdentifier
- IfcLabel
- IfcText
- IfcCableCarrierSegmentTypeEnum
- IfcCableSegmentTypeEnum
- IfcDuctSegmentTypeEnum
- IfcPipeSegmentTypeEnum
IFC Functions Required
- -
IFC Property Sets Required
- Pset_CableSegmentTypeCableSegment
- Pset_CableSegmentTypeConductorSegment
- Pset_CableCarrierSegmentTypeCableLadderSegment
- Pset_CableCarrierSegmentTypeCableTraySegment
- Pset_CableCarrierSegmentTypeCableTrunkingSegment
- Pset_CableCarrierSegmentTypeConduitSegment
- Pset_DuctSegmentTypeCommon
- Pset_PipeSegmentTypeCommon
- Pset_PipeSegmentTypeGutter
IDM Functional Parts Required
- fp_apply_owner_history
- fp_assigns_to_group
- fp_connect_logical
- fp_connect_ports
- fp_define_by_properties
- fp_define_by_type
- fp_map_representation
- fp_place_object
- fp_property
- fp_represent_product
EXPRESS-G

EXPRESS Schema
SCHEMA FP_MODEL_FLOW_SEGMENT;
TYPE IfcGloballyUniqueId = STRING (22) FIXED;
END_TYPE;
TYPE IfcIdentifier = STRING;
END_TYPE;
TYPE IfcLabel = STRING;
END_TYPE;
TYPE IfcText = STRING;
END_TYPE;
TYPE IfcCableCarrierSegmentTypeEnum = ENUMERATION OF
(CABLELADDERSEGMENT,
CABLETRAYSEGMENT,
CABLETRUNKINGSEGMENT,
CONDUITSEGMENT,
USERDEFINED,
NOTDEFINED);
END_TYPE;
TYPE IfcCableSegmentTypeEnum = ENUMERATION OF
(CABLESEGMENT,
CONDUCTORSEGMENT,
USERDEFINED,
NOTDEFINED);
END_TYPE;
TYPE IfcDuctSegmentTypeEnum = ENUMERATION OF
(RIGIDSEGMENT,
FLEXIBLESEGMENT,
USERDEFINED,
NOTDEFINED);
END_TYPE;
TYPE IfcPipeSegmentTypeEnum = ENUMERATION OF
(FLEXIBLESEGMENT,
RIGIDSEGMENT,
GUTTER,
SPOOL,
USERDEFINED,
NOTDEFINED);
END_TYPE;
ENTITY IfcProduct
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcObject);
ObjectPlacement : OPTIONAL fp_place_object;
Representation : OPTIONAL fp_represent_product;
WHERE
WR1 : (EXISTS(Representation) AND EXISTS(ObjectPlacement))
OR (EXISTS(Representation) AND
(NOT('IFC2X2_FINAL.IFCPRODUCTDEFINITIONSHAPE' IN TYPEOF(Representation))))
OR (NOT(EXISTS(Representation)));
END_ENTITY;
ENTITY IfcObject
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcRoot);
ObjectType : OPTIONAL IfcLabel;
WHERE
WR1 : SIZEOF(QUERY(temp <* IsDefinedBy | 'IFC2X2_FINAL.IFCRELDEFINESBYTYPE' IN TYPEOF(temp))) <= 1;
END_ENTITY;
ENTITY IfcRoot
ABSTRACT SUPERTYPE OF (ONEOF(IfcObject, IfcPropertyDefinition));
GlobalId : IfcGloballyUniqueId;
Name : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
OwnerHistory : fp_apply_owner_history;
UNIQUE
UR1 : GlobalId;
END_ENTITY;
ENTITY IfcPropertyDefinition
ABSTRACT SUPERTYPE OF (ONEOF(IfcPropertySetDefinition, IfcTypeObject))
SUBTYPE OF(IfcRoot);
END_ENTITY;
ENTITY IfcPropertySetDefinition
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcPropertyDefinition);
INVERSE
DefinesType : SET [0:1] OF IfcTypeObject FOR HasPropertySets;
END_ENTITY;
ENTITY IfcPropertySet
SUBTYPE OF(IfcPropertySetDefinition);
HasProperties : SET [1:?] OF fp_property;
WHERE
WR31 : EXISTS(SELF\IfcRoot.Name);
WR32 : IfcUniquePropertyName(HasProperties);
END_ENTITY;
ENTITY fp_property;
END_ENTITY;
ENTITY IfcTypeObject
SUBTYPE OF(IfcPropertyDefinition);
ApplicableOccurrence : OPTIONAL IfcLabel;
HasPropertySets : OPTIONAL LIST [1:?] OF IfcPropertySetDefinition;
WHERE
WR1 : EXISTS(SELF\IfcRoot.Name);
END_ENTITY;
ENTITY IfcTypeProduct
SUBTYPE OF(IfcTypeObject);
Tag : OPTIONAL IfcLabel;
RepresentationMaps : SET [1:?] OF fp_map_representation;
WHERE
WR41 : NOT(EXISTS(SELF\IfcTypeObject.ObjectTypeOf[1])) OR
(SIZEOF(QUERY(temp <* SELF\IfcTypeObject.ObjectTypeOf[1].RelatedObjects |
NOT('IFC2X2_FINAL.IFCPRODUCT' IN TYPEOF(temp)))
) = 0);
END_ENTITY;
ENTITY IfcElementType
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcTypeProduct);
ElementType : OPTIONAL IfcLabel;
END_ENTITY;
ENTITY IfcDistributionElementType
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcElementType);
END_ENTITY;
ENTITY IfcDistributionFlowElementType
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcDistributionElementType);
END_ENTITY;
ENTITY IfcFlowSegmentType
ABSTRACT SUPERTYPE OF (ONEOF(IfcCableCarrierSegmentType, IfcCableSegmentType, IfcDuctSegmentType, IfcPipeSegmentType))
SUBTYPE OF(IfcDistributionFlowElementType);
END_ENTITY;
ENTITY IfcCableCarrierSegmentType
SUBTYPE OF(IfcFlowSegmentType);
PredefinedType : IfcCableCarrierSegmentTypeEnum;
END_ENTITY;
ENTITY IfcCableSegmentType
SUBTYPE OF(IfcFlowSegmentType);
PredefinedType : IfcCableSegmentTypeEnum;
END_ENTITY;
ENTITY IfcDuctSegmentType
SUBTYPE OF(IfcFlowSegmentType);
PredefinedType : IfcDuctSegmentTypeEnum;
END_ENTITY;
ENTITY IfcPipeSegmentType
SUBTYPE OF(IfcFlowSegmentType);
PredefinedType : IfcPipeSegmentTypeEnum;
END_ENTITY;
ENTITY IfcElement
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcProduct);
Tag : OPTIONAL IfcIdentifier;
END_ENTITY;
ENTITY IfcDistributionElement
SUBTYPE OF(IfcElement);
END_ENTITY;
ENTITY IfcDistributionFlowElement
SUBTYPE OF(IfcDistributionElement);
END_ENTITY;
ENTITY IfcFlowSegment
SUBTYPE OF(IfcDistributionFlowElement);
END_ENTITY;
ENTITY fp_map_representation;
END_ENTITY;
ENTITY fp_apply_owner_history;
END_ENTITY;
ENTITY fp_place_object;
END_ENTITY;
ENTITY fp_represent_product;
END_ENTITY;
ENTITY fp_define_by_type;
END_ENTITY;
ENTITY fp_define_by_properties;
END_ENTITY;
ENTITY fp_connect_ports;
END_ENTITY;
ENTITY fp_connect_logical;
END_ENTITY;
ENTITY fp_assigns_to_group;
END_ENTITY;
END_SCHEMA;