Properties
Properties and Property sets are used to extend the built in Helix IPLM data model to include customer specific fields. Licensing, process info, lifecycle status, functional safety compliance, and workflow values are some examples of quantities often tracked as properties. This section describes the configuration options available for Helix IPLM properties and property sets in both IPLM Web and PiCLI.Property and Property Set overview
Properties are typed Key/Value pairs that are pre-defined by admins, and provide a way to customize and extend an IP's definition. Once defined, groups of Properties can be added to Property Sets. Property Sets can then be attached to IPs or Libraries. Values can be set for each Property by users that have write access to a given IP. Property sets attached to Libraries will cause all of that Library's IPs and IPVs to inherit the properties included in that property set.
Property and Property Set Permission Considerations
Function | Permission Level |
---|---|
Property Creation/Deletion | Administrator |
Property Set Creation/Deletion | Administrator |
Attach Property Set to an IP | IP Owner |
Set the value of a Property | IP Write |
More information on Permissions can be found on the Permissions Management page.
Property naming restrictions
A Property name must be a Unicode string from 1 to 1000 characters in length, and should contain only letters, digits and underscores.
Forbidden Characters | Reason for restriction |
---|---|
Cannot start with digits. | Command Parsing |
| Reserved Helix IPLM fields |
Property types
The available Property value types are:
Value Type | Description | Example | Notes |
---|---|---|---|
string | Unicode string from 1 to 100,000 characters (an empty string is treated as an absence of a value) | 802.11 transceiver ダチヂッ ©2015 | |
integer | 64-bit signed integer value | -231 | |
float | 64-bit double-precision floating-point value | 23.7e-9 | |
boolean | Either true or false | true (true/false), case insensitive | |
choice | One or more of a defined list of 1 to 1,000 strings (see string) | high speed | User has an option to designate the property as single choice or multiple choice.
|
datetime | A date/time string in ISO 8601 format, or Unix timestamp. Valid user input:
| 2019-05-20T21:21:44Z |
|
Property Configuration Fields
Configuration Option | Required | Description |
---|---|---|
name | Required | The name of the property. Can be any unicode string. Can be modified after creation |
value_type | Required | Any one value type, see the Property Types table above Cannot be modified after property creation. |
target_type | Required | Value is either IP or IPV. IP targeted properties do not change from release to release. IPV targeted properties can have a different value per release. IP properties are used for values that will not change with release. Examples: licensing info, id number, process node IPV properties are used for values that can change from release to release. Examples: simulation results, current area, documentation Cannot be changed after property creation. |
description | Optional | A description of the property |
icon | Optional | Icon for display in IPLM Web (not currently used) |
suffix | Optional | The units of the property value e.g. W, A, m, J, Ω. Unicode string from 1 to 1000 characters. |
propagate_value | unset assumes False | Only applies to target_type=IPV Properties. By default (propagate_value=False) IPV properties do not propagate from version to version. If propagate_value is set to True the IPV property value will be propagated to each new version of the IP. If the propagate value is False, new IPV releases will be set to the default_value if set, or otherwise be left unset. |
default_value | Optional | The default value to use if the property is not set |
choice_values | Required for 'choice' value_type, prohibited otherwise | Space separated list of choices for value_type=choice. If any choices contain spaces, then they must all be quoted, e.g. choices = "Choice one" "Choice two" "Last Choice". Lists may be continued on to multiple lines if the continuation lines begin with a space. Choice values can only be added, they cannot be removed or edited. |
multi-choice | Optional | true/false - For choice type properties, allow selection of multiple values. |
Property Sets
Once defined properties can be included in one or more Property Sets. The Property Set can then be attached to IP and Library objects and once attached that IP (or the IPs in the Library) will have the full set of properties included in the attached property set. Property sets are a convenient way to group properties according to meaning, and to attach that group to the appropriate IPs.
The 'global' property set is a special, always defined, property set that is always applied to all IPs in the system. The global property set can be left empty of properties, or can be used to attach properties that are applicable to every IP in the system.
Property Set configuration fields
Configuration Option | Required | Description |
---|---|---|
name | Required | The name of the property set, can be any unicode string |
description | Optional | A description of the property set. |
icon | Optional | Icon for display in IPLM Web (not currently used) |
properties | Optional | A space or line separated list of properties that belong to the property set. If line separated at least the first character of each line should be a space |
Property Sets are Filters
When a property is created in Helix IPLM it is invisibly attached to all IPs or IPVs in the system in the Helix IPLM data model. Adding the property to a property set and attaching the property set to an IP makes the property visible on the IP or IPV. If a value is set on a property while it is revealed by a Property Set and then all Property Sets that include that property are removed from the IP, the property and its value become hidden. They are not accessible from any Helix IPLM client while hidden, but if a Property set including that property is again attached to the IP, the property and its value will be made visible again. Deleting a property will remove it and any values that have been set from all objects in the platform.
Adding properties from the IPLM Web Interface
Properties in Helix IPLM are first defined individually. Once defined, multiple properties are gathered into Property Sets. These property sets are then applied to IPs or IPVs. Note that IPLM Web doesn't currently support attaching property sets to Libraries. This can be done via the CLI or API.
Open Properties under Administration->Properties.
Adding a new Property
To add a new Property, select Create New Property and enter details for the new property. Choose the Property target type, either IP or IPV. This sets the type of object the given property will be attached to.
Choose the Type of the new property, this defines the data type of the Property.
Fill out the other property fields, including Name, Suffix, Default Value, and Description.
Once filled out, click Save to save the property.
Editing or deleting existing Properties
Properties in Helix IPLM are first defined individually. Once defined, multiple properties are gathered into Property Sets. These property sets are then applied to IPs or IPVs.
Editing or Deleting an Existing Property
Select an existing Property to be edited. Edit the property fields, including Name, Suffix, Default Value, and Description. Once filled out, click Save to save the property. To delete the property, click the Delete button.
Adding Property Sets from IPLM Web
Properties in Helix IPLM are first defined individually. Once defined multiple properties are gathered into Property Sets. These property sets are then applied to IPs or IPVs.
Adding a new Property Set
Open Property Sets under Administration → Property Sets. To add a new Property Set, select Create New Set.
Enter the Property Set name and Description, then click the button to add properties to the Property Set.
Once they are selected, click Add.
Once the fields are filled out click Save to add the property set.
Attaching Property Sets to IPs in the IPLM Web Interface
Property sets are attached to IPs from the IP edit page of an IP. On the properties tab click in the white space of the Property Sets box to select a new Property set for the IP. The 'x' on each property set can be used to remove it from the IP. The properties included in all the added Property sets will appear in the list of Properties on this page. See IP, IPV, and IP Line metadata for more details concerning setting property values.
Note: You must have owner or above permissions on the IP to edit the property sets attached to it. Clicking the green Save button on the top will modify the properties on the IP.
Command Line
Properties can be managed on the command line using the 'pi property' command
> pi prop -h Usage: pi property [-h] SUBCOMMAND ... Description: Commands related to Properties. These subcommands are used to add, edit, delete and list information about Properties. Optional arguments: -h, --help Show this help message and exit Available sub-commands: SUBCOMMAND add Create a new Property definition. delete (del, remove, rm) Delete an existing Property definition. edit Edit an existing Property definition. list (ls) List all matching Properties.
Adding Properties
The 'pi prop add' command brings up a template form that can be filled out to configure the property.
Note
> pi prop add -h Usage: pi property add [-h] [--template TEMPLATE | identifier] Description: Create a new Property definition. Only admin users can create Properties. The command puts the Property specification into a temporary file and invokes the editor specified by the EDITOR environment variable. Saving the file adds the Property definition. Positional arguments: identifier The name of the Property definition being created. Optional arguments: --template TEMPLATE, -t TEMPLATE Use the specified template to add the Property. The template is an ASCII file that defines the Property. This can be used to add Property definitions with a script and avoid the interactive editor. To read the template from STDIN, set TEMPLATE='-'. -h, --help Show this help message and exit Examples: # Invoke the editor to create Property definition ohms. pi prop add ohms # Create Property definition using the ohms.info template. pi prop add -t ohms.info # Create Property using redirected STDOUT from script new_prop.py as template. new_prop.py | pi prop add --template -
Deleting Properties
The 'pi prop delete' command is used to remove properties that have been added to Helix IPLM. By default if the property has been given a non-default value on any IP to which the property has been attached via property set, Helix IPLM will block the property delete. Use the `–force` option to override this behavior and proceed with the property delete.
Note
> pi prop delete -h Usage: pi property delete [-h] [--force] identifier Description: Delete an existing Property definition. Only admin users can delete Properties. Positional arguments: identifier Name of the Property to delete. Optional arguments: --force, -f Execute delete to completion when Property value is set for some IP or IPV (default is to block delete when Property value is set on any IP or IPV). -h, --help Show this help message and exit Examples: # Delete Property definition ohms which has no value set on any IP or IPV. pi prop delete ohms # Delete Property definition ohms even if its value is set on any IP or IPV. pi prop delete --force ohms
Editing Properties
The 'pi prop edit' command is used to edit existing properties. If a template is provided via the '–template' argument any fields provided by the template will be modified. If a field of the full template is omitted, that field will remain unchanged on the property after edit. If no template is supplied via the '–template' option then a template form is provided via editor to the manually modify the property. Administrator status is required to edit properties.
> pi prop edit -h Usage: pi property edit [-h] [--template TEMPLATE] identifier Description: Edit an existing Property definition. Only admin users can edit Properties. The command puts the Property specification into a temporary file and invokes the editor specified by the EDITOR environment variable. Saving the file edits the Property definition. Positional arguments: identifier The name of the Property definition to edit. Optional arguments: --template TEMPLATE, -t TEMPLATE Use the specified template to edit the Property. The template is an ASCII file that defines the Property. This can be used to edit Property definition with a script and avoid the interactive editor. To read the template from STDIN, set TEMPLATE='-'. -h, --help Show this help message and exit Examples: # Invoke the editor to modify Property definition ohms. pi prop edit ohms # Modify Property definition ohms using the ohms.info template. pi prop edit -t ohms.info ohms # Modify Property ohms using redirected STDOUT from script as template. edit_prop.py | pi prop edit -t - ohms
Listing Properties
The 'pi prop list' command is used to list properties that have been added to Helix IPLM.
> pi prop list -h Usage: pi property list [-h] [--format {csv,json,long,table,template} | --verbose] [--model MODEL] [identifier [identifier ...]] Description: List all matching Properties. A variety of format and filtering options are supported. Positional arguments: identifier Filter Properties by name. Optional arguments: --format {csv,json,long,table,template} Return the results using the specified data structure. The template format produces files that can be used by the pi add|edit commands with the --template option. --model MODEL Use the specified report model (table report only). --verbose, -v Alias for --format long. -h, --help Show this help message and exit
Configuring the Output Format
Helix IPLM can display the list output in a number of different formats
Command Option | Format | Description |
---|---|---|
--format | table | The default format option, a list of values in table format. |
template | Lists the properties in the 'pi prop edit' CLI template format. The template format returns at most one result, and requires an identifier. | |
long | Displays detailed information about the property, equivalent to --verbose, -v output | |
json | Display the list of properties in json format. Note that the Helix IPLM API should be used for scripting purposes. | |
csv | Display the list of properties in comma separated value format. | |
--verbose, -v | Displays detailed information about the properties, equivalent to --format long output | |
--model MODEL | Display a custom table format MODEL defined in piclient.conf. See here for more information on configuring display models. |
Example property list output:
> pi prop list ┌───────────────────────┬────────┬──────────┬───────────┬──────────────────────────────────────────┐ │ NAME │ TARGET │ TYPE │ SUFFIX │ DESCRIPTION │ ╞═══════════════════════╪════════╪══════════╪═══════════╪══════════════════════════════════════════╡ │ ControllabilityClass │ IP │ string │ │ Controllability Classification │ │ ExposureClass │ IP │ string │ │ Exposure Classification │ │ FUSASpec │ IP │ string │ │ FuSa specification │ │ FUSA_spec_rev │ IP │ string │ │ Internal FuSa compliance guideline │ │ │ │ │ │ revision │ │ INL_latest │ IP │ float │ ppm │ Integral Non-Linearity Latest │ │ INL_rel │ IPV │ float │ ppm │ Integral Non-Linearity Latest │ │ INL_target │ IP │ float │ ppm │ Target Integral Non-linearity │ │ INL_verif │ IPV │ float │ ppm │ Integral Non-Linearity Verification │ │ │ │ │ │ Result │ │ IPCategory │ IPV │ choice │ │ IP Catetory │ │ SNR │ IPV │ float │ dB │ Measured Signal to Noise Ratio │ │ SeverityClass │ IP │ string │ │ Max Severity class │ │ Supply_target │ IP │ float │ V │ Targeted Supply │ │ TempHi_target │ IP │ float │ C │ Target High Temperature │ │ TempLow_target │ IP │ float │ C │ Target Low Temperature │ │ architecture │ IP │ string │ │ cortex architecture │ │ auth_required │ IP │ string │ │ is authorization required to use the IP │ │ bus_interface │ IP │ choice │ │ Bus interface protocol │ │ external_ip │ IP │ string │ │ Is IP external │ │ license_agreement │ IP │ string │ │ License agreement doc │ │ license_class │ IP │ string │ │ licensing class for the IP │ │ license_expire │ IP │ datetime │ │ License expiration date │ │ license_start │ IP │ datetime │ │ License start date │ │ vendor_id │ IP │ string │ │ IP vendor ID number │ │ vendor_ipid │ IP │ string │ │ IP vendor IP ID number │ └───────────────────────┴────────┴──────────┴───────────┴──────────────────────────────────────────┘ Found 24 matching object(s).
Managing Property Sets
Property sets are managed from PiCLI via the 'pi property-set' command.
> pi propset -h Usage: pi property-set [-h] SUBCOMMAND ... Description: Commands related to Property Sets. These subcommands are used to add, edit, delete and list information about Property Sets. Property Sets are created by admin users to manage IP/IPV Properties. Optional arguments: -h, --help Show this help message and exit Available sub-commands: SUBCOMMAND add Create a new Property Set. attach Attach a Property Set to an IP or Library. delete (del, remove, rm) Delete an existing Property Set. detach Detach a Property Set from an IP or Library. edit Edit an existing Property Set. list (ls) List all matching Property Sets.
Adding a New Property Set
New Property Sets are added via the 'pi property-set add' command. Administrator status is required to add new Property Sets. If no '–template' argument is provided a template will be provided in an editor to manually configure the property set. Templates may also be pre-filled and provided directly to the command via the '–template' argument.
> pi propset add -h Usage: pi property-set add [-h] [--template TEMPLATE | identifier] Description: Create a new Property Set. Only admin users can create Property Sets. The command puts the Property Set specification into a temporary file and invokes the editor specified by the EDITOR environment variable. Saving the file adds the Property Set. Positional arguments: identifier Name of the Property Set to create. Optional arguments: --template TEMPLATE, -t TEMPLATE Use the specified template to add the Property Set. The template is an ASCII file that defines the Property Set. This can be used to add the Property Set with a script and avoid the interactive editor. To read the template from STDIN, set TEMPLATE='-'. -h, --help Show this help message and exit Examples: # Invoke the editor to create Property Set oscillator. pi propset add oscillator # Create Property Set using the osc.info template. pi propset add -t osc.info # Create Property Set using redirected STDOUT from script as template. new_propset.py | pi propset add --template -
Deleting Property Sets
Property sets are deleted from the PiCLI via the 'pi property-set delete' command. Administrator status is required to delete a Property Set. Property Sets can be deleted even when already attached to IPs. If the deleted property set was attached to one or more IPs at the time of deletion, any properties belonging to the Property Set will no longer be attached to those IPs, unless the same properties are attached to one or more of those IPs via another property set. Deleting a property set does not have any effect on the properties that belonged to the deleted Property Set, they are still defined in Helix IPLM and can be included in other Property Sets as needed.
> pi propset delete -h Usage: pi property-set delete [-h] identifier Description: Delete an existing Property Set. Only admin users can delete Property Sets. Positional arguments: identifier Name of the Property Set to delete. Optional arguments: -h, --help Show this help message and exit Examples: # Delete Property Set oscillators. pi propset delete oscillators
Editing Property Sets
Property Sets are edited from PiCLI via the 'pi property-set edit' command. A template will be brought up and the fields of the Property Set can be modified as needed. If the '–template' option is provided a predefined template can be used to configure the property set, fields that are not included in the template will not modify the existing configuration.
> pi propset edit -h Usage: pi property-set edit [-h] [--template TEMPLATE] identifier Description: Edit an existing Property Set. Only admin users can edit Property Sets. The command puts the Property Set specification into a temporary file and invokes the editor specified by the EDITOR environment variable. Saving the file edits the Property Set. Positional arguments: identifier The name of the Property Set to edit. Optional arguments: --template TEMPLATE, -t TEMPLATE Use the specified template to edit the Property Set. The template is an ASCII file that defines the Property Set. This can be used to edit the Property Set with a script and avoid the interactive editor. To read the template from STDIN, set TEMPLATE='-'. -h, --help Show this help message and exit Examples: # Invoke the editor to modify Property Set oscillator. pi propset edit oscillator # Modify Property Set oscillator using the osc.info template. pi propset edit -t osc.info oscillator # Modify Property Set using redirected STDOUT from script as template. edit_propset.py | pi propset edit --template - oscillator
Attaching Property Sets to IPs or Libraries
Property sets are attached to IPs or Libraries via the 'pi property-set attach' command. Once attached all properties included in the property set will appear on the IP (or the IPs in the Library), and can be set to the desired values via the 'pi ip prop' command.
> pi propset attach -h Usage: pi property-set attach [-h] object_identifier set_identifier Description: Attach a Property Set to an IP or Library. Positional arguments: object_identifier IP or Library to attach the Property Set to. set_identifier Name of the Property Set to attach to IP or Library. Optional arguments: -h, --help Show this help message and exit Examples: # Attach Property Set oscillator to IP foo.bar pi property-set attach foo.bar oscillator
Detach property sets by using the 'pi property-set detach' command. Once detached, any properties that were only on the IP because of that property set will no longer be available in the IP's data model.
> pi propset detach -h Usage: pi property-set detach [-h] object_identifier set_identifier Description: Detach a Property Set from an IP or Library. Positional arguments: object_identifier Library or IP from which to detach the Property Set. set_identifier Name of the Property Set to detach from Library or IP. Optional arguments: -h, --help Show this help message and exit Examples: # Detach Property Set USB from Library foo pi property-set detach foo. USB # Detach Property Set top_level from IP foo.bar pi property-set detach foo.bar top_level