Skip to main content

Module authoring

Module authoring 

Source
Expand description

Transactional authoring of the spatial structure.

§Owner history and the declared release (#202)

IfcRoot.OwnerHistory is required in IFC2X3 and optional from IFC4 on. The writers that take no model cannot see the release: they write the IFC4/IFC4X3 layout with OwnerHistory $ and are IFC4/IFC4X3 only. Every one has a *_with_owner_history variant that binds the model’s declared release, lays the record out by attribute name from its table, and takes a caller-supplied IfcOwnerHistory; none is ever invented. create_space_boundary, which takes the model, binds the release too and refuses IFC2X3 without an owner history.

§Slot layouts are not repeated here

IfcRelAggregates and IfcRelContainedInSpatialStructure disagree about which slot holds the parent. The reader already encodes that in relation::slots; authoring resolves the same constants so a correction cannot update one side and leave the other.

Structs§

BoundaryDraft
Authored fields for a space boundary.
ExternalSpatialDraft
Attributes of an IfcExternalSpatialElement.
ProjectLibraryDraft
Attributes of an IfcProjectLibrary.
SpatialDraft
Authored fields shared by the spatial containers.

Enums§

BoundaryLevel
Which space-boundary level to stage.
SpatialAuthoringError
Why a spatial record was refused.

Functions§

adhere_to_element
Stage an IfcRelAdheresToElement: surface features bound to an element.
adhere_to_element_with_owner_history
adhere_to_element in the model’s declared release, with a caller-supplied IfcOwnerHistory. Only IFC4X3 declares IfcRelAdheresToElement (EntityNotInSchema elsewhere).
aggregate
Stage an IfcRelAggregates: a container decomposed into parts.
aggregate_with_owner_history
aggregate in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires.
assign_to_actor
Stage an IfcRelAssignsToActor: objects assigned to an actor.
assign_to_actor_with_owner_history
assign_to_actor in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires. The record has the release’s eight attributes, ActingRole unset; the plain writer stops at seven.
assign_to_group_by_factor
Stage an IfcRelAssignsToGroupByFactor.
assign_to_group_by_factor_with_owner_history
assign_to_group_by_factor in the model’s declared release, with a caller-supplied IfcOwnerHistory. IFC2X3 declares no IfcRelAssignsToGroupByFactor (EntityNotInSchema).
assign_to_process
Stage an IfcRelAssignsToProcess: objects assigned to a process.
assign_to_process_with_owner_history
assign_to_process in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires. The record has the release’s eight attributes, QuantityInProcess unset; the plain writer stops at seven.
assign_to_product
Stage an IfcRelAssignsToProduct: objects assigned to a product.
assign_to_product_with_owner_history
assign_to_product in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires.
assign_to_resource
Stage an IfcRelAssignsToResource: objects assigned to a resource.
assign_to_resource_with_owner_history
assign_to_resource in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires.
associate_profile_def
Stage an IfcRelAssociatesProfileDef: a profile associated with objects.
associate_profile_def_with_owner_history
associate_profile_def in the model’s declared release, with a caller-supplied IfcOwnerHistory. Only IFC4X3 declares IfcRelAssociatesProfileDef (EntityNotInSchema elsewhere).
connect_elements
Stage an IfcRelConnectsElements: two elements physically joined.
connect_elements_with_owner_history
connect_elements in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires.
connect_path_elements
Stage an IfcRelConnectsPathElements.
connect_path_elements_with_owner_history
connect_path_elements in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires.
connect_with_realizing_elements
Stage an IfcRelConnectsWithRealizingElements.
connect_with_realizing_elements_with_owner_history
connect_with_realizing_elements in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires. The record has the release’s nine attributes, ConnectionType unset; the plain writer stops at eight.
contain
Stage an IfcRelContainedInSpatialStructure.
contain_with_owner_history
contain in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires.
control_flow_element
Stage an IfcRelFlowControlElements: controls bound to a flow element.
control_flow_element_with_owner_history
control_flow_element in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires.
cover_elements
Stage an IfcRelCoversBldgElements: finishes applied to an element.
cover_elements_with_owner_history
cover_elements in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires.
cover_spaces
Stage an IfcRelCoversSpaces: finishes bounding a space.
cover_spaces_with_owner_history
cover_spaces in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires. In IFC2X3 the space is written as RelatedSpace, IFC4’s RelatingSpace under its IFC2X3 name.
create_external_spatial_element
Stage an IfcExternalSpatialElement.
create_external_spatial_element_with_owner_history
create_external_spatial_element in the model’s declared release, with a caller-supplied IfcOwnerHistory. IFC2X3 declares no IfcExternalSpatialElement (EntityNotInSchema).
create_project
Stage an IfcProject.
create_project_library
Stage an IfcProjectLibrary.
create_project_library_with_owner_history
create_project_library in the model’s declared release, with a caller-supplied IfcOwnerHistory. IFC2X3 declares no IfcProjectLibrary (EntityNotInSchema).
create_project_with_owner_history
create_project in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires.
create_space_boundary
Stage an IfcRelSpaceBoundary at the requested level, in the model’s declared release, with OwnerHistory unset.
create_space_boundary_with_owner_history
create_space_boundary with a caller-supplied IfcOwnerHistory, which IFC2X3 requires.
create_spatial_element
Stage a spatial container.
create_spatial_element_with_owner_history
create_spatial_element in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires.
declare
Stage an IfcRelDeclares: definitions declared in a context.
declare_with_owner_history
declare in the model’s declared release, with a caller-supplied IfcOwnerHistory. IFC2X3 declares no IfcRelDeclares (EntityNotInSchema).
define_by_object
Stage an IfcRelDefinesByObject: occurrences defined by another object.
define_by_object_with_owner_history
define_by_object in the model’s declared release, with a caller-supplied IfcOwnerHistory. IFC2X3 declares no IfcRelDefinesByObject (EntityNotInSchema).
fill_element
Stage an IfcRelFillsElement: an element filling an opening.
fill_element_with_owner_history
fill_element in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires.
interfere_elements
Stage an IfcRelInterferesElements: a detected clash.
interfere_elements_with_owner_history
interfere_elements in the model’s declared release, with a caller-supplied IfcOwnerHistory. IFC2X3 declares no IfcRelInterferesElements (EntityNotInSchema).
position_products
Stage an IfcRelPositions: products placed by a positioning element.
position_products_with_owner_history
position_products in the model’s declared release, with a caller-supplied IfcOwnerHistory. Only IFC4X3 declares IfcRelPositions (EntityNotInSchema elsewhere).
project_element
Stage an IfcRelProjectsElement: a feature added to an element.
project_element_with_owner_history
project_element in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires.
serve_buildings
Stage an IfcRelServicesBuildings: which spatial elements a system serves.
serve_buildings_with_owner_history
serve_buildings in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires.
void_element
Stage an IfcRelVoidsElement: an opening cut into an element.
void_element_with_owner_history
void_element in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires.

Type Aliases§

SpatialAuthoringResult
Result of staging a spatial record.