IfcFontWeight

Natural language names
Font Weight
Graisse de police
Change log
ItemSPFXMLChangeDescription
IFC2x3 to IFC4 4.0.0.0
    IfcFontWeightMOVEDSchema changed from IFCPRESENTATIONRESOURCE to IFCPRESENTATIONAPPEARANCERESOURCE.
IFC2x3 to IFC4 4.0.0.0
    IfcFontWeightMOVEDSchema changed from IFCPRESENTATIONRESOURCE to IFCPRESENTATIONAPPEARANCERESOURCE.
Semantic definitions at the type
Type definition

The IfcFontWeight type defines the weight of the font. Values are:

NOTE  Definition according to Cascading Style Sheets, level 1
The values '100' to '900' form an ordered sequence, where each number indicates a weight that is at least as dark as its predecessor. The keyword 'normal' is synonymous with '400', and 'bold' is synonymous with '700'. Keywords other than 'normal' and 'bold' have been shown to be often confused with font names and a numerical scale was therefore chosen for the 9-value list.

Fonts (the font data) typically have one or more properties whose values are names that are descriptive of the "weight" of a font. There is no accepted, universal meaning to these weight names. Their primary role is to distinguish faces of differing darkness within a single font family. Usage across font families is quite variant; for example a font that you might think of as being bold might be described as being Regular, Roman, Book, Medium, Semi- or DemiBold, Bold, or Black, depending on how black the "normal" face of the font is within the design. Because there is no standard usage of names, the weight property values in CSS1 are given on a numerical scale in which the value '400' (or 'normal') corresponds to the "normal" text face for that family. The weight name associated with that face will typically be Book, Regular, Roman, Normal or sometimes Medium.

The association of other weights within a family to the numerical weight values is intended only to preserve the ordering of darkness within that family. However, the following heuristics tell how the assignment is done in typical cases: > * If the font family already uses a numerical scale with nine values (such as with OpenType), the font weights should be mapped directly.

  • If there is both a face labeled Medium and one labeled Book, Regular, Roman or Normal, then the Medium is normally assigned to the '500'.
  • The font labeled "Bold" will often correspond to the weight value '700'.
  • If there are fewer then 9 weights in the family, the default algorithm for filling the "holes" is as follows. If '500' is unassigned, it will be assigned the same font as '400'. If any of the values '600', '700', '800' or '900' remains unassigned, they are assigned to the same face as the next darker assigned keyword, if any, or the next lighter one otherwise. If any of '300', '200' or '100' remains unassigned, it is assigned to the next lighter assigned keyword, if any, or the next darker otherwise.

The following two examples illustrate the process. Assume four weights in the "Example1" family, from lightest to darkest: Regular, Medium, Bold, Heavy. And assume six weights in the "Example2" family: Book, Medium, Bold, Heavy, Black, ExtraBlack. Note how in the second example it has been decided not to assign "Example2 ExtraBlack" to anything.

Available faces       | Assignments   | Filling the holes
----------------------+---------------+-------------------
"Example1 Regular" | 400 | 100, 200, 300
"Example1 Medium" | 500 |
"Example1 Bold" | 700 | 600
"Example1 Heavy" | 800 | 900
Available faces       | Assignments   | Filling the holes
----------------------+---------------+-------------------
"Example2 Book" | 400 | 100, 200, 300
"Example2 Medium" | 500 |
"Example2 Bold" | 700 | 600
"Example2 Heavy" | 800 |
"Example2 Black" | 900 |
"Example2 ExtraBlack" | (none) |

NOTE  Type adopted from font-weight defined in CSS-1.

HISTORY  New type in IFC2x2 Add2.

Formal Propositions
RuleDescription
WR1
Formal representations
XML Specification
 <xs:simpleType name="IfcFontWeight">
  <xs:restriction base="xs:normalizedString"/>
 </xs:simpleType>
EXPRESS Specification
TYPE IfcFontWeight = STRING;
 WHERE
  WR1 : SELF IN ['normal','small-caps','100','200','300','400','500','600','700','800','900']
END_TYPE;

Link to EXPRESS-G diagram EXPRESS-G diagram

References  References: IfcTextStyleFontModel

Link to this page  Link to this page