Skip to main content

File Save Format

You can choose from two file save formats:

  • JSON format:
    This is a text-based file save format in JavaScript Object Notation. When comparing changes with a configuration management tool or difference comparison tool, you can visually confirm the changes. This format is suitable for development using configuration management tools such as Git.

  • Database format (DB format):
    This is a binary file save format proprietary to Next Design. Because it is a binary format, you cannot visually check the file contents, but it has a smaller file size than JSON format.

Caution

  • If you select JSON format, access control list information set in files will be lost when you overwrite the project. If you use access control list information and do not want to delete it, select the database format.

The correspondence between file save formats and various file extensions is as follows:

Various FilesJSON FormatDatabase Format (DB Format)
Project File.nproj.iproj
Project Template File.nprot.iprot
Profile File.nprof.iprof
Model File.nmdl.imdl

Functions Dependent on File Save Format

The following functions require that the file save format of the target project and the file being imported or referenced match.

  • Importing Model Files
  • Registering Model Files as References
  • Importing Profiles

Outputting the Name of the Referenced Model

When saving files in JSON format, you can optionally switch to output the name of the referenced model to the file.

By default, the name of the referenced model is not output. For example, if the subsystem "Control Core" references the function "Vehicle Speed ​​Control," the reference relationship is saved in the model file as follows:

When not outputting the name of the referenced model

"Relations": [
{
"Id": "9f907a6d-ed5b-4925-a35b-2b1c9ac8769a",
"RelationType": "Ref",
"MetamodelId": "ab4dd11a-d7f2-42a1-af5f-8bb224879cc6",
"Metamodel": "Subsystem to Function Reference",
"SourceId": "cd7f2f27-8271-457f-ac74-fff8ed190bbb",
"TargetId": "b25fd614-2bef-46ea-9590-fcb2d5a85307",
"TargetIndex": -1
},
],

When you turn on the output of referenced model names, the source and destination model names will be output to the file, instead of just the IDs.

To output the name of the referenced model

"Relations": [
{
"Id": "9f907a6d-ed5b-4925-a35b-2b1c9ac8769a",
"RelationType": "Ref",
"MetamodelId": "ab4dd11a-d7f2-42a1-af5f-8bb224879cc6",
"Metamodel": "Subsystem to Function Reference",
"SourceId": "cd7f2f27-8271-457f-ac74-fff8ed190bbb",
"TargetId": "b25fd614-2bef-46ea-9590-fcb2d5a85307",
"SourceId$Path": "/Design/ControlCore",
"TargetId$Path": "/Design/Vehicle Speed ​​Control",
"TargetIndex": -1
},
],
Operation Procedure
  1. Check the "Include referenced model name (path)" checkbox under "Save options" on the [File] > [Information] page.
  2. Save the project.

When saving files in JSON format, you can optionally enable saving related models (hereinafter referred to as "related models") in a nested structure.

You can change the related model saving structure for each owned, referenced, or derived field defined in an entity.

For example, if the subsystem "Control Core" references the function "Vehicle Speed ​​Control," the model information for each is saved in parallel in the standard save format, as shown below.

Normal save format

{
"Id": "b25fd614-2bef-46ea-9590-fcb2d5a85307",
"EntityType": "Entity",
"Name": "Vehicle Speed ​​Control",
"MetamodelId": "69adf93c-b615-4611-b128-3d4f03e2ca90",
"Metamodel": "Feature",
"Fields": {
"Name": "Vehicle Speed ​​Control"
}
},
{
"Id": "cd7f2f27-8271-457f-ac74-fff8ed190bbb",
"EntityType": "Entity",
"Name": "Control Core",
"MetamodelId": "da0449f7-79f2-444e-86c7-84bc8e38301d",
"Metamodel": "Sub System",
"Fields": {
"Name": "Control Core"
}
},

On the other hand, if you switch to saving related models in a nested structure, the "Vehicle Speed ​​Control" model information will be saved within the "Control Core" model information, as shown below.

When related models are nested

{
"Id": "b25fd614-2bef-46ea-9590-fcb2d5a85307",
"EntityType": "Entity",
"Name": "Vehicle Speed ​​Control",
"MetamodelId": "69adf93c-b615-4611-b128-3d4f03e2ca90",
"Metamodel": "Feature",
"Fields": {
"Name": "Vehicle Speed ​​Control"
},
"OwnerId": "2e23a9e2-97fd-4177-ad82-96806c880ac5",
"OwnerId$Path": "/Design"
},
{
"Id": "cd7f2f27-8271-457f-ac74-fff8ed190bbb",
"EntityType": "Entity",
"Name": "Control Core",
"MetamodelId": "da0449f7-79f2-444e-86c7-84bc8e38301d",
"Metamodel": "Subsystem",
"Fields": {
"Name": "Control Core",
"Function $Ref": [
{
"Id": "9f907a6d-ed5b-4925-a35b-2b1c9ac8769a",
"MetamodelId": "ab4dd11a-d7f2-42a1-af5f-8bb224879cc6",
"Metamodel": "Subsystem to Function Reference",
"TargetId": "b25fd614-2bef-46ea-9590-fcb2d5a85307",
"TargetId$Path": "/Design/VehicleSpeedControl",
"Index": -1
}
]
},
"OwnerId": "2e23a9e2-97fd-4177-ad82-96806c880ac5",
"OwnerId$Path": "/Design",
"HasIncludeFields": true
},
Operation Procedure
  1. In the Profile Navigator or Metamodel Editor, select the field you want to save as a nested structure.
  2. In the Inspector's Fields tab, check the Save as structured checkbox.
  3. Click [File] > [Information] > [Managing project files] > [Update project file] on the ribbon to update the model file that will be affected by the structure change.
  4. Save the project.
info
  • The structuring of related models can be used even if the referenced model name is not output.
  • If the referenced model name is not output, the following two lines from the "When related models are nested" section above will not be output.
  • "TargetId$Path": "/Design/Vehicle Speed ​​Control",
  • "OwnerId$Path": "/Design",
Caution
  • If you do not perform step 3 after changing the [Save as structured] checkbox, model files that have not been edited will not be updated.
  • After that, when edits are made to the model file, the structuring of related models will be updated accordingly.