Class TIfcTextLiteralWithExtent
Unit
Declaration
type TIfcTextLiteralWithExtent = class(TIfcTextLiteral)
Description
Text to be displayed, with a defined extent (box) and alignment within it.
Spec: https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcTextLiteralWithExtent.htm
Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 2148).
Hierarchy
- TObject
- TPersistent
- TComponent
- TIfcPersistent
- TIfcRepresentationItem
- TIfcGeometricRepresentationItem
- TIfcTextLiteral
- TIfcTextLiteralWithExtent
Overview
Methods
| Protected | function WantsGlobalId: Boolean; virtual; |
| Protected | class function IfcClassName: String; virtual; |
| Public | constructor Create(AOwner: TComponent); override; |
| Public | function BuildNode(const Mapping: TCastleIfcMapping; const ParentProduct: TIfcProduct; const LitAppearance, UnlitAppearance: TAppearanceNode): TAbstractChildNode; override; |
| Public | procedure SetFontSize(const Size: TIfcPositiveLengthMeasure; const FontFamily: String = 'sans-serif'); |
| Public | function TryGetFontSize(out Size: Single): Boolean; |
| Protected | function GetBoxAlignment: TIfcBoxAlignment; override; |
Properties
| Published | property GlobalId: String read FGlobalId write FGlobalId; |
| Published | property LayerAssignment: TIfcPresentationLayerAssignment read FLayerAssignment write FLayerAssignment; |
| Published | property StyledByItem: TIfcStyledItem read FStyledByItem write FStyledByItem; |
| Published | property Literal: TIfcPresentableText read FLiteral write FLiteral; |
| Published | property Placement: TIfcAxis2Placement read FPlacement write FPlacement; |
| Published | property Path: TIfcTextPath read FPath write FPath default TIfcTextPath.Unknown; |
| Published | property Extent: TIfcPlanarExtent read FExtent write FExtent; |
| Published | property BoxAlignment: TIfcBoxAlignment read FBoxAlignment write FBoxAlignment; |
Description
Methods
| Protected | function WantsGlobalId: Boolean; virtual; |
|
This item is declared in ancestor TIfcPersistent.
If Strictly following the spec, this should be only defined for TIfcRoot, because only IfcRoot has GlobalId. In reality, we need GlobalId at TIfcPersistent to load some files, and we sometimes need | |
| Protected | class function IfcClassName: String; virtual; |
|
This item is declared in ancestor TIfcPersistent. Name for the IFC standard, used in IFC files. By default, this is just ClassName with prefix 'T' removed. | |
| Public | constructor Create(AOwner: TComponent); override; |
|
This item is declared in ancestor TIfcTextLiteral. This item has no description. Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 2102). | |
| Public | function BuildNode(const Mapping: TCastleIfcMapping; const ParentProduct: TIfcProduct; const LitAppearance, UnlitAppearance: TAppearanceNode): TAbstractChildNode; override; |
|
This item is declared in ancestor TIfcTextLiteral. This item has no description. Showing description inherited from TIfcRepresentationItem.BuildNode.
Build a node to display this using Castle Game Engine. Returns
Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 2103). | |
| Public | procedure SetFontSize(const Size: TIfcPositiveLengthMeasure; const FontFamily: String = 'sans-serif'); |
|
This item is declared in ancestor TIfcTextLiteral. Set the font size (height of the font, in the model length units). This creates the IFC structure to express it: TIfcStyledItem (assigned as our StyledByItem) with TIfcTextStyle with TIfcTextStyleFontModel. Replaces previous StyledByItem, if any. Note: The created TIfcStyledItem.Item is left Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 2117). | |
| Public | function TryGetFontSize(out Size: Single): Boolean; |
|
This item is declared in ancestor TIfcTextLiteral.
Font size (height of the font, in the model length units), looking at the TIfcTextStyle in StyledByItem. Returns Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 2123). | |
| Protected | function GetBoxAlignment: TIfcBoxAlignment; override; |
|
This item has no description. Showing description inherited from TIfcTextLiteral.GetBoxAlignment. Current BoxAlignment. Returns TIfcTextLiteralWithExtent.BoxAlignment or empty string, if this is not TIfcTextLiteralWithExtent. Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 2153). | |
Properties
| Published | property GlobalId: String read FGlobalId write FGlobalId; |
|
This item is declared in ancestor TIfcPersistent. Globally unique identifier for the object instance. Note: Not declared as TGUID, because TGUID cannot be published, but also we don't really need it: for our purposes, this identifier is just an arbitrary string. Note: IFC 4.3 specification puts this only at IfcRoot, not at every IFC class. But testcase https://github.com/buildingsmart-community/Community-Sample-Test-Files/blob/main/IFC%204.0.2.1%20(IFC%204)/ISO%20Spec%20archive/wall-with-opening-and-window.json (from IFC 4.0) shows this can be present at any IFC class, in particular TIfcGeometricRepresentationContext. In fact, TIfcGeometricRepresentationContext needs to have IFC JSON documentation says this, which seems to (unfortunately it is not unambiguous enough...) allow this at any IFC class: "Whereas the | |
| Published | property LayerAssignment: TIfcPresentationLayerAssignment read FLayerAssignment write FLayerAssignment; |
|
This item is declared in ancestor TIfcRepresentationItem.
Assignment of the representation item to a single or multiple layer(s). Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 393). | |
| Published | property StyledByItem: TIfcStyledItem read FStyledByItem write FStyledByItem; |
|
This item is declared in ancestor TIfcRepresentationItem.
Reference to the IfcStyledItem that provides presentation information to the representation, e.g. a curve style, including colour and thickness to a geometric curve. Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 399). | |
| Published | property Literal: TIfcPresentableText read FLiteral write FLiteral; |
|
This item is declared in ancestor TIfcTextLiteral. The text to display. Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 2126). | |
| Published | property Placement: TIfcAxis2Placement read FPlacement write FPlacement; |
|
This item is declared in ancestor TIfcTextLiteral.
Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 2129). | |
| Published | property Path: TIfcTextPath read FPath write FPath default TIfcTextPath.Unknown; |
|
This item is declared in ancestor TIfcTextLiteral.
Writing direction of the text. The value after creation is Note: The declared default below is deliberately different, Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 2142). | |
| Published | property Extent: TIfcPlanarExtent read FExtent write FExtent; |
|
Note: We ignore this for now. We don't need it to honor BoxAlignment: from what I understand, both the box defined by this, and the text, place the corner at BoxAlignment. This value would only matter to wrap or clip the text to the box, and to honor the alignment of the text within the box, given by IfcTextStyleTextModel.TextAlign . Then, the box size does shift the text, e.g. BoxAlignment = 'bottom-right' with TextAlign = 'left' means the text starts SizeInX to the left of the placement. Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 2166). | |
| Published | property BoxAlignment: TIfcBoxAlignment read FBoxAlignment write FBoxAlignment; |
|
Alignment of the text (and of the box defined by Extent). One of the 9 values allowed by TIfcBoxAlignment, like Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 2171). | |
Generated by PasDoc 1.0.4.