Use Grid Views
This page covers the in-editor workflow features for grid views. Two shared workflows, the Views Explorer and Save View Changes, are introduced in the Modeler essentials.
See also:
Foundations - shared concepts (library,
ContentViewflags,expose/filtermechanics)Configure Table Views - configuring table views
Configure Matrix Views - configuring matrix views
Working with Tables
Workflow features specific to table views.
Filter Rows
Type in the search bar at the top of the table to filter rows. The filter applies to all visible columns simultaneously.
Inline Editing
Cells in editable column types can be edited directly in the table or via the right-click context menu (View Row Details). Changes are written back to the model immediately.
Row Details
Right-clicking any row opens a context menu with a View Row Details action that opens a modal showing all columns for that row in a scrollable vertical layout. Editable fields can be edited directly inside the modal; changes are saved on confirm or discarded on cancel.
The Row Details modal renders documentation values as Markdown. This includes support for inline images using standard Markdown image notation:

Images are resolved relative to the workspace root, useful for embedding diagrams or screenshots directly in requirement documentation.
Note
View Row Details is disabled while there are unsaved cell changes in the main table. Save or discard the pending changes first.
Create Requirements
When a table view is open, click the + Add Requirement button in the top right corner to open the creation dialog. Configure the fields and confirm to append the new element directly to the model file.
Definition or Usage
Select the kind of element to create:
Definition, a type declaration (
requirement def), placed inside a packageUsage, an instance (
requirement), placed inside a type such as a requirement definition or part definition
Switching between the two modes resets the namespace and relationship fields.
Namespace
The namespace dropdown lists model elements already exposed by the current table view.
In Definition mode it lists packages; in Usage mode it lists type definitions that own
at least one exposed element. If the selected namespace lies outside the view’s
expose / filter scope, a warning is shown. Creation can still proceed, but the
new row will not appear in the table until the view or filter is updated.
Short Name and Name
At least one of Short Name or Name must be provided. Both are
independent; setting both gives the element a <short_name> and a 'declared
name'.
Specializes / Typed By
An optional dropdown links the new element to an existing RequirementDefinition:
In Definition mode it is labelled Specializes (:>) and adds a
Subclassificationrelationship to the generated definitionIn Usage mode it is labelled Typed By (:) and adds a
FeatureTypingrelationship to the generated usage
SysML Preview
A live syntax preview below the name fields shows the exact SysML that will be appended to the model file, updating as fields change.
After confirming, the extension writes the change and refreshes all open table panels.
The new row appears immediately if it satisfies the view’s filter expression.
Working with Matrices
Workflow features specific to matrix views.
Add and Remove Links
In an editable matrix, click an empty cell to add
a new relationship of the preset’s type, or click an existing mark to remove it. Changes
are written to the source .sysml file immediately.
The direction of a created relationship follows the direction attribute on
cellView. When direction is Dir::undirected, the user is prompted to choose
the direction at creation time.
Disabled Cells
Two situations disable the Add Traceability button for a given row or column element and show a warning:
No usage typed by that
Definitionexists in the cell namespaceMore than one usage typed by that
Definitionexists; the target is ambiguous
For example, given:
package ExampleColumnNamespace {
part def ColumnA;
part def ColumnB; // no usage in TraceabilityContext → creation disabled
}
package ExampleRowNamespace {
part def RowA;
part def RowB {
part subpart_a : RowA; // RowA reachable through RowB's subpart
}
}
package ExampleTraceabilityNamespace {
private import ExampleColumnNamespace::*;
private import ExampleRowNamespace::*;
item def TraceabilityContext {
part column_a : ColumnA; // typed by ColumnA ✔
part row_b : RowB; // typed by RowB ✔; RowA reachable via row_b.subpart_a
}
}
The matrix marks ColumnB with a warning because no usage typed by it exists in
TraceabilityContext, so the Add Traceability button is disabled for that
column.