Main Content

本页采用了机器翻译。点击此处可查看最新英文版本。

使用 Requirements Toolbox API 管理链接的自定义属性

此示例展示如何使用 Requirements Toolbox™ API 创建和管理链接集的自定义属性以及设置链接的自定义属性值。

建立链接集

加载crs_req需求文件,该文件描述了巡航控制系统。找到名为crs_req的链接集并将其分配给变量。

slreq.load('crs_req');
ls = slreq.find('Type','LinkSet','Name','crs_req')
ls = 
  LinkSet with properties:

             Description: 'crs_req'
                Filename: '/tmp/Bdoc24a_2589924_1367394/tpbc0f8ec9/slrequirements-ex23809012/crs_req.slmx'
                Artifact: '/tmp/Bdoc24a_2589924_1367394/tpbc0f8ec9/slrequirements-ex23809012/crs_req.slreqx'
                  Domain: 'linktype_rmi_slreq'
                Revision: 11
                   Dirty: 0
    CustomAttributeNames: {'Target Speed Change'}

删除自定义属性

链接集中有一个名为 Target Speed Change 的现有自定义属性。删除自定义属性,并通过检查链接集的现有自定义属性名称来确认结果。

deleteAttribute(ls,'Target Speed Change','Force',true);
ls.CustomAttributeNames
ans =

  0x0 empty cell array

添加每种类型的自定义属性

向链接集添加每种类型的自定义属性。创建一个带有描述的Edit自定义属性。

addAttribute(ls,'MyEditAttribute','Edit','Description',['You can enter text as' ...
    ' the custom attribute value.'])

创建一个 Checkbox 类型属性并将其 DefaultValue属性设置为 true

addAttribute(ls,'MyCheckboxAttribute','Checkbox','DefaultValue',true)

创建 Combobox 自定义属性。因为第一个选项必须是 Unset,所以添加选项 'Unset''A''B''C'

addAttribute(ls,'MyComboboxAttribute','Combobox','List',{'Unset','A','B','C'})

创建 DateTime 自定义属性。

addAttribute(ls,'MyDateTimeAttribute','DateTime')

检查链接集的自定义属性。获取有关 MyComboboxAttribute 的信息以查看您添加到 Combobox 属性的选项。

ls.CustomAttributeNames
ans = 1x4 cell
    {'MyCheckboxAttribute'}    {'MyComboboxAttribute'}    {'MyDateTimeAttribute'}    {'MyEditAttribute'}

atrb = inspectAttribute(ls,'MyComboboxAttribute')
atrb = struct with fields:
           name: 'MyComboboxAttribute'
           type: Combobox
    description: ''
           list: {'Unset'  'A'  'B'  'C'}

为链接设置自定义属性值

在链接集中找到一个链接,并为您创建的所有四个自定义属性设置自定义属性值。

lk = find(ls,'SID',3);
setAttribute(lk,'MyEditAttribute','Value for edit attribute.');
setAttribute(lk,'MyCheckboxAttribute',false);
setAttribute(lk,'MyComboboxAttribute','B');

使用所需的区域设置设置 MyDateTimeAttribute,以确保在其他区域的系统上以正确的格式设置日期和时间。查看 Locale 以了解更多信息。

localDateTimeStr = datestr(datetime('15-Jul-2018 11:00:00','Locale','en_US'),'Local');
setAttribute(lk,'MyDateTimeAttribute',localDateTimeStr);

查看属性值。

getAttribute(lk,'MyEditAttribute')
ans = 
'Value for edit attribute.'
getAttribute(lk,'MyCheckboxAttribute')
ans = logical
   0

getAttribute(lk,'MyComboboxAttribute')
ans = 
'B'
getAttribute(lk,'MyDateTimeAttribute')
ans = datetime
   15-Jul-2018 11:00:00

编辑自定义属性

为链接集定义自定义属性后,您可以对自定义属性进行有限的更改。

MyCheckboxAttributeMyComboboxAttribute 添加描述,然后更改 MyComboboxAttribute 的选项列表。由于您无法更新 Checkbox 属性的默认值,因此您只能更新 MyCheckboxAttribute 的描述。查看更改。

updateAttribute(ls,'MyCheckboxAttribute','Description',['The checkbox value can be' ...
    ' true or false.']);
updateAttribute(ls,'MyComboboxAttribute','Description',['Choose an option from the ' ...
    'list.'],'List',{'Unset','1','2','3'});
atrb2 = inspectAttribute(ls,'MyCheckboxAttribute')
atrb2 = struct with fields:
           name: 'MyCheckboxAttribute'
           type: Checkbox
    description: 'The checkbox value can be true or false.'
        default: 1

atrb3 = inspectAttribute(ls,'MyComboboxAttribute')
atrb3 = struct with fields:
           name: 'MyComboboxAttribute'
           type: Combobox
    description: 'Choose an option from the list.'
           list: {'Unset'  '1'  '2'  '3'}

查找与自定义属性值匹配的链接

在链接集中搜索所有将 'MyEditAttribute' 设置为 'Value for edit attribute.' 的链接

lk2 = find(ls,'MyEditAttribute','Value for edit attribute.')
lk2 = 
  Link with properties:

           Type: 'Derive'
    Description: '#8: Set Switch Detection'
       Keywords: {}
      Rationale: ''
      CreatedOn: 20-May-2017 13:14:40
      CreatedBy: 'itoy'
     ModifiedOn: 20-Apr-2024 08:26:45
     ModifiedBy: 'batserve'
       Revision: 5
            SID: 3
       Comments: [0x0 struct]

在链接集中搜索所有将 MyCheckboxAttribute 设置为 true 的链接。

lkArray = find(ls,'MyCheckboxAttribute',true)
lkArray=1×11 Link array with properties:
    Type
    Description
    Keywords
    Rationale
    CreatedOn
    CreatedBy
    ModifiedOn
    ModifiedBy
    Revision
    SID
    Comments

在链接集中搜索所有将 MyComboboxAttribute 设置为 'Unset' 的链接。

lkArray2 = find(ls,'MyComboboxAttribute','Unset')
lkArray2=1×12 Link array with properties:
    Type
    Description
    Keywords
    Rationale
    CreatedOn
    CreatedBy
    ModifiedOn
    ModifiedBy
    Revision
    SID
    Comments

删除自定义属性

您可以使用deleteAttribute来删除属性。但是,由于本例中创建的自定义属性已分配给链接,因此必须将 Force 设置为 true 才能删除这些属性。删除MyEditAttribute并确认更改。

deleteAttribute(ls,'MyEditAttribute','Force',true);
ls.CustomAttributeNames
ans = 1x3 cell
    {'MyCheckboxAttribute'}    {'MyComboboxAttribute'}    {'MyDateTimeAttribute'}

添加新的自定义属性,但不为链接设置任何自定义属性值。

addAttribute(ls,'NewEditAttribute','Edit');
ls.CustomAttributeNames
ans = 1x4 cell
    {'MyCheckboxAttribute'}    {'MyComboboxAttribute'}    {'MyDateTimeAttribute'}    {'NewEditAttribute'}

因为 NewEditAttribute 没有被任何链接使用,所以可以通过将 Force 设置为 false 来将其与 deleteAttribute 一起删除。确认更改。

deleteAttribute(ls,'NewEditAttribute','Force',false);
ls.CustomAttributeNames
ans = 1x3 cell
    {'MyCheckboxAttribute'}    {'MyComboboxAttribute'}    {'MyDateTimeAttribute'}

清理

清除打开的需求集和链接集,并关闭打开的模型而不保存更改。

slreq.clear;
bdclose all;

另请参阅

| | | | | |

相关示例

详细信息