Skip to content

Quickstart

Build a model, run the traceability queries, and emit both output formats.

from sysml2kit import Model, builder
from sysml2kit.query import trace_matrix, unverified_requirements
from sysml2kit.text import write_model
from sysml2kit.interchange import write_json
from sysml2kit.validation import validate

model = Model()
pkg = builder.pkg(model, "Vehicle")
battery = builder.part(model, "battery", owner=pkg)
range_req = builder.req(
    model,
    "REQ-001",
    "Range",
    owner=pkg,
    text="The vehicle shall travel at least 400 km on one charge.",
)
builder.satisfy(model, source=battery, target=range_req)

print(unverified_requirements(model))  # [REQ-001] - nothing verifies it yet
print(trace_matrix(model).render())  # requirement-by-part grid
for issue in validate(model):
    print(issue.rule_id, issue.severity, issue.message)

print(write_model(model))  # SysML v2 textual notation
write_json(model, "vehicle.json")  # Systems Modeling API interchange

The same operations from the command line:

sysml2kit show vehicle.json --traceability
sysml2kit validate vehicle.json
sysml2kit export vehicle.json --to sysml

Reading .sysml text back requires the parse extra:

from sysml2kit.backends import get_backend

model = get_backend("sysmlpy").parse(open("vehicle.sysml").read())