#[non_exhaustive]pub enum ExactPropertyError {
Show 28 variants
IncompleteModel {
diagnostics: usize,
},
MissingSchema,
MultipleSchemas {
schemas: usize,
},
UnsupportedSchema {
schema: String,
},
MissingReference {
from: EntityId,
to: EntityId,
},
MalformedAggregate {
entity: EntityId,
attribute: &'static str,
},
MultipleTypeAssignments {
object: EntityId,
first: EntityId,
second: EntityId,
},
InvalidOccurrenceTarget {
relationship: EntityId,
object: EntityId,
},
InvalidTypeTarget {
relationship: EntityId,
object: EntityId,
},
InvalidQueryObject {
object: EntityId,
type_name: Arc<str>,
},
DuplicateAggregateMember {
entity: EntityId,
attribute: &'static str,
member: EntityId,
},
DuplicateMatchingSets {
source: ExactSource,
first: EntityId,
second: EntityId,
},
DuplicateMatchingProperties {
set: EntityId,
first: EntityId,
second: EntityId,
},
MalformedName {
entity: EntityId,
attribute: &'static str,
},
UnsupportedDefinition {
entity: EntityId,
type_name: Arc<str>,
},
UnsupportedProperty {
entity: EntityId,
type_name: Arc<str>,
},
MissingValueSlot {
property: EntityId,
},
MalformedEntitySlots {
entity: EntityId,
type_name: Arc<str>,
expected: usize,
actual: usize,
},
UnsupportedUnit {
property: EntityId,
},
UnsupportedValue {
property: EntityId,
},
NonFiniteReal {
property: EntityId,
},
NotInSchema {
entity: EntityId,
name: Arc<str>,
schema: SchemaVersion,
},
InconsistentValues {
entity: EntityId,
rule: &'static str,
},
NotAPredefinedSet {
name: Arc<str>,
schema: SchemaVersion,
},
UnsupportedRelationship {
relationship: EntityId,
type_name: Arc<str>,
},
ComplexCycle {
complex: EntityId,
member: EntityId,
},
ComplexTooDeep {
complex: EntityId,
limit: usize,
},
ComplexBudgetExceeded {
complex: EntityId,
limit: usize,
},
}Expand description
Why a property cannot be resolved exactly.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
IncompleteModel
The model carries STEP-level diagnostics, so exactness cannot be guaranteed; count of diagnostics is reported for context.
MissingSchema
The model header declares no FILE_SCHEMA.
MultipleSchemas
The model header declares more than one schema.
UnsupportedSchema
The model header declares a schema other than IFC2X3, IFC4 or
IFC4X3 (IFC4X3_ADD2).
MissingReference
An entity reference points at an id absent from the model.
Fields
MalformedAggregate
An aggregate attribute (list/set) was $, empty when required, or
not encoded as a list at all.
Fields
MultipleTypeAssignments
The occurrence is assigned to more than one IfcTypeObject via
IfcRelDefinesByType, which IFC forbids.
Fields
InvalidOccurrenceTarget
IfcRelDefinesByProperties.RelatedObjects names an object that is
not a non-type IfcObjectDefinition. A type object there is refused
even when it is the queried object: its sets belong in its
HasPropertySets (IFC4 and IFC4X3 NoRelatedTypeObject; IFC2X3
admits only IfcObject).
Fields
InvalidTypeTarget
IfcRelDefinesByType.RelatedObjects names an object that is not an
IfcObject.
Fields
InvalidQueryObject
The queried entity can carry no property sets in the declared
release: it is neither an object IfcRelDefinesByProperties may
relate (IfcObject in IFC2X3, a non-type IfcObjectDefinition in
IFC4 and IFC4X3) nor an IfcTypeObject (accepted since #193). For
a material query (#218): the entity is no material definition the
release’s IfcMaterialProperties.Material accepts.
Fields
DuplicateAggregateMember
The same entity id appears more than once in an aggregate attribute that must have unique members.
Fields
DuplicateMatchingSets
Two property sets with the same name matched the query for the same source (occurrence or type), making the result ambiguous.
Fields
source: ExactSourceWhether the ambiguity arose among occurrence or type sets.
DuplicateMatchingProperties
Two properties with the same name matched within the same set.
Fields
MalformedName
A Name attribute expected to be a string was $, a reference, or
otherwise not text.
Fields
UnsupportedDefinition
A RelatingPropertyDefinition reference resolves to an entity that
is not an IfcPropertySetDefinition; or a predefined property set
holds the requested name in an attribute this resolver cannot read
exactly (an aggregate, such as
IfcReinforcementDefinitionProperties.ReinforcementSectionDefinitions);
or a predefined set that states no Name, and so cannot be ruled out
by a set name, has an attribute of the requested name (#66).
UnsupportedProperty
A member of IfcPropertySet.HasProperties or
IfcComplexProperty.HasProperties is not an IfcProperty, or a
member of IfcElementQuantity.Quantities or
IfcPhysicalComplexQuantity.HasQuantities is not an
IfcPhysicalQuantity.
MissingValueSlot
A value the release requires was $: a quantity’s value, or a
required value of another kind (IFC2X3
IfcPropertyReferenceValue.PropertyReference).
MalformedEntitySlots
An entity’s attribute count does not match what the declared release’s schema declares for its type (a malformed or truncated STEP record).
Fields
UnsupportedUnit
IfcPropertySingleValue.Unit references an entity that is not a
member of the IfcUnit select.
UnsupportedValue
IfcPropertySingleValue.NominalValue carries a typed value whose
declared type is not accepted by IFCVALUE, or whose payload does
not match its declared type.
NonFiniteReal
IfcPropertySingleValue.NominalValue is an IFCREAL that is NaN or
infinite, which IFC does not permit.
NotInSchema
A traversed record, typed value, or select member names a construct
that the release declared in FILE_SCHEMA does not define, for
example an IfcDoorType or an IfcPropertySetDefinitionSet in an
IFC2X3 file. The file mixes releases, so nothing it says about the
property is trusted.
Fields
schema: SchemaVersionThe release the header declares.
InconsistentValues
Values that the property’s release constrains contradict one of
those constraints, so no one reading of them is exact: list members
or bounds of different types, table columns of unequal length, a
selected value missing from the referenced enumeration, or a repeated
member of a LIST OF UNIQUE.
Fields
NotAPredefinedSet
The entity name given to exact_predefined_sets is not a
predefined property set in the declared release: not declared there
at all, or an IfcPropertySet, a quantity set, or one of their
supertypes.
Fields
schema: SchemaVersionThe release the header declares.
UnsupportedRelationship
A proper subtype of IfcRelDefinesByProperties or
IfcRelDefinesByType relates the queried object, such as IFC2X3
IfcRelOverridesProperties. Its semantics change which value applies,
and the exact resolver does not interpret them, so it refuses rather
than answer as if the relationship were absent.
ComplexCycle
A complex property or quantity reaches itself again through its members (#208). The schema forbids only a direct self-member; a longer cycle has no finite resolution either.
Fields
ComplexTooDeep
A complex property or quantity nested deeper than the resolver follows below one set member (#208).
Fields
ComplexBudgetExceeded
Resolving one set member followed more nested member references than its budget (#208). Members may be shared between complexes, so a small file can expand into an enormous tree.
Trait Implementations§
Source§impl Clone for ExactPropertyError
impl Clone for ExactPropertyError
Source§impl Debug for ExactPropertyError
impl Debug for ExactPropertyError
Source§impl Display for ExactPropertyError
impl Display for ExactPropertyError
impl Eq for ExactPropertyError
Source§impl Error for ExactPropertyError
impl Error for ExactPropertyError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()