pub struct StepAssembly {
pub products: Vec<StepProduct>,
pub occurrences: Vec<StepOccurrence>,
pub roots: Vec<usize>,
pub first_error: Option<String>,
pub pmi: Option<PmiState>,
pub pmi_diagnostics: Vec<String>,
}Expand description
A STEP file’s product structure, with geometry, and without a single transform applied to it.
Fields§
§products: Vec<StepProduct>Every product the structure mentions, ordered by ascending pd_ref.
occurrences: Vec<StepOccurrence>One entry per structure edge, ordered by ascending edge_ref.
roots: Vec<usize>Indices of the products that are never an occurrence child — where a consumer starts composing world transforms.
first_error: Option<String>The first thing that did not come in: a body that failed to reconstruct,
or a mapping that was refused ([StepMappedItemError]). A refused mapping
is NOT counted in any product’s failed_bodies, which counts bodies that
failed to BUILD — a placement we cannot express is a different thing, and
the geometry under it built perfectly well.
pmi: Option<PmiState>The file’s ASSEMBLY-level PMI: annotations the file pinned to an OCCURRENCE rather than a part, annotations spanning two parts, and annotations with no geometry of their own (a free note, a saved view).
References to a component’s geometry carry the STEP occurrence chain
they resolve through (OCCURRENCE_REF_PREFIX): the kernel cannot know
what the consumer will call its components, so the consumer rewrites
them with rewrite_occurrence_refs.
pmi_diagnostics: Vec<String>What the PMI lift could not do cleanly — a reference naming geometry this import did not build, an occurrence chain nothing placed. Every one of these describes a KEPT annotation: PMI is never dropped for want of a reference, it arrives as a row that reports itself.