Skip to main content

Crate ifc_properties

Crate ifc_properties 

Source
Expand description

ifc-properties – Property sets, quantities and units – the non-geometric payload most

consumers actually want.

references/ifc-spec/ ships the official property set definitions as XML: 317 for IFC2x3 and 420 for IFC4. That is a machine-readable catalogue, so standard Psets are data here rather than hand-written tables.

§Module map

ModuleRole
psetIfcPropertySet and single/enumerated/list/table properties
quantityIfcElementQuantity: length, area, volume, weight, count
templateIfcPropertySetTemplate, property templates, and sets checked against them
standardThe official Pset catalogue from the shipped XML definitions
unitUnit assignment, prefixes and conversion-based units
valueIfcValue measure types and their interpretation
queryLookup helpers: property by name, pset by element
nestingBounded, cycle-aware traversal of complex properties and quantities
errorWhy a property lookup failed

§Status

Implemented: value, pset, quantity (including transactional quantity edits), unit, template, query and the release-bound exact lookups. standard is a reserved scaffold; the shipped Pset/Qto catalogue is ifc-template-catalog. Open work is tracked in GitHub issues.

§What this crate will not do

It never computes a shape measurement. An IfcQuantityArea is what the authoring tool asserted, and it may disagree with the geometry. Callers that want a check compute the value with a geometry service and pass it to compare, which reports agreement rather than inventing it.

Modules§

bounded_slot
IfcPropertyBoundedValue slots.
complex_quantity_slot
IfcPhysicalComplexQuantity slots.
complex_slot
IfcComplexProperty slots.
defines_by_template_slot
IfcRelDefinesByTemplate slots.
defines_by_type_slot
IfcRelDefinesByType slots.
defines_slot
IfcRelDefinesByProperties slots.
element_quantity_slot
IfcElementQuantity slots.
enumerated_slot
IfcPropertyEnumeratedValue slots.
list_slot
IfcPropertyListValue slots.
pset_slot
IfcPropertySet slots.
pset_template_slot
IfcPropertySetTemplate slots.
reference_slot
IfcPropertyReferenceValue slots.
single_value_slot
IfcPropertySingleValue slots.
table_slot
IfcPropertyTableValue slots.

Structs§

ComputedQuantity
A value computed outside this crate, with its meaning attached.
ConversionBasedUnitDraft
Authored fields for IfcConversionBasedUnit.
DoorLiningDraft
Attributes of an IfcDoorLiningProperties.
ExactBoundedValue
An IfcPropertyBoundedValue: a range, and in IFC4/IFC4X3 a set point.
ExactComplexMember
One member of an ExactComplexValue, resolved as a set member is.
ExactComplexValue
An IfcComplexProperty or IfcPhysicalComplexQuantity (#208).
ExactEntityRef
A referenced entity, identified exactly and not followed further.
ExactEnumeratedValue
An IfcPropertyEnumeratedValue: the selected values and the enumeration they are selected from.
ExactEnumeration
An IfcPropertyEnumeration: the permitted values of an enumerated property.
ExactPredefinedSet
A predefined property set assigned to an object, with every attribute its entity declares itself resolved exactly.
ExactProperty
A uniquely resolved property with IFC identity and provenance.
ExactPropertyEntry
One property of an enumeration, with the name it was selected by.
ExactPropertySetEntry
One assigned property set or quantity set that a set selector picked.
ExactReferenceValue
An IfcPropertyReferenceValue: a named pointer to another entity.
ExactTableRow
One row of an ExactTableValue.
ExactTableValue
An IfcPropertyTableValue: rows mapping a defining to a defined value.
ExactTypedValue
One present IfcValue with its declared type.
ExactUnit
A measure’s effective unit, resolved to SI base units.
MeasureValue
A property value together with the measure type the file declared.
MonetaryUnitDraft
Authored fields for IfcMonetaryUnit.
Property
One property: its name, description and value.
PropertySet
An IfcPropertySet with its properties resolved.
PropertySetTemplate
An IfcPropertySetTemplate with its property templates.
PropertyTemplate
A property template: what one property should look like.
QuantityExtras
The optional attributes of an IfcPhysicalSimpleQuantity.
QuantitySet
An IfcElementQuantity with its quantities resolved.
ReinforcementBarDraft
Attributes of an IfcReinforcementBarProperties.
ResolvedSet
A property set that applies to an object, with its provenance.
SectionReinforcementDraft
Attributes of an IfcSectionReinforcementProperties.
SiUnitDraft
Authored fields for IfcSIUnit.
TableValueDraft
Authored fields for IfcPropertyTableValue.
TemplateReport
Everything a template check found.
Tolerance
Tolerance for comparing two measurements.
WindowLiningDraft
Attributes of an IfcWindowLiningProperties.

Enums§

Attachment
How a property set reached the object that carries it.
Comparison
How an authored quantity compares to an externally computed value.
ExactLogical
Exact IFC logical value without collapsing unknown into a boolean.
ExactPropertyError
Why a property cannot be resolved exactly.
ExactResolution
Exact lookup result.
ExactSource
Provenance of an exact result.
ExactUnitError
Why a measure’s unit cannot be resolved exactly.
ExactValue
Values accepted by the exact resolver.
MeasureRole
Which measure-type attribute of an IfcSimplePropertyTemplate a value was checked against.
PropertyAnomaly
A structural problem found while reading properties.
PropertyError
A refused authoring request.
PropertyTemplateKind
Which concrete IfcPropertyTemplate a template is.
PropertyValue
What a property actually states.
Quantity
One physical quantity.
QuantityKind
What a physical quantity measures.
Scalar
The scalar payload of a property value.
SchemaVersion
The IFC release an exact resolution binds to (re-exported from ifc-schema). Which IFC schema version a table describes.
Source
Where a resolved property set came from.
TemplateError
Why property templates could not be read or checked against the release a model declares.
TemplateFinding
One way a templated property set deviates from an IfcPropertySetTemplate linked to it by IfcRelDefinesByTemplate.
UndecidedReason
Why a check could not decide whether a set conforms to its template.
UnitKind
A unit as the file states it.
UnresolvedValue
Why a simple quantity has no value to report.

Functions§

add_complex_property
Stage an IfcComplexProperty.
add_complex_property_template
Stage an IfcComplexPropertyTemplate.
add_complex_property_template_with_owner_history
add_complex_property_template in the model’s declared release, with a caller-supplied IfcOwnerHistory (#202).
add_context_dependent_unit
Stage an IfcContextDependentUnit.
add_conversion_based_unit
Stage an IfcConversionBasedUnit.
add_conversion_based_unit_with_offset
Stage an IfcConversionBasedUnitWithOffset.
add_derived_unit
Stage an IfcDerivedUnit over previously staged elements.
add_derived_unit_element
Stage an IfcDerivedUnitElement: one base unit raised to an exponent.
add_dimensional_exponents
Stage an IfcDimensionalExponents.
add_door_lining_properties
Stage an IfcDoorLiningProperties.
add_door_lining_properties_with_owner_history
add_door_lining_properties in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires (#202).
add_door_panel_properties
Stage an IfcDoorPanelProperties.
add_door_panel_properties_with_owner_history
add_door_panel_properties in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires (#202).
add_element_quantity
Stage an IfcElementQuantity.
add_element_quantity_with_owner_history
add_element_quantity in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires.
add_measure_with_unit
Stage an IfcMeasureWithUnit.
add_monetary_unit
Stage an IfcMonetaryUnit.
add_permeable_covering_properties
Stage an IfcPermeableCoveringProperties.
add_permeable_covering_properties_with_owner_history
add_permeable_covering_properties in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires (#202).
add_physical_complex_quantity
Stage an IfcPhysicalComplexQuantity.
add_profile_properties
Stage an IfcProfileProperties.
add_property_bounded_value
Stage an IfcPropertyBoundedValue.
add_property_dependency_relationship
Stage an IfcPropertyDependencyRelationship.
add_property_enumerated_value
Stage an IfcPropertyEnumeratedValue.
add_property_enumeration
Stage an IfcPropertyEnumeration.
add_property_list_value
Stage an IfcPropertyListValue.
add_property_reference_value
Stage an IfcPropertyReferenceValue.
add_property_set
Stage an IfcPropertySet.
add_property_set_template
Stage an IfcPropertySetTemplate.
add_property_set_template_with_owner_history
add_property_set_template in the model’s declared release, with a caller-supplied IfcOwnerHistory (#202).
add_property_set_with_owner_history
add_property_set in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires.
add_property_single_value
Stage an IfcPropertySingleValue.
add_property_table_value
Stage an IfcPropertyTableValue.
add_quantity_to_set
Stage adding a quantity to an existing IfcElementQuantity.
add_reinforcement_bar_properties
Stage an IfcReinforcementBarProperties.
add_reinforcement_definition_properties
Stage an IfcReinforcementDefinitionProperties.
add_reinforcement_definition_properties_with_owner_history
add_reinforcement_definition_properties in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires (#202).
add_section_properties
Stage an IfcSectionProperties.
add_section_reinforcement_properties
Stage an IfcSectionReinforcementProperties.
add_si_unit
Stage an IfcSIUnit.
add_window_lining_properties
Stage an IfcWindowLiningProperties.
add_window_lining_properties_with_owner_history
add_window_lining_properties in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires (#202).
add_window_panel_properties
Stage an IfcWindowPanelProperties.
add_window_panel_properties_with_owner_history
add_window_panel_properties in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires (#202).
assign_units
Stage an IfcUnitAssignment: the project-wide unit context.
attach_property_set
Stage an IfcRelDefinesByProperties attaching a set to objects.
attach_property_set_with_owner_history
attach_property_set with a caller-supplied IfcOwnerHistory, which IFC2X3 requires.
attach_template
Stage an IfcRelDefinesByTemplate.
attach_template_with_owner_history
attach_template in the model’s declared release, with a caller-supplied IfcOwnerHistory (#202).
attach_type
Attach a type object to its occurrences with IfcRelDefinesByType.
attach_type_with_owner_history
attach_type with a caller-supplied IfcOwnerHistory, which IFC2X3 requires.
compare
Compare one authored quantity against a computed value.
create_quantity
Stage a brand-new simple quantity in model’s release, returning the id reserved for it.
create_quantity_with
Stage a simple quantity with its optional attributes, in model’s release.
exact_material_properties_where
The properties of material definition material in the sets select_set picks, whose names select_property picks, resolved exactly (#218).
exact_material_property
Resolve a property of material definition material by exact set and property name (#218).
exact_material_property_sets_where
The property sets of material definition material whose names select_set picks, empty ones included (#218).
exact_predefined_sets
Every predefined property set of entity type entity (or a subtype) assigned to object, each with all its own attributes resolved.
exact_properties
Every property, simple quantity and predefined-set attribute of object, resolved exactly.
exact_properties_where
The properties and simple quantities of object in the sets select_set picks, whose names select_property picks, resolved exactly.
exact_property
Resolve a property or quantity by exact set and property name.
exact_property_sets_where
The property sets and quantity sets of object whose names select_set picks, empty ones included (#186).
exact_schema
The IFC release a model’s properties are resolved against.
exact_unit
Resolve the effective unit of a measure to an exact SI conversion.
prefix_exponent
The decimal exponent of an IfcSIPrefix.
project_unit_for
The project default unit for a given IfcUnitEnum.
project_units
Project default units, from IfcProject.UnitsInContext.
properties_of
Property sets applying to one object.
property
Read one property by id.
property_checked
Read one property by id, reporting every nested member left unread.
property_set
Read one IfcPropertySet by id, resolving its properties.
property_set_checked
Read one IfcPropertySet by id, reporting every member left unread.
property_set_template
Read one IfcPropertySetTemplate by id.
property_set_template_checked
Read one IfcPropertySetTemplate bound to the release the model declares, reporting every malformed fact met on the way.
property_set_templates
Every template in the file, ascending by id.
property_sets_by_object
Every property set in the file, keyed by the object carrying it.
property_template
Read one property template by id.
property_template_checked
Read one property template bound to the release the model declares, reporting every malformed fact met on the way.
property_value
Find a single property by set name and property name.
quantity_set
Read an IfcElementQuantity by id, with schema-rule anomalies.
quantity_sets
Every IfcElementQuantity in the file, with anomalies.
resolved_properties
Every property set applying to every object, precedence applied.
set_description
Stage a new Description, or clear it with None.
set_name
Stage a new Name for a quantity or property.
set_quantity_value
Stage a new value for an existing simple quantity.
stated_unit
Resolve the unit kind for a quantity, following its explicit unit only.
template_deviations
Compare every templated property set in the model with its templates.
template_of_set
Which templates define each property set, via IfcRelDefinesByTemplate.
unit
Read one unit by id.
unit_type
The IfcUnitEnum a unit declares, without building the whole value.

Type Aliases§

AttachedSets
Property sets found on each object, with how each one was attached.
PropertyResult
Result alias for authoring and reading helpers in this crate.
ResolvedProperties
Resolved property sets per object, after precedence is applied.