FIN Framework File Types

FIN Framework File Types

The FIN Framework uses several specialized file types for different purposes.


Primary Haystack Data Formats

Trio (.trio)

See Trio on Project Haystack

  • Full Name: Tag Record Input/Output

  • Purpose: Plain text format for hand-authoring Haystack data

  • Characteristics:

    • Derived from YAML

    • Uses Zinc encodings for scalar types to provide full type fidelity

    • Line-oriented format where dicts are separated by lines beginning with ---

    • Primary format for authoring tag definitions

    • Supports multi-line strings and nested collection data values

    • Limitation: Not ideal for representing grids (no grid meta or column meta support)

  • Common Uses:

    • Equipment tag definitions (e.g., vavTags.trio)

    • BACnet properties lists (bacnetProperties.trio)

    • Template functions (templateFuncs.trio)

    • Definition files on Project Haystack site

Example Trio Format:

dis: "Site 1" site area: 3702ft² geoAddr: "100 Main St, Richmond, VA" ---

Zinc (.zinc)

See Zinc on Project Haystack

  • Full Name: Zinc Is Not CSV (recursive acronym)

  • Purpose: Original Haystack format for encoding CSV with strong typing

  • Characteristics:

    • Provides full fidelity to encode all Haystack kinds without loss of typing

    • Compact and readable syntax

    • Requires non-trivial parser

    • Default format for HTTP API (alongside JSON)

    • Scalar encodings are the basis for both Trio and JSON

  • Common Uses:

    • Equipment records export (EquipRecords.zinc)

    • Point records export (PointRecords.zinc)

    • Batch record saving

    • Template storage in /io folder

File Location Example:

C:\Program Files (x86)\FIN Framework\FIN Framework 5.2.0.1920\var\proj\demo\io

JSON (.json)

  • Full Name: JavaScript Object Notation (Haystack format)

  • Purpose: Standardized method for mapping Haystack data types to JSON

  • Characteristics:

    • Two encoding methods:

      • Version 4: Default JSON encoding for Haystack

      • Version 3: Legacy encoding for backwards compatibility

    • No loss of information

    • Equally supported alongside Zinc for HTTP API

  • Common Uses:

    • API requests/responses

    • Data interchange

    • Web application integration

Example with Units:

{ "kind": "number", "val": 45, "unit": "°F" }

Template & Equipment Files

FST (.fst)

  • Full Name: FIN Stack Template

  • Purpose: Equipment template files containing complete equipment configurations

  • Characteristics:

    • Created using Template → Save functionality in DB Builder

    • Contains equips with points, programs, graphics, alarms, summaries, and manuals

    • Must be named in camelCase (case sensitive)

    • Can include multiple equipment types in template packages

  • Contents Can Include:

    • Equipment and point definitions

    • Graphics

    • Logic Builder programs/alarms

    • Summaries

    • O&M manuals

    • Tuning policies

    • Schedules

  • Associated Files:

    • equipTags.trio: Specific tags for the equip template (e.g., vav.fstvavTags.trio)

    • bacnetProperties.trio: Properties to read from devices

    • templateFuncs.trio: Specific functions for the template

Typical Template Package Structure:

io/ ├── vavTemplate/ │ ├── vav.fst │ ├── vavTags.trio │ ├── bacnetProperties.trio │ └── vavFuncs.trio

FINP (.finp)

  • Full Name: FIN Project/Builder file

  • Purpose: Asset file that can be downloaded and opened in FIN Builder

  • Characteristics:

    • Tagged with finpFile marker

    • Can be custom graphics or other builder components

    • Associated with finpFileRef for references