Metadata System¶
Metadata is data that describes other data. Meta is a prefix that -- in most information technology usages -- means "an underlying definition or description." Metadata summarises basic information about data, which can make finding and working with particular instances of data easier.
The use of Metdata in FieldTwin allows you to enable DATA DRIVEN DESIGN in your pre-engineering phase when designing field layouts. Metadata allows you to build or link your own data model to your private Asset Library, the Generic library or as Virtual Assets.
This is especially useful for providing equipment and costing options while designing the field. E.g. by defining metadata your users can then select various equipment configurations with corresponding options and link them to your VendorID, WBS, cost specifications etc.
FieldTwin comes with a default metadata schema that covers most common subsea/subsurface engineering attributes and is closely aligned with CFHIOS/JIP-33 as shown below:
Metadata API Support¶
Everything you can do with the Meta Data Editor you can also do through the FieldAP REST API so you can programatically configure everything. You can read more about the API here in the API DOCS
Metadata Definitions¶
You start out by defining your Metadata in the Definition screen. You will find this under the Account Settings by selecting the "Metadata Definitions" section as shown below:
The UI allows you to define your various metadata attributes with a wide range of data types, units, and input options for user selection on assets, layers, wells, connectors and connections. Furthermore the metadata are highly customisable, and supports dependencies, filters, tags and more.
Add Definition¶
Press the +Add Definition button and the following "New" entry section will appear in the list below and the definition panel will be shown to the right as shown below:
-
ID - This is the unique ID (identifier) for this metadata, and typically is used as a reference for metadata API operations. It is a Read Only value.
-
Definition ID - This is the metadata definition ID. After you have selected an existing ID or filled in the Name field below it, you can press the Generate DefinitionId from VendorId or Name button and the new ID will be created.
-
Name - Specify the name of your new metadata entry in this field. Do this before you press Generate.
-
Vendor ID - You can also assign an optional alphanumeric Vendor ID of your choosing, which can be useful for API integrations etc.
-
Control - Drop down list of the available data types for the new Metadata you create.
-
Public - If you want the Metadata definition created here to be publicly available when exported and shared to other parties.
-
Generate DefinitionId from VendorId or Name - Press this button to generate the new Definition ID for the metadata you are creating. Note! The Account Identifier must be defined first under Account Settings > General.
We have now generated the new DefinitionID and now you need to press the Save button, or select Reset Changes to undo this operation.
However, we want this metadata definition to be of type Numerical so see the Control section description below on how you can change it.
Filtering of metadata definitions using tags¶
If you have a long list of metadata definitions, you can now filter by tags. On top of the list of metadata there is an input box allowing you to select available tags to filter by.
Control¶
This setting allows you to define the data type for the metadata you are creating as well as to assign it to Group or Sub-Group.
The available data types are as follows:
Data Type | Description |
---|---|
String | Alphanumeric string |
Numerical | Numerical value |
Slider | Numerical value |
Choices | List of alphanumeric options |
Boolean | True or False |
Asset | Relationship |
Connection | Relationship |
Button | Invokes URL |
Table | Table Entry |
String¶
This is an alphanumeric text string data type:
You have the following available settings:
Default - This allows you to enter a default value e.g. a text string that describes the input you are looking for from the user.
Value is read only - Check this option if the text field should be read only e.g. no user input.
Text is multiline - Check this option if you want the text field to be comprised of multiple lines.
If multiline, number of lines to display - Enter the number of text lines you want to display.
Cost is per length - Select this option if the numerical value is to be used in a cost per length calculation e.g. cost per meter of a pipeline.
Numerical¶
This is a numerical input field where you define a Minimum, Maximum, and a Default numerical value. You can define the Units to be used for the field. Select a Unit category first and then the available Unit type selections available will vary based on the category selected.
Unit is read-only - Check this option if the user is not allowed to change the value.
Unit Category - Select the unit category you want to use from the drop down list. Read about the available Unit Categories
Unit Type - Select the unit type you want to use from the drop down list. Read about the available Unit Categories
Default Unit Suffix - Select the default unit suffix you want to use from the drop down list. Read about the available Unit Categories
Minimum - Set the minimum numerical value allowed for the input field.
Maximum - Set the maximum numerical value allowed for the input field.
Default - Set the default numerical value to pre-populate the input field with.
Value is a cost - Check this option to have the value computed in the cost equipment module.
Value is read-only - Check this option to have the numerical input field to be read.
"Cost is per length" - Select this option if the numerical value is to be used in a cost per length calculation e.g. cost per meter of a pipeline.
Slider¶
This will display a horizontal slider UI element that gets defined with a minimum, maximum value and the step value of the slider You can also check the the Value is a cost option so it will get computed in the cost equipment module. And you can define the numerical value to be used in a cost per length calculation by selecting the "Cost is per length" option.
Minimum - Set the minimum numerical value for the slider range.
Maximum - Set the maximum numerical value for the slider range.
Default - Set the default numerical value for the slider control.
Step - Set the numerical step value to increase or decrease the slider control with.
Value is a cost - Check this option to have the slider value computed in the cost equipment module.
"Cost is per length" - Select this option if the slider value is to be used in a cost per length calculation e.g. cost per meter of a pipeline.
Choices¶
This is a list of choices you define (alphanumeric or numerical) that will be presented to he user for selection.
Entry Name - Set the name definition of your choice entry e.g. Injection.
Entry Vendor ID - Set the choice entry Vendor ID if needed.
Entry Custom Value - Use this field to specify a custom value. This can be useful if you want to associate a value with a string and fetch the number through the API to be used in e.g. simulations.
Entry Text Color - You can define a choice color to illustrate to the user if this choice is safe e.g. green or risky e.g. red.
Entry Background Color - You can define a choice background color to illustrate to the user if this choice is safe e.g. green or risky e.g. red.
Filter selection on choice - Check this option to apply a filter to the choices that will displayed, based on other selected metadata. First select the relevant metadata selection that should be used for filtering then select the option for display. If multiple options are selected it will display as soon as one condition is met.
Default - Select one of the created Choice option as the default selection.
"Can multi-select" - Check this option to allow for multiple options to be selected by the user.
"Cost is per length" - Check this option if you e.g. add meta data for a Connection, and the choice is a numerical value and then it can be used in a cost per length calculation.
Boolean¶
This will present the user with a TRUE/FALSE checkbox with the possibility to have a "Cost per length" attached to it thats get computed in the cost equipment module. The Default checkbox indicates the default boolean state e.g. if checked the option is TRUE by default.Unset default button allows to reset the default value boolean value.
Asset¶
This is a meta data type that makes it possible for you to link another asset to your object. As an example you make a data type called slot 1 in a 4 slot template - you can then choose asset as data type, and in the project you link a XMT asset into the slot. Then the metadata for the XMT will also show up in your meta data editor in the project and every asset linked will then be computed in the cost equipment module.
Docking Slot - Assets (Models) supports connections with other assets (SmartModels) if they are defined as such. You can select the docking slot here if configured for this asset.
The Asset data type also has a Filters section, where you can preselect the following filters;
Type - Select the asset type from the list which is comprised of; vessel, structure, virtual, submerged, and onshore.
Sub type - Select the asset sub type from the list which is comprised of; SPS, piping, Host, rig, other, umbilical, SPP, vessel, and installation aids.
Category - Select the asset category from the list which is comprised of; XMT, ITS & Template Structures, Riser & Riser Base, Valve, Pipeline and Pipeline Assets, Hosts, Onshore Facility, Terminal, Manifold, Rig, Wellhead, Subsea Distribution, Subsea Processing, Vessel, TBE, Cover, Anchors, Mattress, Controls, Pipeline Crossing Support, Pointer/Link holders, and Host.
Sub Category - Select a sub category from the list if one is defined.
Default - Select the default asset type from the list for this Metadata definition.
"Cost is per length" - Check this option if you have a numerical value for the defined asset metadata and then it can be used in a cost per length calculation.
Connection¶
This is a meta data type that makes it possible for you to link another connection to your object. Typical usage is when defining Bundles or Pipe in Pipe. You then link the category you wish the user to be able to add into the carrier pipe
Category - Select the connection category from the list which is comprised of; Umbilical, Production, Water Injection, Gas Injection, Gas Lift, Electrical Lead, Hydraulic Lead, MEG, Methanol, Fiber Optic Lead, Service Line, Cable, Power Cable, Bundle, Mooring, and Pigging.
Connections - Select the connection allowed connection type from the list which is comprised of; Umbilical, Oil Production, Water Injection, Gas Injection, Gas Lift, Electrical Lead, Hydraulic Lead, and MEG.
Default - Select the default connection type from the list for this Metadata definition.
"Cost is per length" - Check this option if you have a numerical value for the defined connection metadata and then it can be used in a cost per length calculation.
Button¶
Allows you to place a button with the text specified in the Caption field into the Meta data editor. You can then assign an URL in the Action URL field that typically invokes a call to an external service/server for launching a simulation, calculation, or some other operation with your own or 3rd party software.
Caption - Enter the text for the button text.
Action URL - Enter the URL that will be invoked when pressing the button with any parameters that are defined as follows:
The action URL can be comprised of the following parameters:
Parameter | Definition |
---|---|
%account% | Account ID |
%project% | Project ID |
%subProject% | Sub project ID |
%id% | Selected element id (the one the metaData is linked to) |
%type% | Selected element type ('stagedAsset', 'connector', 'connection') |
Example : https://myserver/query/%account%/%project%
"Cost is per length" - Check this option if you have a numerical value associated with the action and then it can be used in a cost per length calculation.
Table¶
This data type allows you to create a table layout for user data entry.
+Add Header - Click this button to create a new table column.
Header Name - Enter your column name in this field.
Header Vendor ID - Enter an optional VendorID in this field.
Text Alignment - Select how you want the text aligned from the list; default, left, center, and right.
Text Wrap - Check this option if you want the text to wrap in the column.
Remove - Click this button to delete an entry.
Up and Down arrows - Use these arrows to arrange the order of the column headers.
"Cost is per length" - Check this option if you have a numerical value associated with the table entry and then it can be used in a cost per length calculation.
The sample definition used here will then appear to the user as follows:
Add a Condition¶
This section allows you to add logic to the metadata configuration.
+Add a Condition - Press this button to add a condition, and the input area will be expanded:
The Select a dependency drop down list will show all the metadata you have defined so you can select the one you want. Then select if the condition should be Equal or Not Equal to the values or options you have defined for the metadata. Use the Add a condition button again to create multiple conditions.
In this example the condition is set to the following: If Connection Type is equal to Riser Lazy Wave
Remove Condition - Press this button to remove the created condition.
Metadata Group¶
New 5.4 version feature which allows user to group metadata. To explore this feature go to Account Settings > Metadata Groups
Grouping Metadata allows you to assigns sets of metadata to an asset, connection etc in one operation.
Add Metadata Group¶
Click on Add new Metadata Group in order to create a new metadata group.
In our example we will create two metadata groups: XT Features and Riser Features.
To group XT metadata features from metadata features pool we select applicable features in left column and add them to the right column by clicking arrow (>>).
We repeat the same procedure for the Riser features group.
Metadata usage in projects¶
Connections¶
Connections is everything that connects objects (assets) in the project: it can be pipelines, jumpers, umbilicals etc.
In this example we create a metadata connection for Production riser. You need to define a name and unique vendor ID for connection. We called the new connection as Production Riser and defined Vendor ID as vendor.ProductionRiser.
To assign riser metadata features to the Production Riser connection we select applicable features in left column and add them to the right column by clicking arrow (>>).
Below is an example of a populated connection database.
Assets¶
Assets are all project equipment except connections: FPSOs, XMTs, manifolds etc
In this example we create a metadata connection for shallow water XMT. We select it from the assets library. On the right in the left box we see all possible features.
We select ones related to shallow water XMT and add them to the right column by clicking (>>).
Virtual assets¶
Virtual assets are assets which belong to master asset (for example choke belongs to XMT). FieldTwin Design allows you to enable and configure metadata for such systems by setting them up as virtual assets and relating them to their master systems.
Let's look at a subsea choke example.
In the beginning we need to establish choke metadata definitions:
As an example, subsea choke can be Retrievable and Non-retrievable.
On the next step we create virtual asset itself by going to virtual assets in the menu:
Here you can see that all metadata definitions we defined earlier are available for assignment in the left column.
To assign choke metadata to the Choke virtual asset we select applicable features in the left column and add them to the right column by clicking arrow (>>).
Then we need to link our virtual asset to the master asset. Let's assign choke metadata to the XMT shallow water which will be used in our project:
To assign choke metadata to the XMT shallow water asset we select applicable features in the left column and add them to the right column by clicking arrow (>>).
After all steps are completed we can see that choke metadata appeared in XMT shallow water assets in our project.
Copying Metadata¶
In project view you now have the option of copying metadata from one connection, asset etc. and paste them to a single or a selection of assets/connections by using the Copy Metadata option as shown here:
Paste Metadata¶
For the selected XMT as shown above we will then use the Paste metadata option on the other 3 manifolds in the project as shown below:
Now all four XMT's have the same metadata values.
Input of Meta Data in Editor¶
All the meta data types you defined in the "Account settings" on assets, connections and connectors will be shown here available for user input/selection.
If you press or create a new connection point and choose a type, the meta data associated with that type will be available for input. The meta data types for the selected asset will be listed as shown below.
In the list shown above we have input some sample data on different meta data types defined for the 4 slot template. Because we made a meta data type called Well Trajectory on the asset "XMT deep water" that we set as data type "Asset" we are able to link in the wellhead asset and thereby inherit that assets meta data types as well.
When you are done specifying your asset with your selected meta data you can put it back to your personal asset library by clicking the "Add to My Assets" button in the Assets tab next to the Metadata tab.
If you want to add meta data to connections just click the connection editor and do the same as for the asset itself.
If you have costs associated with your meta data types all the costs gets computed in the cost equipment module by pressing the button called "Server".
In the cost breakdown you can see what types of metadata is included for the cost calculation invoked by the "Server" button.