#[non_exhaustive]pub enum TemplateFinding {
MissingProperty {
set: EntityId,
template: EntityId,
container: EntityId,
property_template: EntityId,
name: Arc<str>,
},
UnexpectedProperty {
set: EntityId,
template: EntityId,
container: EntityId,
property: EntityId,
name: Arc<str>,
},
WrongForm {
set: EntityId,
template: EntityId,
property: EntityId,
property_template: EntityId,
template_type: Option<Arc<str>>,
expected: &'static [&'static str],
found: Arc<str>,
},
WrongMeasureType {
set: EntityId,
template: EntityId,
property: EntityId,
property_template: EntityId,
measure: MeasureRole,
attribute: &'static str,
expected: Arc<str>,
found: Arc<str>,
},
WrongSetKind {
set: EntityId,
template: EntityId,
template_type: Arc<str>,
expected: &'static str,
found: Arc<str>,
},
WrongAttachment {
set: EntityId,
template: EntityId,
object: EntityId,
template_type: Arc<str>,
found: Arc<str>,
},
OutsideApplicableEntity {
set: EntityId,
template: EntityId,
object: EntityId,
found: Arc<str>,
applicable_entity: Arc<str>,
},
Undecided {
set: EntityId,
template: EntityId,
subject: EntityId,
reason: UndecidedReason,
},
}Expand description
One way a templated property set deviates from an
IfcPropertySetTemplate linked to it by IfcRelDefinesByTemplate.
Every finding names the set and the set template; findings about one property also name the property and/or the (possibly nested) property template. A finding is a deviation from the in-file template, which is what the caller asked about; except where noted, IFC does not make it a schema violation.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
MissingProperty
A property template has no property of its Name in the set (or, for
a nested template, in the complex property).
Fields
UnexpectedProperty
A property whose Name no property template of the set template (or
of the complex template) states.
Fields
WrongForm
A property whose entity is not the one its template’s TemplateType
prescribes, e.g. an IfcPropertySingleValue where the template says
P_ENUMERATEDVALUE.
Fields
WrongMeasureType
A value whose declared type is not the template’s measure type.
Fields
measure: MeasureRoleWhich measure type of the template applies.
WrongSetKind
The set is not the entity the template’s TemplateType governs: a
PSET_* template on an IfcElementQuantity, a QTO_* template on
an IfcPropertySet, or (IFC4X3) a material- or profile-driven
template on any property set definition.
Fields
WrongAttachment
The set sits on an object its template’s TemplateType excludes: a
*_TYPEDRIVENONLY set on an occurrence, an *_OCCURRENCEDRIVEN set
on a type, a PSET_PERFORMANCEDRIVEN set on anything but an
IfcPerformanceHistory.
Fields
OutsideApplicableEntity
The set sits on an object that no entry of the template’s
ApplicableEntity admits.
Fields
Undecided
Whether subject conforms cannot be decided from the file and the
release’s documentation.