输入用户定义的属性值
您可以将用户定义的属性 (UDA) 值从文本文件输入到模型中。例如,您可以将一系列完成制造或校核的构件输入到模型中。您还可以通过属性输入清除现有的用户定义的属性值。
您可以将属性值输入 Tekla Structures 模型对象、图纸和一些参考模型对象。除了在输入文件中定义匹配条件外,还可以将输入范围限制为在模型中选择的对象或参考模型对象。
输入文件可以:
从其他软件输入。
使用任何标准文本编辑器(例如 Microsoft 记事本)手动创建。
-
创建自 Microsoft Excel,方法是使用另存为命令将文件保存为文本(制表符分隔)(*.txt) 格式。
-
是包含零件 GUID 和用户定义的属性的简单 Tekla Structures 报告。
输入文件结构
分隔符
分隔符是一个字符,用于分隔同一行中的不同字段。您可以使用不显示在要输入的属性名称或值中的任何 ASCII 字符分隔字段。您可以在同一输入文件中使用多个替代分隔符。常见分隔符包括逗号、制表符、分号和空格。
字段和值定义
在输入文件中,第一行是文件头,定义输入文件的其余字段。输入文件中的所有其它行包含您在第一行中指定的字段的值。
第一行必须包含至少一个标识模型对象或图纸的关键字域,以及至少一个用户定义的属性名称(标识要输入新值的用户定义的属性字段)。请注意,许多字段的名称与您在用户界面中看到的字段标签不同。应用于模型的 objects.inp 文件中定义了用户定义的属性名称(请参见有关如何读取文件的参考)。
配置文件 import_macro_data_types.dat(后面会进一步介绍)定义了可以在属性输入中使用的字段以及每个属性的数据类型。无法添加或更改关键字域,但可以编辑用户定义的属性集。值将输入为字符串(文本),除非 import_macro_data_types.dat 文件中为该属性定义了不同的数据类型。
可用的关键字域
模型对象的关键字域有:
关键字域 |
示例 |
作用 |
---|---|---|
|
|
Tekla Structures 将输入文件中此行上的用户定义的属性分配给 |
或者
|
|
Tekla Structures 将输入文件中此行上的用户定义的属性分配给 对于您要包含的每个构件重复此行。 |
|
|
Tekla Structures 将输入文件中此行上的用户定义的属性分配给 选择此选项时,还必须使用 |
图纸对象的关键字域有:
关键字域 |
示例 |
作用 |
---|---|---|
|
|
Tekla Structures 将输入文件中此行上的用户定义的属性分配给 在输入文件中同时使用这两个关键字域。 |
|
|
Tekla Structures 将输入文件中此行上的用户定义的属性分配给 |
空值
输入文件中的某些行可能并不包含所有属性字段的值(值之间可能有两个或更多个连续分隔符)。输入期间可跳过这些空值而不对用户定义的属性进行任何更改,也可以使用这些空值擦除模型中现有的用户定义的属性值。默认情况下,将跳过空值。要清除现有值,请在 ini 文件中将高级选项 XS_ERASE_UDA_VALUE_WITH_ATTRIBUTE_IMPORT_NULL_AND_BLANK
设置为 TRUE
。
读入顺序
Tekla Structures 从第一行开始按顺序读取输入文件。如果以下行中存在重复的关键字域,则仅输入第一个出现的字域。
数据文件 (import_macro_data_types.dat)
要将一个值输入用户定义的属性,必须在 import_macro_data_types.dat 数据文件中正确定义字段名称和数据类型。您可以添加、编辑和删除要输入数据的用户定义的属性字段。不要编辑文件的关键字域部分 - 无法添加新的关键字域。
文件位置
默认数据文件位于环境文件夹中的 system 文件夹,例如 C:\ProgramData\Trimble\Tekla Structures\<version>\environments\common\system。您正在使用的环境中可能还存在该文件的本地化版本。
不要更改默认文件。请创建文件的副本并将其存储在不同的位置,例如公司文件夹或者模型文件夹中的 attributes 文件夹。这样,重新安装或升级 Tekla Structures 时就不会覆盖您的更改。当文件存在于多个位置时,遵循默认文件夹搜索顺序而且只使用读取的第一个文件。
文件内容
import_macro_data_types.dat 文件是纯文本。您可以使用任何标准文本编辑器(例如 Microsoft 记事本)修改该文件。
文件中的每一行都是一个字段定义,可包含顺序如下的以下属性:
User-defined attribute name,Data type,Conversion factor,Comments
-
User-defined attribute name
.在 objects.inp 文件中写入为字段定义的内部字段名称。例如,在 objects.inp 定义
attribute("USER_FIELD_1", "j_user_field_1", string, "%s", no, none, "0.0", "0.0")
中,用户定义的属性名称是 USER_FIELD_1。 Data type
.值可以是:
INT
(整数)、STRING
(文本)、FLOAT
(小数)或DATE
(带日历小部件的日期字段)。如果值缺失或不正确,则值默认为STRING
。值类型不匹配不会阻止数据输入,但结果可能并不总是正确,具体取决于数据和字段。例如,如果数据类型不是
DATE
,日期字段可能设置错误。另一方面,您可以将数据类型为整数的数字输入到文本字段中,而不会出现问题。带有选项列表的字段定义为
INT
值类型的编号字段。例如,对象锁定可设置为否 、是和组织,在输入文件中对应的编号为 0、1 和 2。-
Conversion factor
(可选,仅FLOAT
)。用于在英制环境中将英制值转换为公制值。注:我们建议您检查
FLOAT
值以避免转换系数出错。 Comment
(可选)。遵循上述定义的任何字符都将忽略,并可用于写入评注。但是,这些评注应谨慎使用,因为如果大多数评注单独写一行(如下所示),文件会更容易读取。
Tekla Structures 将双斜杠字符 (//
) 开头的行当作评注,读取文件时会忽略它们。
示例:
//Regular attributes
R1_ISSUED_FOR_APPRL, STRING
R1_DATE_APPROVED, DATE
//Attribute with conversion factor and comment
shear1, FLOAT, 4448.2222, For kips
输入文件的示例
零件的输入文件示例
此输入文件用制表符分隔。
ASSEMBLY_POS
和 PHASE
是关键字域。Tekla Structures 将向值与 ASSEMBLY_POS
和 PHASE
列中所列的值相匹配的构件添加多个用户定义的属性。
例如,状态为 1,ASSEMBLY_POS
(构件编号)为 B5 的构件将获得以下用户定义的属性:
STATUS
:3
USER_PHASE
:6
USER_ISSUE
:3/25/2019
ASSEMBLY_POS PHASE STATUS USER_PHASE USER_ISSUE
B1 1 7 3 3/25/2019
B2 1 7 3 3/25/2019
B3 1 7 3 3/25/2019
B4 1 7 3 3/25/2019
B5 1 3 6 3/25/2019
B1 1 3 5 3/26/2019
B2 2 3 4 3/26/2019
该输入文件包含两个 B1 条目。在这种情况下,Tekla Structures 在日志文件中写入消息“>输入文件有多个入口。”,仅输入文件中的第一个条目。所以在此例中,属性输入之后,B1 将具备以下用户定义的属性:
STATUS
:7
USER_PHASE
:3
USER_ISSUE
:3/25/2019
图纸的输入文件示例
此输入文件用制表符分隔。
TYPE
和 NAME
是关键字域。Tekla Structures 将在图纸中为用户定义的属性 User field 4
添加值,这些图纸中的值与 TYPE
和 NAME
列中所列的值匹配。
例如,对于 TYPE A
(构件图)和 NAME
B.2 所限定的图纸,其 User field 4
中的值为 4。
TYPE NAME DRAWING_USERFIELD_4
A B.1 3
A B.2 4
A C.1 1
A C.2 2
处理输入文件
默认情况下,将跳过空值。要清除现有值,请在 ini 文件中将高级选项 XS_ERASE_UDA_VALUE_WITH_ATTRIBUTE_IMPORT_NULL_AND_BLANK
设置为 TRUE
。