# 资源

> Logic 那一栏里的 Assets 根：带五个类别和数量的总览面板、创建和导入命令、每个素材库共用的那套形状、Logic 地址能点到的那三个类别，以及每一种各用在哪里。

**Assets** 是 Logic 那一栏“在这里定义”小标题下面的最后一个根：工作站自己的那份呈现素材库，分成五个类别，也就是这个根的五个子项：**Images**、**Icons**、**Colors**、**Symbols** 和 **Connection types**。整个工作站只有这一份素材库，每一张仪表画面、每一份报告和每一个图元都共用它，所以一个名字在每一张画面上都是同一个意思。读它需要**查看 Logic**；任何改动都需要**配置 Logic**。

## 本组的页面 {#in-this-group}

| 页面 | 讲什么 |
| --- | --- |
| [图像](assets-images) | 导入的 PNG 和 JPG 图片，以及产品自带的那些图像。 |
| [图标](assets-icons) | Fluent UI System Icons 目录，以及你自己的 SVG 图标。 |
| [颜色](assets-colors) | 有名字的系统调色板，以及你自己的色块。 |
| [图元](assets-symbols) | 十一个系统图元库、你自己的图元、导入、导出和检视面板。 |
| [连线类型](assets-connection-types) | 仪表画面上一条连线所承载的八种走向含义，以及它们的全局颜色和粗细。 |
| [可移植 SVG 图元](ganter-symbols) | 导入所接受的那种图元格式的编写参考。 |

## Assets 根和它的总览 {#the-assets-root-and-its-overview}

根那一行带着五个类别的总和，而每一个子项行带着它自己的数量。选中这个根会打开总览面板，标题是“资源”，配一行“浏览本工作站的图像、图标、命名颜色、工艺图元和连线类型。”，下面是五张卡片；按一张卡片会在树里选中那个类别的行并打开它的面板。

| 卡片 | 卡片上的那一行 | 数量数的是什么 |
| --- | --- | --- |
| 图像 | 供仪表画面和报告版式使用的导入图片。 | 你导入的图像，加上产品随附的那四张图像。 |
| 图标 | Fluent 字形和操作员自有的 SVG 图标。 | 每一个各不相同、可寻址的图标，目录里的和你自己的都算。 |
| 颜色 | 命名的系统颜色和操作员定义的色块。 | 十种系统颜色加上你自己的，减去被你自己的顶掉的那些系统颜色。 |
| 图元 | 面向仪表画面、实验室、联网产品、建筑、IT、能源和工业的现代图元。 | 那些系统库，加上你自己能画出来的图元。 |
| 连线类型 | 液体、气体、电力、信号等走向的全局颜色和粗细。 | 永远是 8。 |

总览自己没有任何命令。一个类别行上的命令栏带着它的创建和导入命令，只对拥有“配置 Logic”的角色画出来，而在工作站被锁住、只读，或者正忙于另一条素材库命令时，它带着原因置灰：

| 类别 | 命令栏上的命令 |
| --- | --- |
| Images | 导入图像… |
| Icons | 新建用户图标 |
| Colors | 新建颜色 |
| Symbols | 新建用户图元、导入图元…、复制对话指令（对每个角色都画出来：它只读不写） |
| Connection types | 没有；那八种类型由面板自己的字段编辑 |

一个类别的编辑器开着的时候（在创建或编辑一个条目），命令栏不画出来；**返回**回到目录。

## 每个素材库共用的那套形状 {#the-shape-every-library-shares}

每个类别的面板都以共用的标题栏开头（这个类别的标记、名称和说明），加一枚带数量的胶囊（“2770 个图标”）。一条命令跑着的时候会出现一行“正在更新素材库…”，而角色不能配置时，一条提醒会说明这是一个只读的界面（“你的角色可以查看 Logic，但不能配置它（变量、动作、触发器、报警和资源）。”）。再往下，面板分成一列目录和一个检视面板，中间有一条可以拖动的分隔条（每个素材库在这个浏览器配置文件里各自记住自己的宽度）；在有卡片被选中之前，检视面板写着“选中一张图像即可查看它的预览和元数据。”（每个素材库各有各的说法）。素材库处于四种模式之一：**浏览**（什么都没选中）、**详情**（选中了一张卡片，它的检视面板开着）、**创建**或**编辑**（编辑器顶掉目录的位置）。

卡片上方是那些筛选项：**来源**（全部、系统、我的）、**每页**（24、48 或 96 张卡片；一开始是 48，而每个素材库在页面开着期间记住你挑的那个数），图标和图元还多一个**搜索**框。一行结果说明有多少条匹配（“312 个图标”）以及屏幕上是哪几条（“第 49–96 项，共 312 项”）；**上一页**、**下一页**和“第 2 页，共 7 页”翻动它们，而任何时候只画一页卡片，所以最大的目录和几张卡片一样便宜。把筛选收窄会回到第一页，并丢掉筛选之后不再显示的那个选中项；结果为空时提供**清除筛选**或**清除筛选**。卡片显示这个条目的图、名称和来源（系统或我的）；系统条目是只读的，而“我的”条目在它的检视面板里为一个能配置的角色提供**编辑**和**删除**。

每一个结果（创建、保存、导入、删除、被拒绝）都报告在窗口的操作记录条里，绝不报告在面板内部。

## Logic 地址能点到什么 {#what-a-logic-address-can-name}

有三个类别可以寻址，就在[地址空间](logic-address-space)的 `Assets` 根下面：

| 地址 | 它返回的值 |
| --- | --- |
| `Assets.Images.<name>` | 这张图像的素材 id，以文本形式：也就是一个输出为图片的变量所返回的东西 |
| `Assets.Icons.<name>` | 一个 Fluent 字形，或者一个用户图标经过净化的 SVG 标记 |
| `Assets.Colors.<name>` | 一个十六进制颜色，例如 `#C42B1C`（`Assets.Colors.Red`） |

`<name>` 是显示名称规整之后的那一段（`Brand light` 对应 `Assets.Colors.Brand_light`）。一个用户图标或用户颜色的段和某个系统条目撞上时，它在那个地址上顶掉系统条目。图元和连线类型没有 Logic 地址：仪表画面上的图元组件按 `system:<key>` 或 `user:<id>` 引用一个图元，而一条连线存的是它类型的键。

这三个可寻址的类别，正是那些呈现类[输出类型](logic-variables#output-types)所读的东西：一个声明为图片、图标或颜色的表达式变量返回这几种地址之一（`Variables.Level.Value > 50 ? Assets.Colors.Red : Assets.Colors.Green`），变量编辑器实时预览结果，而绑上去的[图片](component-image)、[图标](component-icon)或[图元](component-symbol)组件画出它此刻解析出来的东西。这也正是“由数值决定画什么”这个决定住在变量里、而不是住在组件里的原因。

## 每一种各用在哪里 {#where-each-kind-is-used}

| 种类 | 被谁用 |
| --- | --- |
| 图像 | 仪表画面上的图片组件；点名这张图像的[报告版式](process-reports)上的徽标 |
| 图标 | 仪表画面上的图标组件，以及输出为图标的变量 |
| 颜色 | 输出为颜色的变量、图元的颜色输入，以及每一个接受颜色地址的仪表画面属性 |
| 图元 | 仪表画面上的图元组件及其连线 |
| 连线类型 | [仪表画面编辑器](view-editor)里画在图元连接点之间的每一条连线 |

## 上限与拒绝 {#limits-and-refusals}

素材库会拒绝空名字、拒绝规整之后那一段已经被同一种类的另一个条目用掉的名字（产品图像也算），拒绝给系统条目重命名或删除（“‘X’随产品一起提供，所以既不能重命名也不能删除。”），也拒绝工作站被一次运行锁住、只读，或者正忙于另一条素材库命令期间的任何改动。删掉一个条目从不问什么在用它：那些引用会降级成一个占位，或者变成悬空，由[验证](validation)列出来。配置备份带着整个素材库，图像文件也在内（见[备份](settings-backups)）。
