Skip to main content
Version: 1.3

PlantX XLS Format for FRI3D Import/Export

PlantX XLS Format for FRI3D Import/Export

This document describes the Excel (.xlsx) format used to import plant data into an FRI3D project (via Import_PLANTX_XLS) and to export plant data from an open FRI3D project (via the FireEngine API ExportPlantToPlantXXls). Files in this format can be exchanged between tools and re-imported into FRI3D.


Overview

  • File format: Microsoft Excel Open XML (.xlsx).
  • Structure: One workbook with multiple worksheets. Each worksheet has a header row (row 1) and data rows (row 2 onward). Empty rows may be skipped during import.
  • Sheet names: Exact names are required (case-sensitive). See table below.

Worksheet Names and Purpose

Worksheet namePurpose
ZonesZone (compartment) definitions
ZonesToLinks from zones to other items
RacewaysRaceway/tray/conduit definitions
RacewaysToLinks from raceways to other items
ComponentsComponent definitions
ComponentsToLinks from components to other items
CablesCable definitions
CablesToLinks from cables to other items
BasicEventsBasic event definitions
SpuriousBasicEventsSpurious basic events (optional probability)
ScenariosScenario definitions (PRA/fire scenarios)
ScenariosToLinks from scenarios to zones/items
SourcesFire/source definitions
SourcesToLinks from sources to other items
ItemTypesOptional lookup; can be empty
CableTypesOptional cable type lookup (names)

Entity Worksheets (Columns)

Zones

ColumnDescription
ZoneUnique zone name (required).
descriptionZone description.
CADDataOptional; e.g. CAD or geometry metadata (stored as JSON or text).

Raceways

ColumnDescription
RacewayUnique raceway name (required).
descriptionRaceway description.
typeOne of: CONDUIT, TRAY, OTHER.
inPRAWhether included in PRA: TRUE / FALSE (or 1/0, Y/N).

Components

ColumnDescription
ComponentUnique component name (required).
descriptionComponent description.
(column 3)Unused / reserved.
inPRAWhether included in PRA: TRUE / FALSE (or 1/0, Y/N).

Cables

ColumnDescription
CableUnique cable name (required).
descriptionCable description.
typeCable type identifier (e.g. name from CableTypes sheet or cable spec).
inPRAWhether included in PRA: TRUE / FALSE (or 1/0, Y/N).

BasicEvents

ColumnDescription
BasicEventUnique basic event name (required).
descriptionBasic event description.

SpuriousBasicEvents

ColumnDescription
SpuriousBasicEventUnique name (required).
descriptionDescription.
probOptional numeric probability (decimal).

Scenarios

ColumnDescription
ScenarioUnique scenario name (required).
descriptionScenario description.
igfIgnition frequency (numeric).
severityFactorSeverity factor (numeric).
nspNon-suppression probability (numeric).
documentOptional document reference.
notesOptional notes.

Sources

ColumnDescription
SourceUnique source name (required).
descriptionSource description.

Each XxxTo sheet defines links from one entity type to others. All link sheets use the same column pattern:

ColumnDescription
(1)Source item name (Zone, Raceway, Component, Cable, Scenario, or Source). Must match the name in the corresponding entity sheet.
toItemName of the target item.
toItemTypeType of the target item (see allowed values below).

Allowed toItemType values

These values are case-insensitive on import:

toItemTypeMeaning
ZONEZone
RACEWAYRaceway
COMPONENTComponent
CABLECable
BEBasic event
SPURIOUSBESpurious basic event
SOURCESource (fire/simulation source)
ScenariosScenario (used in ScenariosTo)

Examples:

  • ZonesTo: A zone row may link to a raceway (toItemType = RACEWAY) or cable (CABLE), etc.
  • ScenariosTo: A scenario row may link to a zone (ZONE) or other items included in that scenario.

A zone cannot link to a basic event: link the basic event to a raceway, cable or component instead. Rows that FRI3D cannot use, such as a zone-to-basic-event row or a name that does not exist, are skipped and the rest of the file is imported. FRI3D lists the skipped rows in a warning afterwards.


Optional Lookup Sheets

  • ItemTypes: Header row only, or one column (e.g. "ItemType") with optional lookup values. Used for reference; may be empty.
  • CableTypes: Lists cable type names (e.g. one per row). Values can be referenced in the Cables sheet type column.

Conventions

  1. Names: Item names (Zone, Raceway, Cable, etc.) must be unique within their type and must match exactly when used in link sheets.
  2. Header row: Row 1 must contain the column headers shown above. Import matches columns by header text (e.g. "Zone", "description", "toItem", "toItemType").
  3. inPRA: Treated as true for: TRUE, true, 1, Y, y. Anything else is false.
  4. Links: Links can be specified in either direction (e.g. Zone → Raceway or Raceway → Zone); only one direction is required. Duplicate links are typically coalesced on import.

How to Use

Import in FRI3D

File → Import → Plant Data reads a PlantX workbook (.xls/.xlsx), an Access database (.accdb) or a FRANX file (.franx) into the open project. Below the file list are three options:

OptionDefaultWhat it does
Merge ItemsOnAdds new items and updates existing ones.
Merge LinksOnAdds the file's links. Existing links are kept, including links made in the Logic Inspector.
Replace LinksOffRemoves the existing links of each kind in the file (zone, raceway, cable, component or scenario links), in all zones, then adds the file's links.
  • Merge Links and Replace Links exclude each other. With both link options off, links are left alone; with Merge Items off, items are left alone.
  • When Replace Links is ticked, its description turns red and FRI3D asks you to confirm before importing. Zones and items that the file does not cover can lose their links.
  • The import is saved into the project. If it fails, FRI3D shows the reason and leaves the open project as it was.

Import Plant Data options

Import (command-line)

Import_PLANTX_XLS.exe <path-to.xlsx> <path-to.fri3d> [options]

Options include --AddItems, --AddLinks, --UpdateLinks, --UpdateInfo, --ReplaceProject, --ClearPRALinks. Use --help for full usage. Merge Items in FRI3D is --AddItems --UpdateInfo, Merge Links is --AddLinks and Replace Links is --UpdateLinks. Unknown options and misspelled values (for example --AddItems flase) are rejected with an error.

Export (API)

Open the project with OpenProject(projectPath, ...), then call:

  • C# / FireEngineLib: Export.ExportPlantToPlantXXls(filePath)
  • DLL: ExportPlantToPlantXXls(filePath) (exported from FireEngineDll)

Returns true if the file was written successfully.


Implementation References

  • Import: CustomImportProjects/Import_PLANTX_XLS/XLSImport.cs (reads this format).
  • Export: FireEngineLib/XLSExport.cs (writes this format from the open FRI3D database).

What's Next?

After importing or exporting plant data:

  1. Import CAD Models - Import 3D geometry to visualize plant components
  2. Configure Fire Scenarios - Set up fire sources and analysis parameters
  3. Run Fire Simulations - Use imported basic events and scenarios for risk assessment
  4. Export to CAFTA - Export plant data and scenarios for PRA integration

XLS Tables

Reach out

If you need help after reading this doc, email us [email protected] for an answer.