使用 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
编辑自定义属性
为链接集定义自定义属性后,您可以对自定义属性进行有限的更改。
为 MyCheckboxAttribute
和 MyComboboxAttribute
添加描述,然后更改 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;
另请参阅
slreq.LinkSet
| addAttribute
| updateAttribute
| inspectAttribute
| deleteAttribute
| getAttribute
| setAttribute