Class TIfcStructuralSurfaceConnection

Unit

Declaration

type TIfcStructuralSurfaceConnection = class(TIfcStructuralConnection)

Description

IFC class IfcStructuralSurfaceConnection.

Source: scene/load/ifc/castleifc_ifc_standard_types_autogenerated.inc (line 3096).

Hierarchy

Show Additional Members:

Overview

Methods

Protected function WantsGlobalId: Boolean; virtual;
Protected class function IfcClassName: String; virtual;
Protected function WantsGlobalId: Boolean; override;
Public constructor Create(AOwner: TComponent); override;
Public destructor Destroy; override;
Public function BuildNode(const Mapping: TCastleIfcMapping): TTransformNode; virtual;
Published procedure AddIsDecomposedBy(const ChildObject: TIfcObjectDefinition);
Public constructor Create(AOwner: TComponent); override;
Public destructor Destroy; override;
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 AddPolylineRepresentation( const Context: TIfcGeometricRepresentationContext; const Coordinates: array of TVector3);
Public procedure AddLinesRepresentation( const Context: TIfcGeometricRepresentationContext; const Coordinates: array of TVector3);
Public procedure AddBoxRepresentation( const Context: TIfcGeometricRepresentationContext; const Box: TBox3D);
Public function TransformSupported: Boolean;
Public procedure SetTransformRelativeTo(const OtherProduct: TIfcProduct);

Properties

Published property GlobalId: String read FGlobalId write FGlobalId;
Published property OwnerHistory: TIfcOwnerHistory read FOwnerHistory write FOwnerHistory;
Published property Name: TIfcLabel read FName write FName;
Published property Description: TIfcText read FDescription write FDescription;
Published property HasContext: TIfcRelDeclares read FHasContext write FHasContext;
Published property IsDecomposedBy: TIfcRelAggregatesList read FIsDecomposedBy;
Published property Decomposes: TIfcRelAggregatesList read FDecomposes;
Published property HasAssociations: TIfcRelAssociatesList read FHasAssociations;
Published property ObjectType: TIfcLabel read FObjectType write FObjectType;
Published property IsDeclaredBy: TIfcRelDefinesByObjectList read FIsDeclaredBy;
Published property Declares: TIfcRelDefinesByObjectList read FDeclares;
Published property IsTypedBy: TIfcRelDefinesByTypeList read FIsTypedBy;
Published property IsDefinedBy: TIfcRelDefinesByPropertiesList read FIsDefinedBy;
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;
Published property ReferencedInStructures: TIfcRelReferencedInSpatialStructure read FReferencedInStructures write FReferencedInStructures;

Description

Methods

Protected function WantsGlobalId: Boolean; virtual;

If True, instances of this class will have GlobalId auto-assigned at saving, and they will be saved as part of the "data" list in IFC JSON files.

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 WantsGlobalId = True to save some files.

Source: scene/load/ifc/castleifc_ifc_types.inc (line 52).

Protected class function IfcClassName: String; virtual;

Name for the IFC standard, used in IFC files. By default, this is just ClassName with prefix 'T' removed.

Source: scene/load/ifc/castleifc_ifc_types.inc (line 56).

Protected function WantsGlobalId: Boolean; override;

This item has no description. Showing description inherited from TIfcPersistent.WantsGlobalId.

If True, instances of this class will have GlobalId auto-assigned at saving, and they will be saved as part of the "data" list in IFC JSON files.

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 WantsGlobalId = True to save some files.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 1656).

Public constructor Create(AOwner: TComponent); override;

This item has no description.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 1828).

Public destructor Destroy; override;

This item has no description.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 1829).

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

This item has no description.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 1830).

Published procedure AddIsDecomposedBy(const ChildObject: TIfcObjectDefinition);

Add given TIfcObjectDefinition instance to the IsDecomposedBy list of this object. Adds also new intermediate TIfcRelAggregates instance.

This shall be used to add top-level IfcSpatialStructureElement instances to the project, e.g.:

  • TIfcSite instance inside IfcProject,

  • IfcBuilding instance inside TIfcSite,

  • IfcBuildingStorey instance inside IfcBuilding

See also
TIfcSpatialElement.AddContainedElement
Add given Element (TIfcElement, descendant of TIfcProduct) to the ContainsElements list of this spatial element.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 1873).

Public constructor Create(AOwner: TComponent); override;

This item has no description.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 1916).

Public destructor Destroy; override;

This item has no description.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 1917).

Public constructor Create(AOwner: TComponent); override;

This item has no description.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 2983).

Public destructor Destroy; override;

This item has no description.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 2984).

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

This item has no description.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 2985).

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).

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 3001).

Public procedure AddPolylineRepresentation( const Context: TIfcGeometricRepresentationContext; const Coordinates: array of TVector3);

Add representation as a polyline to the given product. The sequence of points in Coordinates defines a polyline, so it starts from the first point and goes through each subsequent point in order.

Parameters
Context
Geometric representation context instance, usually TIfcProject.ModelContext (for 3D models) or TIfcProject.PlanContext (for 2D floor plans).

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 3015).

Public procedure AddLinesRepresentation( const Context: TIfcGeometricRepresentationContext; const Coordinates: array of TVector3);

Add representation as a set of line segments to the given product. Each pair of points in Coordinates defines a line segment.

Parameters
Context
Geometric representation context instance, usually TIfcProject.ModelContext (for 3D models) or TIfcProject.PlanContext (for 2D floor plans).

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 3026).

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.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 3035).

Public function TransformSupported: Boolean;

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

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 3041).

Public procedure SetTransformRelativeTo(const OtherProduct: TIfcProduct);

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

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 3082).

Properties

Published property GlobalId: String read FGlobalId write FGlobalId;

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 GlobalId to be successfully saved (avoid recursively trying to serialize it) in some cases. We indicate such classes with WantsGlobalId.

IFC JSON documentation says this, which seems to (unfortunately it is not unambiguous enough...) allow this at any IFC class: "Whereas the globalId attribute is only available to those elements that are descendent of the IfcRoot entity in the EXPRESS schema, we encourage a broader use of this globalId, to enable referencing between objects in a JSON file when useful.".

Source: scene/load/ifc/castleifc_ifc_types.inc (line 79).

Published property OwnerHistory: TIfcOwnerHistory read FOwnerHistory write FOwnerHistory;

Information about the current ownership of that object.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 1659).

Published property Name: TIfcLabel read FName write FName;

This item has no description.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 1661).

Published property Description: TIfcText read FDescription write FDescription;

This item has no description.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 1662).

Published property HasContext: TIfcRelDeclares read FHasContext write FHasContext;

References to the context providing context information such as project unit or representation context. It should only be asserted for the uppermost non-spatial object.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 1847).

Published property IsDecomposedBy: TIfcRelAggregatesList read FIsDecomposedBy;

References to the decomposition relationship being an aggregation.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 1850).

Published property Decomposes: TIfcRelAggregatesList read FDecomposes;

References to the decomposition relationship being an aggregation.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 1853).

Published property HasAssociations: TIfcRelAssociatesList read FHasAssociations;

Reference to the relationship objects, that associates external references or other resource definitions to the object. Examples are the association to library, documentation or classification.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 1858).

Published property ObjectType: TIfcLabel read FObjectType write FObjectType;

The type denotes a particular type that indicates the object further.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 1920).

Published property IsDeclaredBy: TIfcRelDefinesByObjectList read FIsDeclaredBy;

Link to the relationship object pointing to the declaring object that provides the object definitions for this object occurrence.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 1924).

Published property Declares: TIfcRelDefinesByObjectList read FDeclares;

Link to the relationship object pointing to the reflected object(s) that receives the object definitions.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 1928).

Published property IsTypedBy: TIfcRelDefinesByTypeList read FIsTypedBy;

Set of relationships to the object type that provides the type definitions for this object occurrence.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 1932).

Published property IsDefinedBy: TIfcRelDefinesByPropertiesList read FIsDefinedBy;

Set of relationships to property set definitions attached to this object.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 1935).

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, in that case (TransformSupported = False), investigate and change the ObjectPlacement properties.

When TCastleIfcMapping.OptimizeAssumingOneMapping then this is optimized. Changing this property immediately updates the relevant X3D graph, without the need to call TCastleIfcMapping.Update. This makes changing translation really instant, no need to call TCastleIfcMapping.Update so it doesn't analyze what changed.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 3077).

Published property ObjectPlacement: TIfcObjectPlacement read FObjectPlacement write FObjectPlacement;

Object coordinate system and placement of the product in space.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 3085).

Published property Representation: TIfcProductRepresentation read FRepresentation write FRepresentation;

Representations of the product.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 3088).

Published property PositionedRelativeTo: TIfcRelPositionsList read FPositionedRelativeTo;

TODO // property ReferencedBy: TIfcRelAssignsToProductList read FReferencedBy;

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 3092).

Published property ReferencedInStructures: TIfcRelReferencedInSpatialStructure read FReferencedInStructures write FReferencedInStructures;

This item has no description.

Source: scene/load/ifc/castleifc_ifc_standard_types.inc (line 3094).


Generated by PasDoc 0.17.0.snapshot.