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
| Module | Role |
|---|---|
pset | IfcPropertySet and single/enumerated/list/table properties |
quantity | IfcElementQuantity: length, area, volume, weight, count |
template | IfcPropertySetTemplate, property templates, and sets checked against them |
standard | The official Pset catalogue from the shipped XML definitions |
unit | Unit assignment, prefixes and conversion-based units |
value | IfcValue measure types and their interpretation |
query | Lookup helpers: property by name, pset by element |
nesting | Bounded, cycle-aware traversal of complex properties and quantities |
error | Why 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 IfcPropertyBoundedValueslots.- complex_
quantity_ slot IfcPhysicalComplexQuantityslots.- complex_
slot IfcComplexPropertyslots.- defines_
by_ template_ slot IfcRelDefinesByTemplateslots.- defines_
by_ type_ slot IfcRelDefinesByTypeslots.- defines_
slot IfcRelDefinesByPropertiesslots.- element_
quantity_ slot IfcElementQuantityslots.- enumerated_
slot IfcPropertyEnumeratedValueslots.- list_
slot IfcPropertyListValueslots.- pset_
slot IfcPropertySetslots.- pset_
template_ slot IfcPropertySetTemplateslots.- reference_
slot IfcPropertyReferenceValueslots.- single_
value_ slot IfcPropertySingleValueslots.- table_
slot IfcPropertyTableValueslots.
Structs§
- Computed
Quantity - A value computed outside this crate, with its meaning attached.
- Conversion
Based Unit Draft - Authored fields for
IfcConversionBasedUnit. - Door
Lining Draft - Attributes of an
IfcDoorLiningProperties. - Exact
Bounded Value - An
IfcPropertyBoundedValue: a range, and in IFC4/IFC4X3 a set point. - Exact
Complex Member - One member of an
ExactComplexValue, resolved as a set member is. - Exact
Complex Value - An
IfcComplexPropertyorIfcPhysicalComplexQuantity(#208). - Exact
Entity Ref - A referenced entity, identified exactly and not followed further.
- Exact
Enumerated Value - An
IfcPropertyEnumeratedValue: the selected values and the enumeration they are selected from. - Exact
Enumeration - An
IfcPropertyEnumeration: the permitted values of an enumerated property. - Exact
Predefined Set - A predefined property set assigned to an object, with every attribute its entity declares itself resolved exactly.
- Exact
Property - A uniquely resolved property with IFC identity and provenance.
- Exact
Property Entry - One property of an enumeration, with the name it was selected by.
- Exact
Property SetEntry - One assigned property set or quantity set that a set selector picked.
- Exact
Reference Value - An
IfcPropertyReferenceValue: a named pointer to another entity. - Exact
Table Row - One row of an
ExactTableValue. - Exact
Table Value - An
IfcPropertyTableValue: rows mapping a defining to a defined value. - Exact
Typed Value - One present
IfcValuewith its declared type. - Exact
Unit - A measure’s effective unit, resolved to SI base units.
- Measure
Value - A property value together with the measure type the file declared.
- Monetary
Unit Draft - Authored fields for
IfcMonetaryUnit. - Property
- One property: its name, description and value.
- Property
Set - An
IfcPropertySetwith its properties resolved. - Property
SetTemplate - An
IfcPropertySetTemplatewith its property templates. - Property
Template - A property template: what one property should look like.
- Quantity
Extras - The optional attributes of an
IfcPhysicalSimpleQuantity. - Quantity
Set - An
IfcElementQuantitywith its quantities resolved. - Reinforcement
BarDraft - Attributes of an
IfcReinforcementBarProperties. - Resolved
Set - A property set that applies to an object, with its provenance.
- Section
Reinforcement Draft - Attributes of an
IfcSectionReinforcementProperties. - SiUnit
Draft - Authored fields for
IfcSIUnit. - Table
Value Draft - Authored fields for
IfcPropertyTableValue. - Template
Report - Everything a template check found.
- Tolerance
- Tolerance for comparing two measurements.
- Window
Lining Draft - 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.
- Exact
Logical - Exact IFC logical value without collapsing unknown into a boolean.
- Exact
Property Error - Why a property cannot be resolved exactly.
- Exact
Resolution - Exact lookup result.
- Exact
Source - Provenance of an exact result.
- Exact
Unit Error - Why a measure’s unit cannot be resolved exactly.
- Exact
Value - Values accepted by the exact resolver.
- Measure
Role - Which measure-type attribute of an
IfcSimplePropertyTemplatea value was checked against. - Property
Anomaly - A structural problem found while reading properties.
- Property
Error - A refused authoring request.
- Property
Template Kind - Which concrete
IfcPropertyTemplatea template is. - Property
Value - What a property actually states.
- Quantity
- One physical quantity.
- Quantity
Kind - What a physical quantity measures.
- Scalar
- The scalar payload of a property value.
- Schema
Version - 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.
- Template
Error - Why property templates could not be read or checked against the release a model declares.
- Template
Finding - One way a templated property set deviates from an
IfcPropertySetTemplatelinked to it byIfcRelDefinesByTemplate. - Undecided
Reason - Why a check could not decide whether a set conforms to its template.
- Unit
Kind - A unit as the file states it.
- Unresolved
Value - 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_templatein the model’s declared release, with a caller-suppliedIfcOwnerHistory(#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
IfcDerivedUnitover 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_propertiesin the model’s declared release, with a caller-suppliedIfcOwnerHistory, which IFC2X3 requires (#202).- add_
door_ panel_ properties - Stage an
IfcDoorPanelProperties. - add_
door_ panel_ properties_ with_ owner_ history add_door_panel_propertiesin the model’s declared release, with a caller-suppliedIfcOwnerHistory, which IFC2X3 requires (#202).- add_
element_ quantity - Stage an
IfcElementQuantity. - add_
element_ quantity_ with_ owner_ history add_element_quantityin the model’s declared release, with a caller-suppliedIfcOwnerHistory, 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_propertiesin the model’s declared release, with a caller-suppliedIfcOwnerHistory, 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_templatein the model’s declared release, with a caller-suppliedIfcOwnerHistory(#202).- add_
property_ set_ with_ owner_ history add_property_setin the model’s declared release, with a caller-suppliedIfcOwnerHistory, 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_propertiesin the model’s declared release, with a caller-suppliedIfcOwnerHistory, 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_propertiesin the model’s declared release, with a caller-suppliedIfcOwnerHistory, which IFC2X3 requires (#202).- add_
window_ panel_ properties - Stage an
IfcWindowPanelProperties. - add_
window_ panel_ properties_ with_ owner_ history add_window_panel_propertiesin the model’s declared release, with a caller-suppliedIfcOwnerHistory, which IFC2X3 requires (#202).- assign_
units - Stage an
IfcUnitAssignment: the project-wide unit context. - attach_
property_ set - Stage an
IfcRelDefinesByPropertiesattaching a set to objects. - attach_
property_ set_ with_ owner_ history attach_property_setwith a caller-suppliedIfcOwnerHistory, which IFC2X3 requires.- attach_
template - Stage an
IfcRelDefinesByTemplate. - attach_
template_ with_ owner_ history attach_templatein the model’s declared release, with a caller-suppliedIfcOwnerHistory(#202).- attach_
type - Attach a type object to its occurrences with
IfcRelDefinesByType. - attach_
type_ with_ owner_ history attach_typewith a caller-suppliedIfcOwnerHistory, 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
materialin the setsselect_setpicks, whose namesselect_propertypicks, resolved exactly (#218). - exact_
material_ property - Resolve a property of material definition
materialby exact set and property name (#218). - exact_
material_ property_ sets_ where - The property sets of material definition
materialwhose namesselect_setpicks, empty ones included (#218). - exact_
predefined_ sets - Every predefined property set of entity type
entity(or a subtype) assigned toobject, 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
objectin the setsselect_setpicks, whose namesselect_propertypicks, 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
objectwhose namesselect_setpicks, 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
IfcPropertySetby id, resolving its properties. - property_
set_ checked - Read one
IfcPropertySetby id, reporting every member left unread. - property_
set_ template - Read one
IfcPropertySetTemplateby id. - property_
set_ template_ checked - Read one
IfcPropertySetTemplatebound 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
IfcElementQuantityby id, with schema-rule anomalies. - quantity_
sets - Every
IfcElementQuantityin the file, with anomalies. - resolved_
properties - Every property set applying to every object, precedence applied.
- set_
description - Stage a new
Description, or clear it withNone. - set_
name - Stage a new
Namefor 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
IfcUnitEnuma unit declares, without building the whole value.
Type Aliases§
- Attached
Sets - Property sets found on each object, with how each one was attached.
- Property
Result - Result alias for authoring and reading helpers in this crate.
- Resolved
Properties - Resolved property sets per object, after precedence is applied.