Destination Dictionary
The Destination Dictionary is the project-wide data layer on top of the path network. It has four main purposes:
Feed the Message generation layer with message sources, destination group memberships, and progressive disclosure information to enable flexible and concise sign-message generation.
Enrich destination messages with three universal message atom fields that support text or numeric data and enable storing and exporting additional message content, such as external references or translations into other languages.
Enable both individual and bulk editing of destination and group information directly in the user interface.
Enable bulk import and export of destination information in CSV format, supporting both initial import and iterative updates through re-exported and re-imported data.
Starting with WFP 1.3, target points in the path network are no longer just named points. To participate in message generation, a target point should be bound to a destination entry from the Destination Dictionary. Automatic message generation uses these bound destinations, their group memberships, and their message settings when deciding what should appear on each sign.
Destinations
A destination is a leaf entry that can be bound to a target point. Typical examples are a room, gate, department, attraction, lift lobby, or facility.
Each destination can store:
Main message - the primary text or number used by generated messages.
Message 1 - optional additional message content exported as a column in the message schedule report.
Message 2 - optional additional message content exported as a column in the message schedule report.
Level - the level code associated with the destination. When a destination is bound to a target point, the target point's level is the authority.
Priority weight - higher-weight destinations are preferred when message capacity is limited.
Signing distance - optional maximum route distance at which the destination should still be signed.
Active flag - controls whether the destination participates in message generation and is useful for filtering and managing entries.
Only target points bound to destinations can produce destination-backed automatic route messages.
Destination Groups
A destination group collects related destinations so WFP can show a group message instead of many individual destination messages when the context allows it. For example, individual gates can belong to a Gates group, or several departments in the same area can belong to a larger zone.
Groups can store the same three message fields as destinations, plus group-specific planning settings:
Priority weight - can raise the effective priority of the group's member destinations.
Signing distance - can limit when the group and its members are signed.
Expand distance - keeps the group expanded into individual destinations while the sign is still close to those destinations.
Ambiguity behavior - controls whether a group should stay expanded or collapsed when its destinations require different walking directions.
Active flag - inactive groups are ignored for group collapse and capacity merge.
Bind Destinations to Target Points
You can bind a destination to the path network in several ways:
Create a destination from a target point context menu. The new destination is bound to that target point and appears in the Destination Dictionary.
Use a target point context menu to bind an existing destination from the searchable selector.
Create or import destinations in the Destination Dictionary, then drag one or more destinations into the Level View.
Drop a destination onto an existing target point to bind it.
Drop a destination onto empty space in the Level View to create a new target point and bind it immediately.
Select multiple destinations or a destination group, then drag them into the Level View to bind several target points in sequence.
The destination and the target point must belong to the same level. If the destination is unassigned to a level, WFP can bind it to the target point's level. If the destination is already assigned to another level, it can only be dropped on that same level.
To remove bindings, use the destination or group context menus in the Destination Dictionary. Unbinding removes the connection between the destination and target point; it does not delete the destination entry unless you choose a delete action.
Progressive Disclosure
Progressive disclosure is the process of showing broad group messages when a sign is far away, then showing more specific destination messages as the visitor gets closer.
WFP uses these destination-dictionary settings during message generation:
Signing distance limits how far from a destination or group a message can appear. Empty means no signing-distance limit.
Expand distance keeps a group expanded while the route is shorter than the threshold. Empty means the group may collapse as soon as the other checks allow it.
Priority weight helps decide which messages remain selected when a sign face or Fingerpost sign has limited message capacity. Values range from 1 to 100. The default is 50.
Ambiguity behavior can keep a group expanded when its members require different first walking directions from the same decision point.
For a destination that belongs to active groups, WFP uses the strictest effective signing distance and the highest effective priority weight from the destination and its active groups.
Destination Dictionary User Interface
The compact view of the Destination Dictionary appears as a docked tab in the main workspace. It works together with the Level View: selecting or inspecting target points and messages can focus the related dictionary entries, and dictionary entries can be dragged into the Level View.
The full Destination Dictionary editor can be opened from Project → Destination Dictionary.... The full view displays all fields, while the compact view hides the Message 1 and Message 2 fields to conserve space in the dock.
Destination Dictionary Editor
The Destination Dictionary editor is the main place to create, review, organize, bind, import, and export destination entries. Use the narrow docked tab for everyday work beside the Level View, and open the full editor when you need to edit the additional Message 1 and Message 2 fields.
Figure 1. Destination Dictionary Editor - docked tab view
Figure 2. Destination Dictionary Editor - full view
Figures 1 and 2 callouts:
Toolbar - New destination opens the destination editor. Find filters by message text and level. The three icon filters limit the table by active/inactive state, manual-message attachment, and bound/unbound target state.
Levels - Filters dictionary rows by level. Clear filters resets the text, icon, and level filters.
Export CSV / Import CSV - Exports the dictionary CSV bundle, exports a CSV template when the dictionary is empty, or imports destination and membership CSV files.
Group table - The upper table shows All destinations plus destination groups. Expand/collapse controls reveal nested group paths.
Destination table - The lower table shows the destinations in the selected group context. The label above it shows the active subset, such as All destinations.
Splitter - Drag the horizontal divider between the group table and destination table to resize the two areas.
Main message column - Edits the primary destination or group message. The
Tandnmarkers show Text or Number message mode.Status badges - Badges in the Main message column show group membership, manual-message attachments, and bound target points.
Planning columns - Weight, Max Signing Distance, Expand Threshold, Expand on ambiguity, and Active control how destinations and groups participate in automatic message planning.
Tables and columns:
Both tables share the same column layout so group settings and destination settings can be compared vertically.
The full editor includes Message 1 and Message 2 columns. The compact docked tab hides those columns to save space.
Level shows a destination's assigned level. For groups, it shows connected levels derived from member destinations.
Destination rows show placeholders for group-only fields such as Expand Threshold and Expand on ambiguity.
Inline editing:
Edit message cells directly in the table. Use Text mode for names and multilingual text. Use Number mode for whole-number destinations such as room or gate numbers. See editing Message Atom fields below for more details.
Adjust weights and distance fields in place.
Toggle Active to include or exclude an entry from message generation.
Badges and row indicators:
Folder badges show how many groups a destination belongs to.
Hand badges show destinations or groups attached to sign faces as manual messages.
Target badges show bound target point numbers.
PATHon a group means it is shown because a descendant group matches the current filters.
Context menus and selection:
Right-click a destination to edit, group selected destinations, unbind, detach from sign faces, or delete.
Right-click a group to edit, recursively expand/collapse, unbind destinations, detach group or destination manual messages from sign faces, or delete group and/or destination content.
Select a group in the upper table to filter the lower destination table to that group context.
Select destinations in the lower table, then drag them into the Level View to bind them to target points or create new target points.
The Edit action opens a modal editor. For a multi-selection, only changed fields are applied to the selected destinations or groups.
Common workflows:
Use New destination to add a destination entry.
Edit the main message and optional Message 1 / Message 2 fields.
Set planning properties such as priority weight, signing distance, expand distance, ambiguity behavior, and active state when needed.
Select multiple destinations and use Group destinations from the context menu when several destinations should collapse into a shared message.
Edit the new group to set its group message and group-specific planning settings.
Bind destinations to target points by dragging entries into the Level View or by using target point context menus.
Use Export CSV or Import CSV when the dictionary needs to move between WFP and external spreadsheets.
CSV import: See CSV Import and Export below in this document.
Editing Message Atom Fields
Destinations and destination groups use the same message fields: Main message, Message 1, and Message 2. In WFP these fields are Message Atoms, which means each field stores both a value and a type.
Use Text for names, labels, multilingual text, and mixed values such as Gate A. Use Number for whole-number values such as room numbers or gate numbers, especially when cloned levels should offset numeric main messages.
In the Destination Dictionary editor, each message field is edited with the Message Atom editor:
In dictionary rows, double-click a message cell to edit it.
In the properties panel, use the message row directly.
Tmeans Text mode.nmeans Number mode.Use the field's type control or context menu to switch between Text and Number.
When a field is in Number mode, WFP accepts whole numbers only. If the value is not valid, the editor shows a validation message and does not apply the invalid number. Empty optional message fields are treated as unset.
The Main message is the primary value used by generated destination and group messages. Message 1 and Message 2 are optional supporting values, for example when message schedules or downstream workflows need additional message columns.
Message Text and Fonts
Text-mode destination and group message fields support plain Latin text, Cyrillic, Greek, and Turkish through the default WFP font coverage. For Arabic and CJK text, use Project → Project Properties... → Universal Font Order.
Universal Font Order lets you enable and order these fonts:
Arabic
Simplified Chinese (SC)
Traditional Chinese (TC)
Hong Kong Traditional (HK)
Japanese (JP)
Korean (KR)
The order matters because some CJK characters are shared across regions. The first enabled fallback font that contains a character controls the displayed glyph form.
Read-only destination text is shaped for mixed left-to-right and right-to-left text in dictionary rows, selectors, target labels, overlays, schedules, and inspectors. Inline editing still uses the standard text editor in v1.3.0, so Arabic editing is more limited than read-only display.
CSV Import and Export
The Destination Dictionary can be imported and exported as a ZIP bundle or separate CSV files. Use:
Export CSV when the dictionary has entries.
Export CSV Template when the dictionary is empty.
Import CSV to import one CSV file or one ZIP bundle.
By default, a project named hotel.wfp exports:
hotel-dd-destinations.csvhotel-dd-memberships.csv
The suffix defaults to -dd and can be changed in Project → Settings... under Destination Dictionary suffix.
The destinations CSV stores destination and group definitions. The memberships CSV stores group membership and hierarchy rows. Keep the two row types in separate CSV files. If you want to apply both files in one import, put them in the same ZIP bundle.
Although manual editing of the memberships file is entirely possible, it is not recommended because it is highly error-prone. Prefer editing group memberships in the Destination Dictionary Editor within the app.
Import supports these file choices:
A ZIP bundle containing one destinations CSV, one memberships CSV, or both.
A single destinations CSV when you only want to add or update destination and group definitions.
A single memberships CSV when the referenced destinations and groups already exist.
If the CSV files are separate on disk, import them one at a time or ZIP them together before import. A ZIP may contain unrelated files, but it must not contain more than one recognized destinations CSV or more than one recognized memberships CSV.
A memberships CSV in a ZIP can reference definitions supplied by the destinations CSV in that same ZIP.
WFP recognizes CSV files by their headers first, then by filenames ending in -destinations.csv or -memberships.csv.
Use the exported file or template as the starting point for destination and group definitions:
id,kind,level_code,msg_mode,msg,msg_1_mode,msg_1,msg_2_mode,msg_2,weight,signing_distance_m,expand_distance_m,expand_on_ambiguity_override,is_active
The destinations CSV fields are:
id- stable destination or group ID. Existing IDs update matching entries. Empty IDs create new entries only when Create new destinations/groups without IDs is enabled.kind- usedestfor destinations orgroupfor destination groups.level_code- destination level code. Leave empty for no dictionary level. The level will be assigned once the destination is bound to a target point, where the target point's level will be the authority. Grouplevel_codevalues are ignored because group levels are derived from their members.msg_mode,msg_1_mode,msg_2_mode- usetextornumber, matching the field types described in Editing Message Atom Fields. The short formstandnare also accepted.msg,msg_1,msg_2- main message plus two optional secondary messages.msgis required for every destination and group row.weight- whole-number priority weight. Empty defaults to50.signing_distance_m- optional signing distance in meters. Empty means no signing-distance limit.expand_distance_m- optional group expand distance in meters. This field is valid only for group rows.expand_on_ambiguity_override- optional group ambiguity behavior. Useexpand,collapse, or leave empty for the normal behavior. This field is valid only for group rows.is_active- useyesorno. Empty defaults toyes;true/false,on/off, and1/0are also accepted.
Use this header for memberships and hierarchy rows:
relation_kind,from_kind,from_id,to_kind,to_idmembership,group,<group-id>,dest,<destination-id>
The memberships CSV fields are:
relation_kind- the only supported kind ismembershipthat adds a destination to a group. If this column is omitted or empty, rows are treated asmembershipsanyway.from_kind- must begroup.from_id- source group ID.to_kind- usedestfor membership rows.to_id- target destination or group ID.
Import Requirements and Assumptions
CSV files must use the template column names and UTF-8 text. WFP detects comma, semicolon, tab, and pipe delimiters.
Membership rows can reference IDs that already exist in the dictionary or IDs supplied by a destinations CSV in the same ZIP import. Unknown IDs block the import.
If memberships are imported with new definitions, the referenced destination and group rows need IDs in the destinations CSV. Generated IDs from empty
idcells cannot be referenced by memberships.Duplicate destination or group IDs in the destinations CSV block the import.
Values in
numbermessage mode must be valid integers when provided.Distance fields accept meter values such as
30or15.5.Leaving both an optional message mode and its value empty removes that optional message from the imported entry.
Leaving
msg_modeempty uses the existing entry's current mode when the ID already exists, ortextfor a new entry.
The import dialog first builds an import plan and shows a summary plus diagnostics. The project is changed only after you click Confirm import.
The import dialog provides two important options:
Create new destinations/groups without IDs - enabled by default. Rows without IDs create new entries when enabled; otherwise they are skipped with warnings.
Replace/sync existing destinations and groups - disabled by default. Supplied files define the sync scope. A destinations file syncs destination and group definitions. A memberships file syncs memberships and hierarchy rows.
With replace/sync enabled, a memberships-only import does not remove destination or group definitions. When a supplied destinations CSV removes dictionary nodes, WFP also cleans up affected target bindings, manual destination references, memberships, and hierarchy rows.
Next steps
Message generation layer explains how destination entries and groups are used during message generation.
User interface explains where the Destination Dictionary appears in the WFP interface.


