Model
Model and Database
LML entities, classes, attributes, relationships and labels, and the Database view that finds, edits, relates, reports on and restores them.
On this page
- Overview
- Concepts
- How to use it
- The Database view
- Query syntax
- Advanced Search Editor
- Columns and Settings
- Reports
- The inspector
- The Entity View
- Attribute types and editors
- Entity tools
- History and revert
- Comments
- Locks
- Delete and restore
- View-only access
- Keyboard shortcuts and gestures
- Options and settings
- Messages
- Limits
- 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 stableI_…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:
| Class | Use it for | Typical relationships |
|---|---|---|
| Action | Functions, activities and tasks: what the system does | decomposed by, performed by (Asset), generates and receives (Input/Output), satisfies (Requirement) |
| Asset | Systems, subsystems, people and organizations: who or what performs actions | performs, connected by (Conduit), decomposed by |
| Resource (child of Asset) | Consumable or producible assets such as battery charge or data storage | produced by, consumed by, seized by |
| Input/Output | Data, material or energy passed between actions | generated by, received by, transferred by |
| Conduit | Physical or logical links between assets: interfaces | connects to (Asset), transfers (Input/Output) |
| Statement and Requirement | Goals, assumptions and definitions; "The system shall…" statements | decomposed by, satisfied by, verified by, traced to |
| Artifact | Documents, specifications, test suites, presentations | source of, decomposed by (sections) |
| Test Case (child of Action) | Verification activities | verifies (Requirement), decomposed by (steps) |
| Task and Transition (children of Action) | Project tasks; state transitions | decomposed by, occurs |
| Risk | Things that may go wrong | caused by, mitigated by, resolves |
| Characteristic and Measure (child of Characteristic) | Parameters, measures of effectiveness, TPMs | specifies |
| Cost, Time, Location (Orbital, Physical, Virtual), Decision, Issue, Equation | Cost data, milestones, places, decisions, issues, equations | incurred 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
- Open Database at the bottom of the navigation rail.
- 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". - 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 Reviewappears and the table narrows. - Type a keyword in the search box, for example
power. The table filters as you type (name, number and description). - 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
- 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.
- Click Create. The new entity is selected and opens in the inspector.
- 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.
- 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
- Check the rows to change. Shift+click a second checkbox to check the whole range between them.
- 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….
- Each bulk action is one undo step. Press ⌘Z (or Ctrl+Z) to undo it.
Save and reuse a query
- Set up filters, search text and columns.
- Open the Saved Queries tab and click Save Current Query….
- 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).
- Click a saved query's name to apply it. It restores the query, the filters, the columns and Hierarchy Mode.
Produce a report
- Narrow the table with a query, or check specific rows.
- Click Reports… in the top bar (or More ▾ → Reports… in the bulk bar).
- 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).
- 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"). - 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 andNOT relationship:"verified by"stays in the search box. The table lists requirements that no Test Case verifies yet. - 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.
- 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.
- 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. - 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
| Control | What it does |
|---|---|
| Reports… | Opens Download Report for the checked rows, or for the current query when no row is checked. |
| Matrix | Opens the Traceability Matrix with the current query on its axis. |
| + New Entity | Opens Create Entity. |
Search toolbar
| Control | What it does |
|---|---|
| Query prefix button | Shows 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 box | Free 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.
| Section | Contents |
|---|---|
| Ordering | Sort 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. |
| Additional | Diagram, Leaf (no children), Orphan (no relationships), Root (no parent), Top (root with children), Locked. |
| Classes | The class tree with color swatches and counts (a class count includes its subclasses). Hidden classes are not listed. |
| Attribute Filters | Appears 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. |
| Labels | With classes checked, every label valid for them; otherwise the labels in use (with their parent labels). Nested labels are indented. |
| Diagrams | Diagram types that exist in the project, with the number of entities that have one. |
| Relationships | Relations 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.
| Control | What it does |
|---|---|
| Open | Opens 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. |
| Matrix | Opens the Traceability Matrix with the checked rows. |
| Duplicate | Copies each checked entity (class, number, description, attributes, labels, image and relationships) as "Copy of …". |
| Lock / Unlock | Locks 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…. |
| Delete | Deletes the checked entities and their relationships after confirmation. Locked entities are skipped. |
| Deselect | Unchecks 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.
| Query | Matches |
|---|---|
power | Name, 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:battery | Description contains the text |
id:e12 | The entity with that id |
class:Requirement | Class, 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:commented | No 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_ACTION | Has 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,yesor1mean 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:
=yesmatches entities with a file. - Text and choices: compared without regard to case.
NameandNumberwork 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.
| Field | Contents |
|---|---|
| Ordering Options and Sort | Sort key and Ascending or Descending. |
| Additional | Diagram, Leaf, Orphan, Root, Top, Locked. |
| Class Options, Label Options, Diagram Options, Relationship Options | Multi-select lists (⌘/Ctrl+click for several). |
| Attribute Options | The 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 OR | Matches entities that pass the filters or the search text, instead of both. |
| Search text | The free text after the prefix. |
| Prefix Extractor | Moves filter tokens typed in Search text into the form. |
| Clear Prefix | Clears 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 Type | Output 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 Output | A .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 Table | Opens 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
| Type | Editor and behavior |
|---|---|
| TEXT | Single-line text. |
| BIG_TEXT | Multi-line text that grows as you type (up to 400 px high). |
| NUMBER | A number, or a distribution starting with = (see Distributions). |
| PERCENT | 0 to 100. Values outside the range are clamped, with a message. |
| ENUMERATION | A 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. |
| MULTISELECT | Checkboxes; values are saved sorted. "No choices defined (edit the attribute in the Schema Editor)." when empty. |
| BOOLEAN | A checkbox labeled Yes or No. |
| DATETIME | Date and time picker. |
| DURATION | A number or distribution plus a unit: Seconds, Minutes, Hours, Days, Weeks, Months, Years. |
| GEOPOINT | Latitude (−90 to 90) and Longitude (−180 to 180), with Open in map ↗ (OpenStreetMap). "No Geopoint" when empty. |
| URI | A 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. |
| FILE | Upload… or Replace…, Preview (images, PDFs and text files), the file name as a download link, and Remove File. |
| HTML | Rich text, like the description. |
| EQUATION | LaTeX text, for example E = mc^2. |
| COMPUTABLE | A computed value. See Computable attributes. |
| MULTIPLICITY | n, n..m, n..* or *. |
| QUALITY | Not 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_SCORE | Read-only percentage from the Quality Checker. "Run the Quality Checker" when not checked; "Quality: stale — re-run" after the text changed. |
| USER_TEAM | Text 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.
| Distribution | Formula | Parameters |
|---|---|---|
| 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.
- Click Define… (or Edit…). The dialog opens.
- 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).
- 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 constantspiande. - Set Decimal places (0 to 10, default 2) and Result Units.
- 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.
- Choose the Class. Check Transform Children to also change the decomposition descendants.
- 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."
- 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 becomePrefix.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:
| Type | Meaning |
|---|---|
CREATED, REMOVED, RESTORED | The entity was created, deleted or restored |
METADATA | Name, number, labels or another field changed |
DESCRIPTION | The description changed (Show Diff shows a word diff) |
CLASS_ID | The class changed |
IMAGE_ID | The image changed |
ATTRIBUTE | An attribute value changed (from → to) |
RELATIONSHIP | A relationship was added or removed |
RELATIONSHIP_ATTRIBUTE | A relationship attribute changed |
WORKFLOW | Approval, suspect-link or quality bookkeeping changed |
QUALITY | Quality 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:commentedfinds 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:lockedand 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 gesture | Where | Action |
|---|---|---|
| Enter | Search box | Apply the query and move filter tokens into the sidebar |
| Esc | Database | Deselect the selected row (when not typing and no dialog is open) |
| Click | Table row | Select and show in the inspector |
| Double-click | Table row | Open the Entity View |
| Double-click | Number, Name or Description cell | Edit in place |
| Enter / Shift+Enter / Esc | Cell being edited | Save / line break (description) / cancel |
| Shift+click | Row checkbox | Check or uncheck a range |
| Click / click again | Column header | Sort / reverse |
| Drag / double-click | Column header edge | Resize / reset width |
| Drag ⋮⋮ | Saved query | Reorder |
| ⌘+Z / ⌘+Shift+Z | Anywhere | Undo / 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
| Message | Meaning 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
meinstead 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.
Related
- Schema and Extensions: classes, attributes, relations, labels and workflows.
- Requirements: status, approval, quality checks, TBD/TBR and suspect links.
- Traceability: the matrix, coverage and impact.
- Import and Export: CSV, Excel, Word, ReqIF and project files.
- Getting Started: the shell, inspector and command palette.
- Help: Database, Entity View, Search Query Syntax, Advanced Search and Saved Queries, Attribute Types and Distributions, Comments and Reviews, LML Primer.
Last updated October 7, 2026