Textstil - Schriftensatz - Modell | |
Text Style Font Model | |
Modèle de police de style de texte |
Item | SPF | XML | Change | Description | IFC2x3 to IFC4 4.0.0.0 |
---|---|---|---|---|
IfcTextStyleFontModel | MOVED | Schema changed from IFCPRESENTATIONRESOURCE to IFCPRESENTATIONAPPEARANCERESOURCE. | ||
FontFamily | MODIFIED | Instantiation changed from OPTIONAL. | IFC2x3 to IFC4 4.0.0.0 | |
IfcTextStyleFontModel | MOVED | Schema changed from IFCPRESENTATIONRESOURCE to IFCPRESENTATIONAPPEARANCERESOURCE. | ||
FontFamily | MODIFIED | Instantiation changed from OPTIONAL. |
Definition according to W3C for Cascading Style Sheets:
Setting font properties will be among the most common uses of style sheets. Unfortunately, there exists no well-defined and universally accepted taxonomy for classifying fonts, and terms that apply to one font family may not be appropriate for others. For example, 'italic' is commonly used to label slanted text, but slanted text may also be labeled as being Oblique, Slanted, Incline, Cursive or Kursiv. Therefore it is not a simple problem to map typical font selection properties to a specific font.
Font matching
Because there is no accepted, universal taxonomy of font properties, matching of properties to font faces must be done carefully. The properties are matched in a well-defined order to ensure that the results of this matching process are as consistent as possible across user agents (assuming that the same library of font faces is presented to each of them).
(The above algorithm can be optimized to avoid having to revisit the CSS1 properties for each character.)
The per-property matching rules from (2) above are as follows:
The inherited Name attribute is used to define the font name, particularly in cases, where no (list of) font families are provided.
NOTE Corresponding CSS1 definitions are Font properties ('font-family', 'font-style', 'font-variant', 'font-weight').
HISTORY New entity in IFC2x3.
# | Attribute | Type | Cardinality | Description | G |
---|---|---|---|---|---|
2 | FontFamily | IfcTextFontName | L[1:?] |
The value is a prioritized list of font family names and/or generic family names. The first list entry has the highest priority, if this font fails, the next list item shall be used. The last list item should (if possible) be a generic family.
IFC4 CHANGE Attribute changed to being mandatory. | X |
3 | FontStyle | IfcFontStyle | ? | The font style property selects between normal (sometimes referred to as "roman" or "upright"), italic and oblique faces within a font family. | X |
4 | FontVariant | IfcFontVariant | ? |
The font variant property selects between normal and small-caps.
NOTE It has been introduced for later compliance to full CSS1 support. | X |
5 | FontWeight | IfcFontWeight | ? |
The font weight property selects the weight of the font.
NOTE Values other then 'normal' and 'bold' have been introduced for later compliance to full CSS1 support. | X |
6 | FontSize | IfcSizeSelect |
The font size provides the size or height of the text font.
NOTE The following values are allowed, <IfcLengthMeasure, with positive values, the length unit is globally defined at IfcUnitAssignment.__ | X |
Rule | Description |
---|---|
MeasureOfFontSize | The size should be given by a positive length measure, |
# | Attribute | Type | Cardinality | Description | G |
---|---|---|---|---|---|
IfcPresentationItem | |||||
IfcPreDefinedItem | |||||
1 | Name | IfcLabel | The string by which the pre defined item is identified. Allowable values for the string are declared at the level of subtypes. | X | |
IfcPreDefinedTextFont | |||||
IfcTextStyleFontModel | |||||
2 | FontFamily | IfcTextFontName | L[1:?] |
The value is a prioritized list of font family names and/or generic family names. The first list entry has the highest priority, if this font fails, the next list item shall be used. The last list item should (if possible) be a generic family.
IFC4 CHANGE Attribute changed to being mandatory. | X |
3 | FontStyle | IfcFontStyle | ? | The font style property selects between normal (sometimes referred to as "roman" or "upright"), italic and oblique faces within a font family. | X |
4 | FontVariant | IfcFontVariant | ? |
The font variant property selects between normal and small-caps.
NOTE It has been introduced for later compliance to full CSS1 support. | X |
5 | FontWeight | IfcFontWeight | ? |
The font weight property selects the weight of the font.
NOTE Values other then 'normal' and 'bold' have been introduced for later compliance to full CSS1 support. | X |
6 | FontSize | IfcSizeSelect |
The font size provides the size or height of the text font.
NOTE The following values are allowed, <IfcLengthMeasure, with positive values, the length unit is globally defined at IfcUnitAssignment.__ | X |
<xs:element name="IfcTextStyleFontModel" type="ifc:IfcTextStyleFontModel" substitutionGroup="ifc:IfcPreDefinedTextFont" nillable="true"/>
<xs:complexType name="IfcTextStyleFontModel">
<xs:complexContent>
<xs:extension base="ifc:IfcPreDefinedTextFont">
<xs:sequence>
<xs:element name="FontFamily">
<xs:complexType>
<xs:sequence>
<xs:element ref="ifc:IfcTextFontName-wrapper" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="ifc:itemType" fixed="ifc:IfcTextFontName-wrapper"/>
<xs:attribute ref="ifc:cType" fixed="list"/>
<xs:attribute ref="ifc:arraySize" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="FontSize">
<xs:complexType>
<xs:group ref="ifc:IfcSizeSelect"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="FontStyle" type="ifc:IfcFontStyle" use="optional"/>
<xs:attribute name="FontVariant" type="ifc:IfcFontVariant" use="optional"/>
<xs:attribute name="FontWeight" type="ifc:IfcFontWeight" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
ENTITY IfcTextStyleFontModel
SUBTYPE OF (IfcPreDefinedTextFont);
FontFamily : LIST [1:?] OF IfcTextFontName;
FontStyle : OPTIONAL IfcFontStyle;
FontVariant : OPTIONAL IfcFontVariant;
FontWeight : OPTIONAL IfcFontWeight;
FontSize : IfcSizeSelect;
WHERE
MeasureOfFontSize : ('IFCMEASURERESOURCE.IfcLengthMeasure' IN TYPEOF(SELF.FontSize)) AND
(SELF.FontSize > 0.);
END_ENTITY;