Beliebiges geschlossenes Profil mit Löchern | |
Arbitrary Profile Def With Voids |
The IfcArbitraryProfileDefWithVoids defines an arbitrary closed two-dimensional profile with holes. It is given by an outer boundary and inner boundaries. A common usage of IfcArbitraryProfileDefWithVoids is as the cross section for the creation of swept surfaces or swept solids.
HISTORY New entity in IFC2x.
Informal Propositions:
Figure 411 illustrates the arbitrary closed profile definition with voids. The OuterCurve, defined at the supertype IfcArbitraryClosedProfileDef and the inner curves are defined in the same underlying coordinate system. The common underlying coordinate system is defined by the swept area solid that uses the profile definition. It is the xy plane of:
or in case of sectioned spines the xy plane of each list member of IfcSectionedSpine.CrossSectionPositions. The OuterCurve attribute defines a two dimensional closed bounded curve, the InnerCurves define a set of two dimensional closed bounded curves.
Figure 411 — Arbitrary profile with voids |
# | Attribute | Type | Cardinality | Description | G |
---|---|---|---|---|---|
4 | InnerCurves | IfcCurve | S[1:?] | Set of bounded curves, defining the inner boundaries of the arbitrary profile. | X |
Rule | Description |
---|---|
WR1 | The type of the profile shall be AREA, as it can only be involved in the definition of a swept area. |
WR2 | All inner curves shall have the dimensionality of 2. |
WR3 | None of the inner curves shall by of type IfcLine, as an IfcLine can not be a closed curve. |
# | Attribute | Type | Cardinality | Description | G |
---|---|---|---|---|---|
IfcProfileDef | |||||
1 | ProfileType | IfcProfileTypeEnum | Defines the type of geometry into which this profile definition shall be resolved, either a curve or a surface area. In case of curve the profile should be referenced by a swept surface, in case of area the profile should be referenced by a swept area solid. | X | |
2 | ProfileName | IfcLabel | ? | Human-readable name of the profile, for example according to a standard profile table. As noted above, machine-readable standardized profile designations should be provided in IfcExternalReference.ItemReference. | X |
HasExternalReference | IfcExternalReferenceRelationship @RelatedResourceObjects | S[0:?] | Reference to external information, e.g. library, classification, or document information, which is associated with the profile.
IFC4 CHANGE New inverse attribute | X | |
HasProperties | IfcProfileProperties @ProfileDefinition | S[0:?] | Additional properties of the profile, for example mechanical properties.
IFC4 CHANGE New inverse attribute | X | |
IfcArbitraryClosedProfileDef | |||||
3 | OuterCurve | IfcCurve | Bounded curve, defining the outer boundaries of the arbitrary profile. | X | |
IfcArbitraryProfileDefWithVoids | |||||
4 | InnerCurves | IfcCurve | S[1:?] | Set of bounded curves, defining the inner boundaries of the arbitrary profile. | X |
# | Concept | Template | Model View |
---|---|---|---|
IfcProfileDef | |||
Property Sets for Objects | Property Sets for Objects | General Usage |
<xs:element name="IfcArbitraryProfileDefWithVoids" type="ifc:IfcArbitraryProfileDefWithVoids" substitutionGroup="ifc:IfcArbitraryClosedProfileDef" nillable="true"/>
<xs:complexType name="IfcArbitraryProfileDefWithVoids">
<xs:complexContent>
<xs:extension base="ifc:IfcArbitraryClosedProfileDef">
<xs:sequence>
<xs:element name="InnerCurves">
<xs:complexType>
<xs:sequence>
<xs:element ref="ifc:IfcCurve" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="ifc:itemType" fixed="ifc:IfcCurve"/>
<xs:attribute ref="ifc:cType" fixed="set"/>
<xs:attribute ref="ifc:arraySize" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
ENTITY IfcArbitraryProfileDefWithVoids
SUBTYPE OF (IfcArbitraryClosedProfileDef);
InnerCurves : SET [1:?] OF IfcCurve;
WHERE
WR1 : SELF\IfcProfileDef.ProfileType = AREA;
WR2 : SIZEOF(QUERY(temp <* InnerCurves | temp.Dim <> 2)) = 0;
WR3 : SIZEOF(QUERY(temp <* InnerCurves | 'IFCGEOMETRYRESOURCE.IfcLine' IN TYPEOF(temp))) = 0;
END_ENTITY;