import AP214StepModel from "./ap214_step_model.js"; /** * One extracted key/value property row for a part. */ export interface ExtractedProperty { /** Property key, e.g. `'Modeled By'`, `'volume measure'`. */ name: string; /** Stringified value, e.g. `'Engineer'`, `'14644822.6361138'`. */ value: string; /** Numeric value for measure properties (volume/area/…); `undefined` for text. */ numericValue?: number; /** * Grouping label from the owning `property_definition.name` — e.g. * `'geometric validation property'` for NIST volume/area validation rows. * Empty for plain attribute properties. */ group: string; /** * Express id of the source representation item (the * `descriptive_representation_item` / `measure_representation_item`). The * compat surface uses it as the property's own express id so the web-ifc * `IfcPropertySet.HasProperties` reference handles can be resolved back to * this row via `getItemProperties`. `undefined` if the item carried no id. */ expressID?: number; } /** Properties grouped by the express id of the owning `product_definition`. */ export type ExtractedPropertyMap = Map; /** Minimal shape of a representation item needed for property conversion. */ interface RepresentationItemLike { name: string; expressID?: number; } /** * Extracts STEP part properties from a populated {@link AP214StepModel}. * * Walks the property chain * `general_property` → (`general_property_association`) → `property_definition` * → `property_definition_representation` → `representation` → * `descriptive_representation_item` / `measure_representation_item` into * per-part key/value rows. Includes the NIST validation properties * (`geometric/attribute validation property`, e.g. volume via * `measure_representation_item`). * * Mirrors the IFC precedent (`src/ifc/ifc_property_extraction.ts`); feeds the * web-ifc compat surface `ap214_properties.ts` that Share consumes. */ export declare class AP214PropertyExtraction { private readonly model; private readonly generalPropertyNameByDef_; /** * @param model The populated AP214/AP242 step model to walk. */ constructor(model: AP214StepModel); /** * Build the per-part property map. * * @return {ExtractedPropertyMap} Properties keyed by owning * `product_definition` express id. Properties whose owner is a feature * (`shape_aspect`, dimensions) rather than a part are skipped at this * (Simplified) tier — they belong to the Full PMI tier. */ extractProperties(): ExtractedPropertyMap; /** * Index general-property names by the express id of the `property_definition` * they are associated with, so a property can carry the canonical * `general_property` label when one exists. */ private indexGeneralPropertyNames; /** * Resolve the part owner and value rows for one * `property_definition_representation` and append them to the result map. * * @param pdr The property-definition representation to walk. * @param result The accumulating per-part property map. */ private collectFromRepresentation; /** * Convert a representation item into a property row, or `undefined` for item * kinds that carry no key/value (e.g. a centroid `cartesian_point`). * * @param item The representation item to convert. * @param fallbackKey Key to use when the item itself is unnamed. * @param group Grouping label from the owning property definition. * @return {ExtractedProperty | undefined} The property row, or `undefined`. */ static toProperty(item: RepresentationItemLike, fallbackKey: string, group: string): ExtractedProperty | undefined; } export {}; //# sourceMappingURL=ap214_property_extraction.d.ts.map