Holarch

Model

Model and Database

LML entities, classes, attributes, relationships and labels, and the Database view that finds, edits, relates, reports on and restores them.

How to use it →

On this page
  1. Overview
  2. Concepts
    1. Entities
    2. Classes
    3. Attributes
    4. Relationships
    5. Labels
    6. Locks, history and comments
  3. How to use it
    1. When and why
    2. Find entities with a query
    3. Create and edit entities
    4. Relate entities
    5. Edit many entities at once
    6. Save and reuse a query
    7. Produce a report
    8. Worked example: CubeSat EO-1
    9. Tips and good practice
    10. Common mistakes
    11. How it connects to other features
  4. The Database view
    1. Top bar
    2. Search toolbar
    3. Filter sidebar
    4. Saved Queries tab
    5. Deleted tab
    6. Table
    7. Pager
    8. Hierarchy Mode
    9. Bulk bar
  5. Query syntax
    1. How typed filters move into the sidebar
  6. Advanced Search Editor
  7. Columns and Settings
    1. Columns
    2. General
  8. Reports
  9. The inspector
    1. Metadata tab
    2. Attributes tab
    3. Relationships tab
    4. Comments tab
  10. The Entity View
    1. Top bar
    2. Main area
    3. Inspector
  11. Attribute types and editors
    1. Distributions
    2. Computable attributes
  12. Entity tools
    1. Transform
    2. Rollup
    3. Find and Replace
    4. Auto Number
    5. Clone Hierarchy
    6. Duplicate
  13. History and revert
  14. Comments
  15. Locks
  16. Delete and restore
  17. View-only access
  18. Keyboard shortcuts and gestures
  19. Options and settings
  20. Messages
  21. Limits
  22. Related

Overview

Everything in a Holarch project is stored in one model built on the Lifecycle Modeling Language (LML). Requirements, functions, assets, interfaces, tests, risks and decisions are all entities. Diagrams, documents, matrices, registers and charts are views of the same entities, so a change made in one view shows everywhere.

The Database is the direct view of that model: a table of every entity in the project with a query language, filters, saved queries, configurable columns, inline editing, bulk tools, reports and a list of recently deleted entities. The Entity View shows everything about one entity. The inspector on the right of the shell shows the selected entity from any page.

This page covers the model concepts, the Database, the Entity View, the inspector, attribute editors, history, comments and locks. To change the classes, attributes, relations and labels themselves, see Schema and Extensions.

Concepts

Entities

An entity is one instance of a class. Every entity has:

  • Name (up to 255 characters) and Number (up to 255 characters, for example 1.2.3). An entity needs at least one of the two.
  • Class, which decides its attributes, the relationships it may have and the labels it may carry.
  • Description, a rich-text field (headings, lists, tables, images, links).
  • Labels, tags that classify an entity without changing its class.
  • Attributes, the class-specific fields (for example a Requirement's Status or an Action's Duration).
  • An optional image, shown in the inspector and used on some diagrams.
  • Metadata: ID (for example e42, unique in the project), Global ID (a stable I_… identifier derived from the project and entity ids), Created and Modified dates, and a Locked flag.

Classes

Classes form a tree. A child class inherits its parent's attributes and relationship targets, and a query for a class includes its subclasses. The main LML classes:

ClassUse it forTypical relationships
ActionFunctions, activities and tasks: what the system doesdecomposed by, performed by (Asset), generates and receives (Input/Output), satisfies (Requirement)
AssetSystems, subsystems, people and organizations: who or what performs actionsperforms, connected by (Conduit), decomposed by
Resource (child of Asset)Consumable or producible assets such as battery charge or data storageproduced by, consumed by, seized by
Input/OutputData, material or energy passed between actionsgenerated by, received by, transferred by
ConduitPhysical or logical links between assets: interfacesconnects to (Asset), transfers (Input/Output)
Statement and RequirementGoals, assumptions and definitions; "The system shall…" statementsdecomposed by, satisfied by, verified by, traced to
ArtifactDocuments, specifications, test suites, presentationssource of, decomposed by (sections)
Test Case (child of Action)Verification activitiesverifies (Requirement), decomposed by (steps)
Task and Transition (children of Action)Project tasks; state transitionsdecomposed by, occurs
RiskThings that may go wrongcaused by, mitigated by, resolves
Characteristic and Measure (child of Characteristic)Parameters, measures of effectiveness, TPMsspecifies
Cost, Time, Location (Orbital, Physical, Virtual), Decision, Issue, EquationCost data, milestones, places, decisions, issues, equationsincurred by, occurred by, located at, alternative, …

Some classes are abstract (for example Location and Connection): they group subclasses and cannot be created directly. Some are hidden (for example Port, which block diagrams create): they are not offered in class pickers. The in-app Help topic LML Classes (schema) lists the full, live set.

Attributes

Attributes are typed fields defined per class. The type decides the editor and how values are searched, sorted, rolled up and exported. See Attribute types and editors for every type.

Relationships can have attributes too. For example decomposed by has Multiplicity, performed by has Amount and receives has Trigger.

Relationships

A relationship connects two entities with a named relation. Every relation has an inverse: "Capture Image Strip performed by Payload Camera" is the same link as "Payload Camera performs Capture Image Strip". Holarch stores the link once and shows it from both ends.

The schema decides which classes each relation may connect. Holarch offers only allowed relations and refuses others, so the model stays valid. Adding the same relationship twice has no effect. The in-app Help topic LML Relationships (schema) lists every relation.

decomposed by / decomposes builds every hierarchy: auto numbering, document outlines, hierarchy and tree diagrams, rollups, and the children of action diagrams.

Labels

Labels tag entities without changing their class: a Requirement labeled Functional Requirement or Performance Requirement, a Statement labeled Assumption, an Artifact labeled Test Suite. Labels can be nested (a parent label with child labels) and can be limited to certain classes. The in-app Help topic Labels (schema) lists every label.

Locks, history and comments

  • A locked entity refuses edits, deletion, class changes and new or removed relationships until someone unlocks it. Comments are still allowed.
  • Every change is recorded in the entity's history with the date and, on the hosted service, the person who made it. Any earlier version can be restored.
  • Comments attach review notes to an entity. They can be edited, resolved, reopened and deleted.

How to use it

When and why

The model is the single source of truth for the whole systems engineering lifecycle. The Database is where you work on the model directly, independent of any diagram or document:

  • During requirements definition: list requirements, check their Status, find ones without a parent, source or verification.
  • During functional analysis and architecture: find functions without a performer, assets without interfaces, and leaf entities that still need decomposing.
  • Before a review: find open comments, unverified requirements and orphans (entities with no relationships), and export a table or definition report.
  • For bulk changes: relabel, renumber, set an attribute or create relationships for many entities at once.

It answers questions such as "Which requirements are still In Review?", "Which functions are not allocated to an asset?" and "What did this requirement say last month?".

Find entities with a query

  1. Open Database at the bottom of the navigation rail.
  2. In the Filter sidebar, under Classes, check Requirement. The table shows requirements only, and the query prefix (the button left of the search box) shows class:"Requirement".
  3. With exactly one class checked, Attribute Filters appears. Click + Add Attribute Filter, choose Status, Is Equal To and In Review, then click Add Filter. A chip such as Requirement: Status = In Review appears and the table narrows.
  4. Type a keyword in the search box, for example power. The table filters as you type (name, number and description).
  5. Change the sort under Ordering, or click a column header. Click the header again to reverse the order.

You can also type the whole query, for example class:Requirement Requirement:"Status=In Review" power, and press Enter. Filter tokens at the start move into the sidebar and the rest stays in the search box. See Query syntax.

Create and edit entities

  1. Click + New Entity in the top bar. The Create Entity dialog opens with Class, Name, Number and Description. When exactly one class is checked in the sidebar, that class is preselected.
  2. Click Create. The new entity is selected and opens in the inspector.
  3. Edit fields in the inspector's Attributes tab, or double-click the Number, Name or Description cell in the table to edit it in place. Press Enter to save or Esc to cancel.
  4. Double-click the row (outside the editable cells) to open the full Entity View.

New requirements start with Status set to Draft. Attributes with a default value in the schema start with that default.

Relate entities

Use whichever fits the task:

  • One relationship, from the inspector: select the entity, open Relationships, find the relation (switch the list to All to see every relation the class supports), click Add ▾ and choose Relate Existing Entities… or Create New….
  • One relationship, from the Entity View: click + Add Relationship, choose the relation (the dialog lists the allowed target classes), click Choose Target… and pick the entity.
  • From the table: add a relationship column (see Columns & Settings) and click + in a cell.
  • Many at once: check rows, click Relationships… in the bulk bar, check one or more relations and one or more targets, and click Apply.

Edit many entities at once

  1. Check the rows to change. Shift+click a second checkbox to check the whole range between them.
  2. Use the bulk bar: Label ▾ toggles a label on all of them; Attributes… sets one attribute (or adds a name or number prefix); Relationships… adds or removes relationships; Transform… changes the class; More ▾ offers Find and Replace…, Rollup…, Auto Number…, Clone Hierarchy…, History…, Add to Document… and Reports….
  3. Each bulk action is one undo step. Press ⌘Z (or Ctrl+Z) to undo it.

Save and reuse a query

  1. Set up filters, search text and columns.
  2. Open the Saved Queries tab and click Save Current Query….
  3. Enter a Name and choose Save to: My Queries (only you, in this browser, available in every project) or Project Queries (Save Query For Everyone On Project) (stored in the project; everyone with access sees it).
  4. Click a saved query's name to apply it. It restores the query, the filters, the columns and Hierarchy Mode.

Produce a report

  1. Narrow the table with a query, or check specific rows.
  2. Click Reports… in the top bar (or More ▾ → Reports… in the bulk bar).
  3. Choose a Report Type, set its options and the File Name, and click Create. The file downloads.

Worked example: CubeSat EO-1

Create the demo with Manage Projects → Project Files ▾ → Create Demo Project. It contains the EO-1 System Requirements Specification (SRS-001), the spacecraft decomposition (1 EO-1 Spacecraft with 1.1 Payload Camera, 1.2 ADCS, 1.3 EPS and so on), the imaging operations flow (OPS.1 Transmit Imaging Plan to OPS.12 Process Image Products) and test cases (TC-01 Ground Sample Distance Test and others).

  1. Find the requirements awaiting approval. Open Database. Check Requirement under Classes, click + Add Attribute Filter, choose Status, Is Equal To, In Review, and click Add Filter. The list includes 1.5 Daily Collection Volume, 1.6 Revisit Time and 3.4 Bus Regulation. This is the same query the Approvals page uses (Requirement:"Status=In Review").
  2. Find unverified requirements. Click × next to the search box and choose Clear All (search and filters). Type class:Requirement AND NOT relationship:"verified by" and press Enter. class:"Requirement" moves into the prefix and NOT relationship:"verified by" stays in the search box. The table lists requirements that no Test Case verifies yet.
  3. Show who satisfies each requirement. Open ⚙ View ▾ → Columns & Settings…, click + Add New Column, set its type to Relationship, choose satisfied by and Entity, and click Apply. The row for 3.4 Bus Regulation shows 1.3.3 Power Distribution Unit. Click + in an empty cell to add a satisfying entity.
  4. Inspect one requirement. Click the row for 2.1 Pointing Accuracy. The inspector shows its metadata; its Comments tab has the review note about TC-04. Open Relationships: verified by lists its test case and satisfied by lists 1.2 ADCS.
  5. Save the work. In Saved Queries, click Save Current Query…, name it Unverified requirements, choose Project Queries, and click Save. Everyone on the project now has it.
  6. Report it. Click Reports…, choose Entity Table Report (XLSX), keep Freeze Panes, and click Create. The spreadsheet uses the columns from step 3.

Tips and good practice

  • Start broad, then narrow. Check a class first: the label list then shows only labels valid for it, and attribute filters become available.
  • Use Hierarchy Mode (⚙ View ▾) to read a decomposition as a tree; entities whose parent is in the list appear under it.
  • Save the queries you use every week as Project Queries, so the team works from the same lists.
  • Number with Auto Number on the root of a decomposition instead of typing numbers by hand. For Actions, Number in action-flow order follows the action diagram.
  • Lock what is approved. Lock baselined requirements or interfaces so accidental edits are refused.
  • Resolve comments instead of deleting them, so the review record stays.

Common mistakes

  • "Nothing matches the current query or filter." A filter from an earlier session is still on. Click × next to the search box and choose Clear All (search and filters), or Clear All in the sidebar.
  • A relation is missing from the list. The schema does not allow that relation for the class, or the inspector is set to Pinned. Switch to All. If the relation should be allowed, add a target in the Schema Editor.
  • An edit is refused with "Locked entities cannot be modified. Unlock them first." The entity (or, for relationships, the entity at either end) is locked. Unlock it with the lock button.
  • Changing the class removes data. Transform removes relationships, labels, attribute values and diagrams the new class cannot have. The dialog lists what will be removed; read it before you click Transform. Undo restores everything.
  • A deleted entity is gone from the table. Open the Deleted tab and click Restore. It comes back with the same id and its relationships to entities that still exist.

How it connects to other features

  • Feeds everything: diagrams, documents, the Traceability Matrix, RVTM, Model Checks, the Simulator and all registers read the same entities. See Traceability and Requirements.
  • Preset pages: Requirements, Approvals, Assets, Items & I/O and Decisions in the navigation rail are the Database with a preset query.
  • Matrix: Matrix in the top bar opens the current query in the Traceability Matrix; Matrix in the bulk bar opens it with the checked rows.
  • Documents: Add to Document… relates the checked entities to a document Artifact. See Documents.
  • Import and export: CSV, Excel, Word and ReqIF imports create entities that appear here; the reports export them. See Import and Export.
  • Schema: classes, attributes, relations and labels come from the project's schema. See Schema and Extensions.

The Database view

Open it from Database at the bottom of the navigation rail. The address can carry ?q=<query>, ?class=<id>, ?label=<id> and ?focus=<entity id> (selects that row).

Top bar

ControlWhat it does
Reports…Opens Download Report for the checked rows, or for the current query when no row is checked.
MatrixOpens the Traceability Matrix with the current query on its axis.
+ New EntityOpens Create Entity.

Search toolbar

ControlWhat it does
Query prefix buttonShows the query built from the sidebar filters and the ordering, for example order:modified- class:"Requirement". Click it to open the Advanced Search Editor.
Search boxFree text or query syntax. Filters as you type (after a short pause). Enter moves leading filter tokens into the sidebar.
×Menu: Clear Search (search text only) or Clear All (search and filters).
?Opens Search Syntax, a table of query examples.
⚙ View ▾Hierarchy Mode, Columns & Settings…, Entities per page (30, 50, 100, 500), Reset View and Help.

Filter sidebar

The sidebar has three tabs: Filter, Saved Queries and Deleted. On the Filter tab, each section can be collapsed (▾/▸) and has a Clear link when it has a selection. Clear All at the top clears every filter. Counts show how many entities match each item; items with no entities are dimmed.

SectionContents
OrderingSort key: Modified, Created, Diagram Modified, Most Relationships, Name, Number, Class or Unsorted (creation order), plus a ▲/▼ direction button. Sorting by a column header adds that column as a sort key.
AdditionalDiagram, Leaf (no children), Orphan (no relationships), Root (no parent), Top (root with children), Locked.
ClassesThe class tree with color swatches and counts (a class count includes its subclasses). Hidden classes are not listed.
Attribute FiltersAppears when exactly one class is checked. + Add Attribute Filter opens a dialog with Attribute (Name, Number and every attribute of the class except quality and file attributes), Operator (Is Equal To, Is Greater Than, Is Greater/Equal To, Is Less Than, Is Less/Equal To) and Value (a choice list for enumeration, multiselect and Yes/No attributes; text otherwise, with hints such as e.g. 2 hours and yyyy-mm-dd). Click a chip to edit it; × removes it.
LabelsWith classes checked, every label valid for them; otherwise the labels in use (with their parent labels). Nested labels are indented.
DiagramsDiagram types that exist in the project, with the number of entities that have one.
RelationshipsRelations in use, with the number of entities that have one.

Within Classes, Labels, Diagrams and Relationships, checked items combine with OR (any of them). Items under Additional and attribute filters each must match (AND). Sections combine with AND.

Saved Queries tab

  • Save Current Query… opens Save Current Query with Name and Save to (My Queries or Project Queries (Save Query For Everyone On Project)). It saves the full query, the filters, the columns and Hierarchy Mode.
  • My Queries are stored in this browser and are available in every project you open in it.
  • Project Queries are stored in the project (undoable) and shared with everyone who can open it.
  • On each query: click the name to apply it; ✎ renames; 🔧 opens it in the Advanced Search Editor and saves the result back on Update; × deletes. Drag a query by ⋮⋮ to reorder.

Deleted tab

Lists recently deleted entities, newest first, with their class, name, deletion date and number of relationships.

  • Restore brings one entity back with the same id, its diagrams, its comments and its relationships to entities that still exist.
  • Restore All restores the whole list.
  • Empty clears the list after confirmation. Undo still brings the list back.

Table

  • Columns: the defaults are Number, Name, Class, Description, Labels and Modified. Configure them in Columns & Settings.
  • Name cell: links to the Entity View and shows 🔒 for a locked entity, a suspect-link mark for a requirement with suspect links, and 💬 when the entity has unresolved comments.
  • Click a row to select it and show it in the inspector. Double-click a row to open the Entity View.
  • Double-click a Number, Name or plain-text Description cell to edit it in place. Enter saves (Shift+Enter adds a line break in a description); Esc cancels. Rich-text descriptions are edited in the inspector or Entity View.
  • Relationship cells list the related entities as links and have + to add a relationship (relationship columns that follow another column have no +).
  • Header: click to sort by that column; click again to reverse. Drag a header's right edge to resize (minimum 40 px); double-click the edge to reset the width.
  • Checkboxes: the header checkbox checks every row on the page. Shift+click checks or unchecks a range.

Pager

The bar under the table shows the number of entities (and, in Hierarchy Mode, the rows shown). With more than one page it shows ‹ Prev, Page N of M and Next ›.

Hierarchy Mode

⚙ View ▾ → Hierarchy Mode shows decomposition as a tree. Entities whose parent is not in the result are top rows; click ▸ to expand children (children are shown even if the query would exclude them). The setting is saved with saved queries.

Bulk bar

Appears when at least one row is checked and shows N selected.

ControlWhat it does
OpenOpens the Entity View (one row checked).
Label ▾Lists labels valid for every checked class. A ✔ marks labels all checked entities already have; choosing it removes the label from all of them, otherwise it adds it to all.
Attributes…Set attribute on N entities: choose Description, Name prefix, Number prefix, Image or any attribute shared by all checked classes (quality attributes excepted), enter the Value, click Apply. The value replaces the attribute on every entity; prefixes are added in front of the existing name or number.
Relationships…Relationships for N entities: Action (Add relationships or Remove relationships), check Relationships (with "(n/m classes)" when not every checked class allows it), search and check Target Entities, then Apply. The summary shows relationships × targets × sources. Pairs the schema does not allow are skipped and counted.
Transform…Changes the class. See Transform.
MatrixOpens the Traceability Matrix with the checked rows.
DuplicateCopies each checked entity (class, number, description, attributes, labels, image and relationships) as "Copy of …".
Lock / UnlockLocks all checked entities, or unlocks them when any is locked.
More ▾Find and Replace…, Rollup… (one row with children), Auto Number… (one row), Clone Hierarchy… (one row), History… (one row), Add to Document…, Reports….
DeleteDeletes the checked entities and their relationships after confirmation. Locked entities are skipped.
DeselectUnchecks all rows.

Add to Document… relates the checked entities to a document with source of. Choose an Artifact under Specify an Existing Artifact Root, or keep — New Document — and enter a name under or Specify New Artifact Information (a new Artifact labeled Document is created).

Query syntax

The same syntax works in the Database search, saved queries, Dashboard entity tables, matrix query axes and other query fields.

QueryMatches
powerName, number or description contains "power" (not case-sensitive)
"power subsystem"The exact phrase
number:2.3, number:5.*Number, with * as a wildcard
name:Gen%Name, with % as a wildcard
description:batteryDescription contains the text
id:e12The entity with that id
class:RequirementClass, including subclasses. Camel case works without quotes: class:TestCase
label:"Functional Requirement"Entities with that label
is:root, is:leaf, is:orphan, is:top, is:diagram, is:locked, is:commentedNo parent; no children; no relationships; root with children; has a diagram; locked; has unresolved comments
relationship:"verified by"Has at least one relationship of that type
diagram:LML_ACTIONHas that diagram type. Codes: LML_ACTION, LML_ASSET, LML_SPIDER, LML_HIERARCHY, LML_RISK, LML_TIMELINE, LML_SEQUENCE, TREE, SYSML_ACTIVITY, SYSML_BDD, SYSML_IBD, SYSML_CLASS, SYSML_PACKAGE, SYSML_PARAMETRIC, SYSML_STATE_MACHINE, SYSML_USE_CASE, SYSML_REQUIREMENT, IDEF0, N2, LAYER, RADAR, or a diagram key such as ffbd
Requirement:"Status=Draft"Attribute test with =, >, <, >=, <=. The class token may be camel case: TestCase:"Status=Passed"
Risk:"Probability>=50"Numeric attribute
Action:"Duration>2 hours"Duration attribute (units: second, minute, hour, day, week, month, year; hours when omitted)
Physical:"Coordinates=38.9,-77.0"Geopoint attribute (equality only)
order:name, order:name-Sort; a trailing - sorts descending. Also order:number, order:class, order:created, order:modified, order:diagrammodified, order:related, order:unsorted
AND, OR, NOT, ( )Combine terms. Two terms side by side mean AND.

How attribute tests compare values:

  • Yes/No and quality attributes: true, yes or 1 mean Yes.
  • Numbers: compared numerically; a distribution is compared by its mean.
  • Dates: parsed as dates, for example Task:"Start>2026-01-01".
  • Multiselect: = is true when any chosen value matches.
  • File attributes: =yes matches entities with a file.
  • Text and choices: compared without regard to case.
  • Name and Number work as attribute names for any class: Requirement:"Number>=3".

Example: class:Requirement AND NOT relationship:"verified by" lists requirements without a test.

How typed filters move into the sidebar

When you press Enter, tokens at the start of the search (order:, is:, class:, label:, diagram:, relationship: and class attribute tests, optionally joined by AND, or a parenthesized OR-group of one kind such as (class:Risk OR class:Issue)) move into the sidebar filters. The first token that is not a filter, and everything after it, stays in the search box. A trailing OR after the filters sets Combine the prefix and the search text with OR.

Advanced Search Editor

Click the query prefix button (or 🔧 on a saved query) to build the prefix with forms.

FieldContents
Ordering Options and SortSort key and Ascending or Descending.
AdditionalDiagram, Leaf, Orphan, Root, Top, Locked.
Class Options, Label Options, Diagram Options, Relationship OptionsMulti-select lists (⌘/Ctrl+click for several).
Attribute OptionsThe current attribute filter chips, with × to remove. Add new ones from the sidebar after checking one class.
Combine the prefix and the search text with ORMatches entities that pass the filters or the search text, instead of both.
Search textThe free text after the prefix.
Prefix ExtractorMoves filter tokens typed in Search text into the form.
Clear PrefixClears every filter in the form.
Prefix:Live preview of the resulting prefix.

Click Update to apply.

Columns and Settings

⚙ View ▾ → Columns & Settings… opens Database Columns & Settings.

Columns

Each row is one column, in display order:

  • Type: Metadata, Attribute or Relationship.
  • Metadata columns: Entity (number and name as a link), Number, Name, Class, Description, Labels, ID, Global ID, Created, Modified.
  • Attribute columns: any attribute, listed as "Class · Attribute". The list covers the checked classes, or every class in use.
  • Relationship columns: the relation; the attribute of the related entities to show (Entity or any metadata or attribute); an optional Relationship Attribute (for example Multiplicity on decomposed by), shown instead of the entity; and Parent: — row entity, or another relationship column to follow. Following a column chains relationships, for example "satisfied by" then "performed by" lists the assets that perform the functions that satisfy each requirement.
  • Custom title replaces the column heading; ↺ resets it.
  • ↑ / ↓ move the column; + adds a column after it; × removes it.
  • + Add New Column adds one at the end; Default Columns restores the six defaults.

General

  • Text alignment: Align Text Left, Align Text Center or Align Text Right.
  • Row height: a slider from 1× to 16×.
  • Save Scroll Position: reopening the Database returns to the last scroll position.

Click Apply. At least one column must remain. Column settings, sort, widths, page size and Hierarchy Mode are stored in this browser. ⚙ View ▾ → Reset View restores every default.

Reports

Reports… opens Download Report. The header shows how many entities it covers and whether they are the checked rows or the current query. Choose a Report Type, set its options, edit the File Name (default: the project or entity name plus "Report") and click Create.

Report TypeOutput and options
Basic Tabular Output (CSV)Number, Name, Description, Class, then chosen columns. Include attributes (every attribute of the listed classes; same-named attributes show their class). Include: Comments, Created On, Entity URL, Global ID, ID, Labels (on by default), Modified On, Relationships (one column per relation in use), Rich Text (description as HTML instead of plain text), Locked. Sort By: Number, Class, ID, Name or Hierarchical. Text starting with =, +, - or @ is prefixed with an apostrophe so spreadsheets treat it as text.
Entity Table Report (XLSX)The Database columns, with a Level column. Freeze Panes (on), Hierarchical (decomposition children under their parents), No Merged Cells, Rollup (rolled-up NUMBER / DURATION columns).
Entity Definition Report (XLSX)One block per entity: Class, Number, Name, Description, Labels, every attribute and every relationship. Freeze Panes (on), Global IDs, Id, No Merged Cells.
Entity Relationship Matrix (XLSX)Rows are the entities, columns the related entities. Relationship, Cell value (X (no attribute) or a relationship attribute), Freeze Panes, Fills (green cells), Global ID.
History Report (XLSX)One row per recorded change: Date, ID, Global ID, Entity, Version, Change, Field, From, To. Freeze Panes, Global ID, ID, Version Number.
Comment Report (XLSX)Offered when the entities have comments. One row per comment: Class, Name, Number, Description, Comment, User, Date, Resolved.
Hierarchical Report (DOCX)Offered for exactly one entity. The decomposition as headings by level with a contents list, descriptions, and pictures of the chosen Diagrams types where the entity has one (Hierarchy is on by default).
JSON export (the … Export (JSON) entry)A project JSON file with the entities. Include Related Entities, Include Comments (on), Include History, Include Diagrams (on), Include Schema, Schema Only. Import it through Manage Projects → Project Files ▾ → Import Project (.json)….
Holarch INNO ZIP OutputA .inno zip with entities.json (entities, relationships, diagrams, comments and the schema) and every attached file and image under files/.
ReqIF Output (.reqif)ReqIF 1.2 XML: one type per class, string, XHTML and enumeration attributes, relationships as relations, and the decomposition as a specification hierarchy.
Print TableOpens the browser print dialog.

See Import and Export for how these files import into other tools and back into Holarch.

The inspector

Selecting an entity in the Database, a diagram, a document or a register shows it in the inspector on the right of the shell. In the Database the inspector header shows the class badge, the entity label, Open ▾ and × (Deselect (Esc)). The panel has four tabs.

Open ▾ lists every view the entity can open in: Entity View, every diagram type that applies to its class, Document View (Artifacts and Statements), Simulator (Actions), Test Center (Test Cases), Open Matrix, Open Chart or Open Simulation Results where they exist, and Traceability Matrix.

Metadata tab

  • Image: click the class placeholder (Upload Image) to add an image. With an image: click it to view full size; Download, Replace, Remove.
  • A suspect-link notice for requirements with suspect links (see Requirements).
  • Global ID, Project ID, ID, Class (with its parent classes, for example "Statement / Requirement"), Modified, Created, and Locked when locked.
  • Labels: applied labels first (with ✓), then every other label valid for the class as a nested list. Click a label to add or remove it.

Attributes tab

  • Approval controls and the suspect notice for requirements (see Requirements).
  • Number, Name and Description (rich text; click to edit).
  • Every attribute of the class with its editor. For requirements, the fields an author sets come first (Priority, Status, Verification Method, Verification Level, Owner, Source, Criticality, TBD/TBR, TBD Owner, TBD Due Date), then the rest.
  • Quality criteria and the Quality Score sit in a collapsed Quality group whose summary shows the score and "N of M criteria met" (or "not checked yet"). Each criterion can show the checker's notes. See Requirements.

Hover an attribute's label to see its description.

Relationships tab

  • A selector: Pinned (relations pinned for this class), Active (relations with at least one link) or All (every relation the class allows, plus any in use).
  • Each relation shows its name, a target hint (Children, Parents, a class name, or Many) and the number of links. Click the name to expand or collapse it.
  • 📌 pins or unpins the relation for every entity of this class (stored in this browser). By default the trace relations are pinned: decomposed by, decomposes, satisfied by, satisfies, sourced by, source of, traced from, traced to, verified by and verifies (Statements and Requirements leave out satisfies, source of and verifies).
  • Add ▾: Relate Existing Entities… (search, check several, Relate Selected) or Create New… (creates an entity of an allowed class and relates it).
  • Each linked entity has a link, a ⚠ suspect mark when applicable, Attributes for relationship attributes, and × to remove the relationship.
  • 🔒 replaces Add ▾ when the entity is locked, or when the current view manages that relation itself ("Read-only here: this relationship is managed by the current view.").

Comments tab

The tab shows the number of unresolved comments. See Comments.

The Entity View

Open it by double-clicking a Database row, clicking an entity name anywhere, or choosing Entity View from Open ▾. The address is entity/<id>.

Top bar

  • History… opens the full history.
  • The lock button (🔒 to lock, 🔓 to unlock).
  • Open ▾: every view the entity can open in (see The inspector).
  • More ▾: Reports…, Auto Number…, Duplicate, Rollup… (when the entity has children), Transform…, Clone Hierarchy…, Find and Replace… (the entity and all its descendants), Delete Entity….
  • The ✦ AI control's ▾ lists the AI tools for this entity.

Main area

  • Header: class badge, Name and a 🔒 Locked chip when locked.
  • Number, Class and Labels (chips with × to remove, + Label to add). Changing Class runs Transform: when something would be removed, the Transform dialog opens first.
  • Description (rich text), with the class description below it.
  • For requirements: the suspect-link banner (Review…) and the approval controls (Approve, Reject…, Reopen).
  • Attributes card, ordered as in the inspector, with the collapsed Quality group.
  • Relationships card with the total count, tabs Pinned, Active and All, + Add Relationship, 📌 per relation, + per relation (Relate Existing Entities… or Create New…), relationship attributes edited in place, and × to remove a link.

Inspector

Titled Comments & Metadata, with Comments and Metadata tabs, a Recent History list (the last 8 changes, each with date, author and a summary such as "attribute Status, metadata Name") and All History….

A deleted entity's address shows "This entity was deleted" with Restore Entity to Project; an unknown id shows "Entity not found". Both offer Back to Database.

Attribute types and editors

TypeEditor and behavior
TEXTSingle-line text.
BIG_TEXTMulti-line text that grows as you type (up to 400 px high).
NUMBERA number, or a distribution starting with = (see Distributions).
PERCENT0 to 100. Values outside the range are clamped, with a message.
ENUMERATIONA choice list starting with Select an option.... With a workflow on the attribute, only the current value and the allowed next values are offered, marked ⇢ workflow.
MULTISELECTCheckboxes; values are saved sorted. "No choices defined (edit the attribute in the Schema Editor)." when empty.
BOOLEANA checkbox labeled Yes or No.
DATETIMEDate and time picker.
DURATIONA number or distribution plus a unit: Seconds, Minutes, Hours, Days, Weeks, Months, Years.
GEOPOINTLatitude (−90 to 90) and Longitude (−180 to 180), with Open in map ↗ (OpenStreetMap). "No Geopoint" when empty.
URIA link with Visit ↗. Text without a scheme gets https:// added (IP and MAC addresses are kept as typed). Only http, https and mailto links open.
FILEUpload… or Replace…, Preview (images, PDFs and text files), the file name as a download link, and Remove File.
HTMLRich text, like the description.
EQUATIONLaTeX text, for example E = mc^2.
COMPUTABLEA computed value. See Computable attributes.
MULTIPLICITYn, n..m, n..* or *.
QUALITYNot checked, Yes or No, set by the Quality Checker. Choosing a value by hand is a manual override marked manual, kept when the checker re-runs; Auto (re-check) removes the override.
QUALITY_SCORERead-only percentage from the Quality Checker. "Run the Quality Checker" when not checked; "Quality: stale — re-run" after the text changed.
USER_TEAMText naming a person or team.

Values save when the field loses focus or the choice changes. Each save is one undo step.

Distributions

Number and duration attributes (for example an Action's Duration or a Cost's Amount) accept a distribution. The Simulator samples it on every run; timelines, rollups and searches use its mean. Type = to see the list; the hint under the field explains the parameters.

DistributionFormulaParameters
Beta=beta.dist(α,β)α > 0 and β > 0
Binomial=binom.dist(n,p)n a positive whole number, p greater than 0 and at most 1
Exponential=expon.dist(λ)λ > 0 is the rate; the mean is 1/λ
Gamma=gamma.dist(k,θ)k > 0 and θ > 0
Log Normal=lognorm.dist(μ,σ)μ > 0 and σ > 0
Normal=norm.dist(μ,σ)σ > 0
Poisson=poisson.dist(λ)λ > 0
Triangular=triang.dist(a,b,c)a less than b, and c between a and b
Uniform=uniform.dist(a,b)b > a
Weibull=weibull.dist(λ,k)λ > 0 and k > 0

Durations cannot be negative: a sampled value below 0 is drawn again, so a normal duration is truncated at 0.

Computable attributes

A COMPUTABLE attribute holds an equation over attributes of other entities.

  1. Click Define… (or Edit…). The dialog opens.
  2. Under Variables, click + Add Variable. Give it a Variable Name, click Choose Entity… and pick the entity, then choose its attribute (number, percent, duration or computable attributes; durations count in hours, distributions as their mean).
  3. Enter the Equation, for example mass * 9.81. Supported: + - * / ^ %, parentheses, sqrt, abs, sin, cos, tan, asin, acos, atan, log (base 10), ln, exp, floor, ceil, round, min, max, pow, and the constants pi and e.
  4. Set Decimal places (0 to 10, default 2) and Result Units.
  5. Click Compute to test, then Save.

The value recomputes when a variable's attribute changes (including chains of computables) and when the project opens. Recompute forces it.

Entity tools

Transform

Transform Class changes the class of one or more entities.

  1. Choose the Class. Check Transform Children to also change the decomposition descendants.
  2. Read the summary: "N entities will become Class." and what will be removed — relationships not allowed for the new class, labels, attribute values and diagrams — or "Nothing else changes."
  3. Click Transform.

Changing the class in the Entity View runs the same check and opens this dialog only when something would be removed.

Rollup

The Rollup dialog (titled with the entity) computes a value over the decomposition leaves.

  • Attribute: any NUMBER, DURATION, ENUMERATION or MULTISELECT attribute of the class.
  • Duration units (durations only): Auto (largest unit used) or a fixed unit from Milliseconds to Years.
  • Decimal places (default 3).
  • Roll Up Only Visible Entities (available when opened from a view that filters entities).

Numbers are summed over the leaves, each multiplied by its decomposition Multiplicity or Quantity (a distribution counts as its typical value). Text values with units (for example "2.5 kg") are converted and summed. Durations are summed. Enumerations and multiselects take the most frequent value; on a tie, choose the value. The result shows "N of M leaf entities have a value." Apply Value to Attributes writes the value to the entity.

Find and Replace

Find and Replace (N entities) searches Name, Number and Description.

  • Type in Find and Replace with. Match Case makes the search case-sensitive. Show Editable Only (on) skips locked entities.
  • Results lists every match with the entity, the field, the instance number and the text around it. Uncheck matches to skip them; Check All toggles all.
  • Replace changes the checked matches. In rich-text descriptions only the text changes, never the formatting.

Auto Number

The Auto Number dialog (titled with the entity) numbers the decomposition below an entity.

  • Prefix (default: the entity's current number, or 1) becomes the entity's number; children become Prefix.1, Prefix.2, and so on.
  • Number in action-flow order (Actions): children are numbered in the order of the action diagram.
  • Number direct children only (one level).

Clone Hierarchy

The Clone dialog (titled with the entity) copies the entity, its decomposition and their diagrams as new entities named by Entity Name (default "Copy of …"). For Actions, Also clone simulation entities (performing Assets and Costs). Relationships to entities outside the clone keep pointing at the originals.

Duplicate

Copies one entity (class, number, description, attributes, labels, image and all relationships with their attributes) as "Copy of …". The copy is not locked.

History and revert

Every create, edit, relationship change, delete and restore is recorded. Open the history with History… in the Entity View top bar, All History… in its inspector, or More ▾ → History… in the Database bulk bar.

The History dialog lists versions newest first. Each version shows Version N, the date, how long ago, the author on the hosted service, and a table of changes by type:

TypeMeaning
CREATED, REMOVED, RESTOREDThe entity was created, deleted or restored
METADATAName, number, labels or another field changed
DESCRIPTIONThe description changed (Show Diff shows a word diff)
CLASS_IDThe class changed
IMAGE_IDThe image changed
ATTRIBUTEAn attribute value changed (from → to)
RELATIONSHIPA relationship was added or removed
RELATIONSHIP_ATTRIBUTEA relationship attribute changed
WORKFLOWApproval, suspect-link or quality bookkeeping changed
QUALITYQuality Checker notes changed

Revert to version N undoes every later change to this entity, its fields and its relationships, in one step. Undo is available.

Comments

Comments live on the Comments tab of the inspector, in the Entity View's inspector and in a document's comments pane.

  • Type in Add a comment… and click Add Comment. The comment records the date and your account name.
  • ✎ edits (the comment is marked "(edited)"), ✓ resolves, ↺ reopens and × deletes.
  • Resolved comments are hidden; Show Resolved (N) includes them.
  • An entity with unresolved comments shows 💬 in the Database and a count on the Comments tab. is:commented finds them.
  • Comments are allowed on locked entities. Viewers read comments but cannot add or change them ("View only: comments need edit access.").
  • The Dashboard's comments widget lists comments across the project, and Reports… → Comment Report (XLSX) exports them.

Locks

  • Lock an entity with the 🔒 button in the Entity View top bar, or check rows and click Lock in the Database bulk bar. Unlock reverses it; the inspector of a locked entity shows "🔒 Locked entity — unlock it to edit." with Unlock.
  • A locked entity refuses edits to its fields, class changes, deletion, and adding or removing relationships at either end. Its editors are disabled.
  • Anyone with edit access can lock and unlock. Locks are recorded in history.
  • is:locked and the Locked filter find locked entities.

Delete and restore

  • Delete from the bulk bar (Delete), the Entity View (More ▾ → Delete Entity…), or a diagram or document. Locked entities are not deleted.
  • Deleted entities go to the Deleted tab with their relationships, diagrams and comments. Restore returns them with the same id.
  • Undo (⌘Z) also reverses a delete.

View-only access

On the hosted service, a project member with the viewer role can open every page, search and run reports, but cannot change anything. Editors are disabled, and any attempted change shows "View only: ask an owner for edit access."

Keyboard shortcuts and gestures

Key or gestureWhereAction
EnterSearch boxApply the query and move filter tokens into the sidebar
EscDatabaseDeselect the selected row (when not typing and no dialog is open)
ClickTable rowSelect and show in the inspector
Double-clickTable rowOpen the Entity View
Double-clickNumber, Name or Description cellEdit in place
Enter / Shift+Enter / EscCell being editedSave / line break (description) / cancel
Shift+clickRow checkboxCheck or uncheck a range
Click / click againColumn headerSort / reverse
Drag / double-clickColumn header edgeResize / reset width
Drag ⋮⋮Saved queryReorder
⌘+Z / ⌘+Shift+ZAnywhereUndo / redo (Ctrl on Windows and Linux)

All shortcuts: Keyboard Shortcuts.

Options and settings

Stored in this browser:

  • Database sort and direction, columns, column widths, alignment, row height, entities per page, Hierarchy Mode, collapsed sidebar sections and Save Scroll Position (⚙ View ▾ → Reset View clears them).
  • My Queries.
  • Pinned relations per class, the inspector's Pinned/Active/All choice, the Entity View's relationship tab, expanded relation groups, Show Resolved and the open state of the Quality group.

Stored in the project: Project Queries, entities, relationships, comments, history and the Deleted list.

Messages

MessageMeaning and fix
"Nothing matches the current query or filter."No entity passes the search and filters. Clear them with × → Clear All (search and filters).
"Create an entity or import a CSV."The project has no entities yet.
"Removed N column(s) whose attribute or relation no longer exists."A column referred to a deleted attribute or relation; it was dropped.
"Keep at least one column."The column list cannot be empty.
"No labels shared by the selected classes"The checked entities' classes have no label in common.
"Choose at least one relationship and one target."Relationships… needs both before Apply.
"Created N relationship(s), skipped M not allowed by the schema"Some source and target pairs are not allowed for that relation.
"Class cannot have "relation""The row's class does not allow that relationship column's relation.
"Give the entity a name or a number."Name and Number cannot both be empty.
"Number is too long. Use 255 characters or fewer."Shorten the number.
"Locked entities cannot be modified. Unlock them first."Unlock the entity (or the entity at the other end of the relationship).
"Locked entities cannot be deleted. Unlock them first."Locked entities in a delete were skipped.
"Locked entities cannot be transformed."Unlock before changing the class.
"A document can be transformed only when the entity has at most one child."Shown in Transform when the target is a document class.
"View only: ask an owner for edit access."Your role on this project is viewer.
"Image exceeds the N MB limit." / "Files over N MB are not stored; only the name is kept."The file is larger than the per-file limit.
"Enter a number." / "Percent must be at least 0." / "Percent must be at most 100."Percent field input.
"Not a valid number." / "Not a valid distribution." / "Expected the form =norm.dist(mu, sigma)" / "Parameters must be numbers. Enter a number for each parameter."Number or distribution input; also parameter checks such as "Sigma has to be positive." or "B has to exceed A."
"Use n, n..m or n..*"Multiplicity input.
"Invalid variable name "x": it needs a letter, can't start with a digit, and can't be "i" or "e"." / "Variable "x" has no entity (it may have been deleted)." / "Unknown name "x"" / "The result is Infinity or undefined."Computable attribute errors.
"Nothing to roll up: no entity in this hierarchy has a value for the chosen attribute."Rollup found no values on the leaves.
"Class has no NUMBER, DURATION, ENUMERATION or MULTISELECT attributes to roll up."Rollup is not possible for this class.
"No matches." / "Nothing selected."Find and Replace found nothing, or no match is checked.
"No recorded changes for this entity yet."The history is empty.
"Preview is not available for this file format."Download the file instead.
"Select a report type."Choose a Report Type before Create.

Limits

  • Name and Number: 255 characters each.
  • Entities per page: 30, 50, 100 (default) or 500.
  • Entity pickers and bulk target lists show the first 300 matches; type to narrow them.
  • The Deleted list keeps the 200 most recent deletions.
  • A project keeps up to 4,000 history records; beyond that the oldest 1,000 are dropped.
  • Undo keeps the last 200 steps of the session.
  • Relationship columns can follow up to 8 parent columns.
  • Images and files: the hosted service's per-file limit applies (25 MB unless your administrator set another value). PNG, JPEG and WebP images wider or taller than 4,000 px are scaled down when stored.
  • The Comment Report's User column currently shows me instead of the author's name; the author is shown in the app.
  • The Workflow Lock option is recorded with a transition but does not yet lock the entity automatically; lock it by hand.

Last updated October 7, 2026