IFClite TypeScript API
    Preparing search index...

    Function parsePropertyValue

    • Parse and format a property value for display. Handles:

      • TypedValues like [IFCIDENTIFIER, '100 x 150mm'] -> display '100 x 150mm', tooltip 'Identifier'
      • Boolean enums like '.T.' -> 'True'
      • Null/undefined -> '\u2014'
      • Regular values -> string conversion

      It deliberately does NOT decode STEP escapes. Every producer of a property value decodes exactly once, at parse time: the TypeScript path via EntityExtractor.parseAttributeValue / columnar-parser-attributes.ts, the Rust/WASM and server paths via AttributeValue::from_token. The input here is therefore already literal text, and decoding a second time is not a no-op \u2014 since #2394 decodeIfcString collapses \\ to \, so an authored UNC path \\server\share would render as \server\share. C:\temp is a fixed point of the decoder, which is why the defect hides on the common case.

      Making the decoder idempotent instead would not work: idempotence requires treating an already-decoded \ and an authored, still-doubled \ the same way, which is exactly the ambiguity the one-decode rule removes. The invariant to hold is "decode once, at the parse boundary", not "decode defensively wherever a string is displayed".

      Parameters

      • value: unknown

      Returns ParsedPropertyValue