IFClite TypeScript API
    Preparing search index...

    Interface PropertyRule

    interface PropertyRule {
        comparison?: ValueComparison;
        inherit?: "type" | "aggregation";
        kind: "property";
        legacyListFirst?: true;
        memberPath?: string[];
        nameCaseMode?: "exact";
        op: ValueOp;
        propertyName: string;
        propertyNameKind?: TextKind;
        setName: string;
        setNameKind?: TextKind;
        value: string;
        valueKind?: TextKind;
        valueUnit?: "si";
    }

    Hierarchy

    • PropertyReadOptions
      • PropertyRule
    Index
    comparison?: ValueComparison
    inherit?: "type" | "aggregation"

    Where a missing value may come from (#5433). 'type': a quantity also reads its type's quantity sets (properties always read their type's property sets). 'aggregation': an element with no value of its own (its type's included, for quantities too) takes the nearest IfcRelAggregates ancestor's. Never implicit: absent means the element's own (and, for properties, its type's) values only.

    kind: "property"
    legacyListFirst?: true

    Saved v1 Lists read the first matching property, even when another same-named property set follows it. Other Rules keep any/none semantics.

    memberPath?: string[]

    The member of an IfcComplexProperty to read, by Name, one entry per nesting level: ['Width'], or ['Frame', 'Width'] for a member of a nested complex property (#5475). Names compare case-insensitively, like property names. A property that is not complex, or has no such member, reads as absent. Absent: a complex property reads as its members' joined text.

    nameCaseMode?: "exact"

    Preserve exact IFC name matching when decoding older saved List conditions.

    propertyName: string
    propertyNameKind?: TextKind

    How propertyName reads.

    setName: string
    setNameKind?: TextKind

    How setName reads — a regex set name is what lets one rule reach both Pset_WallCommon and Pset_SlabCommon.

    value: string

    Raw user input. Numeric ops parse as f64; isSet/isNotSet ignore.

    valueKind?: TextKind

    How value reads. Only consulted by the matches / notMatches ops.

    valueUnit?: "si"

    'si': the rule's numeric operand is in SI base units (metres, square metres, cubic metres), the way IDS states measure values. Each value is converted to SI with its own unit (an explicit Unit on the property or quantity, else the project unit for its measure type) before comparing. Values with no unit (labels, counts) are compared as stored. Absent: the operand is in the model's own units (#5225).