Project source format

FactoryTalk Optix Studio
projects are based on text files. You can develop
FactoryTalk Optix Studio
projects in a collaborative environment with version control inside or outside
FactoryTalk Optix Studio
.
TIP: You can use standard software development and versioning tools when you edit projects outside
FactoryTalk Optix Studio
.

Project structure

Each
FactoryTalk Optix Studio
project contains these source files and folders:
  • A
    ProjectName
    .optix
    file. Contains general information about the project and references to the
    FTOptix
    modules that the project uses.
  • A
    ProjectName
    .optix.design
    file. Contains general information about the project and references to
    FTOptix
    modules required by elements at design time.
  • A
    Nodes/
    folder. Contains these folders and files:
    • A
      ProjectName
      .yaml
      file. Describes the root node of the project, which contains the related properties and references to the project main nodes.
    • Folders for each main project node (
      UI
      ,
      Model
      , and so on). Each folder contains a
      .yaml
      file that describes its related information model (
      UI.yaml
      ,
      Model.yaml
      , and so on).
  • ProjectFiles/
    folder. Contains files used in the project (for example, images, fonts, or documents) and these subfolders:
    • NetSolution/
      . Contains all custom C# NetLogic files.
    • PKI/
      . Contains private, public, and refused certificates for OPC UA authentication.

Project information model

YAML files represent the information model of
FactoryTalk Optix Studio
projects. Separate YAML files describe each project node and module. This enables application developers to change projects in a granular way by editing maintainable YAML files.
At design time,
FactoryTalk Optix Studio
propagates changes made to the project to the YAML files. The elements described in YAML files are only the elements with a value assigned. If a property of an object is not assigned a value in
FactoryTalk Optix Studio
, it is not described in the corresponding YAML file.
This is an example of YAML representation of the
UI
main project node.
Name: UI Type: FolderType Children: - Name: NativePresentationEngine Type: NativePresentationEngine ReferenceType: HasOrderedComponent Children: - Name: StartWindow Type: NodePointer DataType: NodeId Value: {"IdType":2,"Id":"c5b6a0a2e7242da2ad471b89a993b1b9","Namespace":7} Children: - Name: Kind Type: PropertyType DataType: NodeId Value: {"Id":12,"Namespace":4} - Name: StyleSheet Type: NodePointer DataType: NodeId Value: {"IdType":2,"Id":"87ddf487197f945cf28bbdd169681bc9","Namespace":7} Children: - Name: Kind Type: PropertyType DataType: NodeId Value: {"Id":447,"Namespace":4} - Name: EnableVirtualKeyboard Type: BaseDataVariableType DataType: Boolean Value: false - Name: StartingUser Type: NodePointer DataType: NodeId Value: {"IdType":2,"Id":"bcd4b69a3d76a1ec8313316b2bbcbba2","Namespace":7} Children: - Name: Kind Type: PropertyType DataType: NodeId Value: {"Id":14,"Namespace":1} - Name: Sessions Type: BaseObjectType - Name: MainWindow Id: g=c5b6a0a2e7242da2ad471b89a993b1b9 Supertype: Window Children: - Name: Width Type: BaseDataVariableType DataType: Size ModellingRule: Optional Value: 400.0 - Name: Height Type: BaseDataVariableType DataType: Size ModellingRule: Optional Value: 400.0 - Name: Panel1 Type: Panel Children: - Name: Width Type: BaseVariableType DataType: Size ModellingRule: Optional Value: 300.0 - Name: Height Type: BaseVariableType DataType: Size ModellingRule: Optional Value: 300.0 - Name: Label1 Children: - Name: Text Type: BaseDataVariableType DataType: LocalizedText ModellingRule: Optional Value: {"LocaleId":"it-IT","Text":"Label1"} - Name: NetLogicDiRuntime1 Type: NetLogic
Provide Feedback
Have questions or feedback about this documentation? Please submit your feedback here.