Class TIfcProduct

Unit

Declaration

type TIfcProduct = class abstract(TIfcObject)

Description

Any object that relates to a geometric or spatial context.

Spec: https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcProduct.htm

Hierarchy

Overview

Methods

Public constructor Create(AOwner: TComponent); override;
Public destructor Destroy; override;
Public function BuildNode(const Mapping: TCastleIfcMapping): TTransformNode; override;
Public procedure AddMeshRepresentation( const Context: TIfcGeometricRepresentationContext; const Coordinates: array of TVector3; const Indexes: array of Integer; const Solid: Boolean = true);
Public procedure AddBoxRepresentation( const Context: TIfcGeometricRepresentationContext; const Box: TBox3D);
Public function TransformSupported: Boolean;
Public procedure SetTransformRelativeTo(const OtherProduct: TIfcProduct);

Properties

Public property Translation: TVector3 read GetTranslation write SetTranslation;
Published property ObjectPlacement: TIfcObjectPlacement read FObjectPlacement write FObjectPlacement;
Published property Representation: TIfcProductRepresentation read FRepresentation write FRepresentation;
Published property PositionedRelativeTo: TIfcRelPositionsList read FPositionedRelativeTo;

Description

Methods

Public constructor Create(AOwner: TComponent); override;

This item has no description.

Public destructor Destroy; override;

This item has no description.

Public function BuildNode(const Mapping: TCastleIfcMapping): TTransformNode; override;

This item has no description.

Public procedure AddMeshRepresentation( const Context: TIfcGeometricRepresentationContext; const Coordinates: array of TVector3; const Indexes: array of Integer; const Solid: Boolean = true);

Add mesh representation to the given product.

The mesh is expressed as a set of 3D points (Coordinates) and indexes to these coordinates (Indexes) that determine polygons. The indexes are 0-based and can be separated by -1 to delimit polygons.

See examples/ifc/ for an example usage of this routine to define walls and floors.

Parameters
Context
Geometric representation context instance, usually TIfcProject.ModelContext (for 3D models) or TIfcProject.PlanContext (for 2D floor plans).
Public procedure AddBoxRepresentation( const Context: TIfcGeometricRepresentationContext; const Box: TBox3D);

Add box representation to the given product.

Right now, the Box is transformed into a proper mesh representation, so this is just equivalent to calling AddMeshRepresentation with the 8 box corners and proper indexes to define 6 box sides.

Public function TransformSupported: Boolean;

Does ObjectPlacement express a 3D transformation we can handle and Translation reliably gets and sets it.

Public procedure SetTransformRelativeTo(const OtherProduct: TIfcProduct);

Make Translation of this product relative to a given different product. This sets TIfcObjectPlacement.PlacementRelTo underneath.

Properties

Public property Translation: TVector3 read GetTranslation write SetTranslation;

Translation of this product.

  • Using this property when TransformSupported is True is most intuitive. It can then reliably get and set 3D translation. The translation is relative to the parent or to other object (determined by TIfcObjectPlacement.PlacementRelTo, can be set using SetTransformRelativeTo.)

  • Using this property when TransformSupported is False is still possible.

    The interpretation depends on the configuration of the ObjectPlacement. E.g. it may specify that it's a 2D transformation (so setting a translation may change it to 3D, and right now it may not preserve 2D rotation). In general, IFC offers various possibilities to define the placement of an object, relative to various parents.

    If in doubt, just don't use this property when TransformSupported is False. Instead, investigate and change the ObjectPlacement properties.

Published property ObjectPlacement: TIfcObjectPlacement read FObjectPlacement write FObjectPlacement;

Object coordinate system and placement of the product in space.

Published property Representation: TIfcProductRepresentation read FRepresentation write FRepresentation;

Representations of the product.

Published property PositionedRelativeTo: TIfcRelPositionsList read FPositionedRelativeTo;

TODO // property ReferencedBy: TIfcRelAssignsToProductList read FReferencedBy;


Generated by PasDoc 0.16.0-snapshot.