Saul Candib
Microsoft Corporation
适用于:
Microsoft Office Visio 2003 Editions
摘要: ShapeStudio 是包含在 Microsoft Office Visio 2003 SDK 中的形状开发工具,它提供了能够与 Visio 集成的开发和测试环境。本文介绍了 ShapeStudio 工作环境、工作流程以及各种关键概念,并说明了如何下载、安装和设置 ShapeStudio。

本页内容
![]() | 在 Visio 2003 中开发形状 |
![]() | ShapeStudio 简介 |
![]() | 下载和安装 ShapeStudio |
![]() | 设置 ShapeStudio |
![]() | 启动 ShapeStudio |
![]() | ShapeStudio 工作环境 |
![]() | ShapeStudio 中的关键元素和概念 |
![]() | ShapeStudio 中的工作流 |
![]() | 使用 ShapeStudio 帮助 |
![]() | 其他资源 |
在 Visio 2003 中开发形状
Microsoft Office Visio 2003 是一个基于形状的绘图程序,它提供了丰富的内置形状,用户可以将这些形状拖放到绘图页中来创建图形;在 Visio 中还可以使用很多第三方提供的形状。但是,有时存在的内置形状或第三方的形状都无法解决特定的绘图问题,这样形状开发人员就必须创建具有某种特殊外观、或者具有特定行为方式的自定义形状。创建之后,自定义形状就成为可重用的组件,可以分配到 Visio 模板中,也可以编译到形状库中。具备使用自定义形状的能力是推动 Visio 成为一个如此强大的绘图程序的功能之一。
开发形状涉及到创建形状的几何图形,以及指定和实现它的行为。通过选择几何图形和行为的正确组合,形状开发人员可以创建一些形状,对它们在真实世界中代表的对象进行建模。
形状的几何图形 指的是形状的外观,它由线、角、形状的格式以及形状是否旋转组成。它还包括了构成形状的方式,例如,它是一个简单形状,还是一个将几个简单形状组合在一起的复杂形状(如图 1 中的形状)。您可以通过在绘图页上使用 Visio 绘图工具来绘制形状,从而创建几何形状。您也可以通过在 Visio ShapeSheet 电子表格中写入公式,来创建或扩展几何形状。

图 1. 具有复杂几何图形的形状
形状的行为 指的是某个形状与其他形状以及绘图页进行交互的方式,以及用户可以与该形状进行交互的方式。例如,形状行为决定当用户将某个形状拖到绘图页、双击该形状,或者在该形状的快捷(右键单击)菜单上单击某个命令时,该形状会执行什么操作。如图 2 所示,形状开发人员可以创建一种行为,让用户能够通过单击快捷菜单命令的方式,将某个形状从圆形更改为正方形。

图 2. 通过单击快捷菜单命令来更改形状
形状行为的概念还包括指定给形状的自定义属性以及与该形状相关的数据。
形状行为通常是通过在 ShapeSheet 电子表格的单元格中输入的公式来实现的。(也可以使用“自动”以程序化的方式实现行为。)
当然,您可以在没有任何附加工具的情况下在 Visio 中创建形状,形状开发人员自从最早版本的 Visio 开始就一直从事着这样的工作。实际上,几何形状是由 Visio ShapeSheet 中的公式组成的,因此必须通过写入这些公式的方式直接创建,或者通过在绘图页上绘图的方式间接创建。
但是,因为实现形状行为总是需要了解如何编写 ShapeSheet 公式,所以这就成为了形状开发中最困难的一个方面。
有时,应该具有一致行为的相关形状的行为方式也会有所不同,这是因为它们的行为尚未以一种系统化的方式实现。形状的测试通常都是偶然完成的,因此没有可用来提高效率的自动化或脚本优点。
由于上述种种原因,如果有一种工具能够标准化形状开发,并能够更简单地指定、实现和测试形状行为,以及存储形状信息以便将来引用,将会非常有用。包含在 Visio 2003 SDK 中的 ShapeStudio 就是这样一种工具。
ShapeStudio 简介
ShapeStudio 是一个开发和生产工具,专门由那些设计和开发 Microsoft Office Visio 形状的人员使用。ShapeStudio 提供了一个自定义工作环境,该环境与 Visio 进行了集成,使得指定、创建、生成、测试和维护 Visio 智能形状和模板变得更加容易。
为什么使用 ShapeStudio?
使用 ShapeStudio 开发形状的一些原因如下所示:
• | 虽然开发一个简单的形状非常简单,但是开发复杂的形状或者具有复杂行为的形状却比较困难,并且需要专门的知识。尽管在 ShapeStudio 中了解 ShapeSheet 的知识也非常重要,但您可以向所创建的母版应用很多行为,甚至不用打开 ShapeSheet 窗口。 |
• | 内置到 ShapeStudio 中的行为是通过使用 Visio 形状开发的最佳做法实现的,因此您可以对在 ShapeStudio 中应用了行为的母版 ShapeSheet 进行研究,以了解这些最佳做法。 |
• | ShapeStudio 在新开发的形状中提供了一致性。您可以在 ShapeSheet 中通过各种方式(例如,通过使用不同的公式),或者在 ShapeSheet 中的不同位置(分区或单元格)实现同一种行为。使用 ShapeStudio 时,行为每次都是以相同的方式应用的。 |
• | ShapeStudio 可存储母版和模板的规范,以及与您在数据库(不是 Visio 文档)中单独创建的形状和项目相关的所有数据,从而使得由设计人员、开发人员和测试人员所组成团队的共同协作变得更加容易,也使得由不同团队或公司处理的形状创建的不同方面变得更加容易。 |
• | 母版和模板必须首先签出,才能进行编辑,它们可以对形状版本提供更加紧密的控制。 |
• | ShapeStudio 提供了很多测试工具,用于确保按照指定的内容实现行为。 |
何时使用 ShapeStudio
ShapeStudio 是一个功能非常强大的工具,可使得形状开发更加容易也更加可靠。但有时直接在 Visio 中创建形状而不利用 ShapeStudio 会更合适。例如,如果您正在创建某种形状,并且知道以后不再需要使用这种形状,那么就没有理由使用 ShapeStudio 了。
另外,还要记住,ShapeStudio 不会使得创建几何形状的过程变得更加简单 — 即使在 ShapeStudio 中,您也必须在绘图页上使用标准的 Visio 工具来创建几何形状。
当您想要执行下列操作时,请使用 ShapeStudio:
• | 创建具有复杂属性和行为的形状,例如多状态形状。 |
• | 创建的形状属于类似形状层次结构的一部分,或者是具有较小差异的形状集合的一部分。 |
• | 创建形状库,并在一段时间内保留这些形状,其中包括同时对多个形状进行更改。 |
• | 能够测试已经开发的形状,以确保它们正确实现了指定的行为。 |
• | 创建形状属于形状开发团队工作的一部分,该团队将工作内容划分给形状设计人员、开发人员和测试人员,或者将形状开发过程的一部分外包给其他公司。 |
• | 单独存储形状信息,而不是在使用形状的 Visio 文档中存储这些信息。 |
下载和安装 ShapeStudio
ShapeStudio 是作为 Visio 2003 Software Development Kit (SDK) 可下载版本的一部分包括在内的。
要安装 ShapeStudio,请下载可执行文件 vissdk.exe,然后运行该文件。(在安装该 SDK 之前,您必须在计算机上安装有 Visio 2003。另外,您必须拥有对 Microsoft SQL Server 或 MSDE 的访问权限 — 请参阅下一部分,以获得详细信息。)
设置 ShapeStudio
在您可以使用 ShapeStudio 之前,数据库管理员必须创建 ShapeStudio 数据库,该数据库将用来包含 ShapeStudio 项目。ShapeStudio 数据库可以是位于服务器上的 SQL Server 数据库,也可以是位于用户本地计算机上的 MSDE(Microsoft SQL Server 桌面引擎)数据库。ShapeStudio 提供了 ShapeStudio 数据库管理工具,以协助数据库管理员完成此任务。
ShapeStudio 数据库管理工具会创建一个在用户计算机上运行的 MSDE 数据库。
注 MSDE 2000 Release A 可免费下载。
为了帮助您设置 SQL Server 数据库,Visio 2003 SDK 还包括了一个名为 SStudio.sql 的 SQL 脚本文件,数据库管理员必须运行此文件。包含该 SQL Server 脚本文件的目的是为了让数据库管理员可以研究该文件,并根据自己的需要对其进行修改。但是,该脚本只允许这样的修改:即,创建一个全局 ShapeStudio 项目,它所具有的单位和版本与默认设置不同。(请参阅该 SQL 脚本结尾处的注释。)
ShapeStudio 数据库管理工具实际上并不运行该脚本文件,而是运行与该工具可执行文件相链接的脚本文件的一个副本(包含了相同的 SQL 语句),因此确保了始终创建有效的数据库,即使该脚本被修改或删除也是如此。
该 SQL Server 脚本文件执行下列操作:
• | 创建 ShapeStudio 数据库。 |
• | 创建表。 |
• | 创建和执行存储过程。 |
• | 添加标准的 Visio ShapeStudio 行为。 |
• | 创建一个全局项目。每个数据库中有且只能有一个全局项目。 |
• | 为全局项目设置默认的 Visio 版本和测量单位。 注 所提供的脚本会对数据库进行设置,以便将在数据库的项目中创建的模板设计为在 Visio 2003 中使用,并且使用美制单位。要修改这些值,请对脚本文件底部指定这种版本和单位组合的行进行注释,然后从所需的指定版本和单位组合的行中删除注释标记。 |
• | 为数据库创建开放式数据库连接 (ODBC) 数据源名称 (DSN) 连接。如果不存在默认的 ShapeStudio DSN 连接,该连接将成为默认的 ShapeStudio DSN 连接。 |
ShapeStudio 数据库管理工具(图 3)的文件名为 SSadmin.exe,如果您要将该 SDK 安装到默认位置,该工具将安装到以下文件夹中: C:/Program Files/Microsoft Office/Visio11/SDK/ShapeStudio/。

图 3. ShapeStudio 数据库管理工具窗口
启动 ShapeStudio
ShapeStudio 是一个 Visio 附件 (VSL)。要使用 ShapeStudio,您必须安装并运行 Visio 2003。
仅对于 Microsoft Windows 2000 操作系统,ShapeStudio 需要 Microsoft Data Access Components (MDAC) 2.6。
启动 ShapeStudio
1. | 启动 Visio 2003。 |
2. | 在 Tools 菜单上,单击 ShapeStudio。 |
3. | 在 ShapeStudio 对话框中,选择您要连接的数据源,以及要在其中操作的项目。 |
ShapeStudio 工作环境
因为 ShapeStudio 是一个 Visio 附件,所以它在 Visio 窗口中运行(图 4),但是提供了自己单独的工作区。

图 4. ShapeStudio 工作环境
ShapeStudio 工作区包括四个 ShapeStudio 特有的窗口。
• | Project Explorer 窗口 Project Explorer 窗口包含了项目的树视图,显示了项目中所有对象之间的层次关系。该窗口具有两个视图:基母版和母版显示在 Masters 视图中(图 5);模板规范以及为它们指定的母版显示在 Stencils 视图中。您可以右键单击树中的任何对象来访问与该上下文相关的命令,如 Check Out 命令,该命令可以签出母版以便您可以基于它工作。 ![]() 图 5. Project Explorer 窗口中的 Masters 视图 |
• | Specification 窗口 Specification 窗口(图 6)显示了您为基母版、母版和模板规范指定的行为列表。您可以使用此窗口指定要包含在对象规范中的行为。 单击 Modify 可以打开 Modify Specification 对话框,在该对话框中,您可以查看指定给该规范的行为列表,向该规范指定新的行为,或者修改或删除已经指定给该规范的行为。 ![]() 图 6. Master 规范窗口 |
• | Validation 窗口 所有验证和错误信息均显示在 Validation 窗口(图 7)中。使用此视图可以解决验证错误。 在 Validation 窗口中双击基母版、母版或模板规范的名称以解决验证错误。您也可以右键单击 Validation 窗口文本区域的任何位置,以访问与该上下文相关的命令。 ![]() 图 7. Validation 窗口 |
• | Output 窗口 所有项目日志信息均显示在 Output 窗口中(图 8)。 您可以右键单击 Output 窗口文本区域的任何位置,以打开日志文件或访问与该上下文相关的其他命令。 ![]() 图 8. Output 窗口 |
另外,该工作区还包括三个所有 Visio 图形常用的窗口:文档模板、文档页和母版编辑窗口。
• | 文档模板 当您签出基母版或母版以编辑其行为规范或几何形状时,它会显示在文档模板(图 9)中。当您双击文档模板中的某个母版时,Visio 会打开一个编辑窗口,您可以在其中编辑母版的几何形状。您可以将母版从文档模板拖到文档页中,以使用其实例进行试验。您还可以在文档模板中打开基母版或母版的只读副本,并将它们拖到该页中,用于同样的目的。 ![]() 图 9. 文档模板中已经签出的只读母版 当您以只读方式打开一个基母版或母版时,它的规范也处于只读模式。将母版放到文档模板中时,会在其名称前添加文本“[read-only]”,以帮助您将其与已经签出的母版区分开来。 |
• | 绘图页 ShapeStudio 中的绘图页窗口与 Visio 绘图页窗口完全相同。在绘图页上,您可以使用所创建母版的实例进行试验。 |
• | 母版编辑窗口 在文档模板中双击母版时,Visio 会打开母版编辑窗口,您可以在该窗口中创建或编辑该母版的几何形状。在向母版应用任何行为之前,您必须先创建母版的几何形状。 |
ShapeStudio 中的关键元素和概念
ShapeStudio 由各种元素和概念组成,有些与 Visio 类似,有些与其他应用程序和工具类似,如项目和模板;有些则是 ShapeStudio 所特有的,如行为和集合。
项目
ShapeStudio 中的项目提供了一种用于组合和管理形状开发工作的方法。您可以用最适合您需要的方法来组织您的项目。例如,项目可以包含特定解决方案区域或内容域(如网络设备)的形状信息。您创建的每个项目都存储在您为 ShapeStudio 指定的数据库中。项目具有属性,您可以在 Project Properties 对话框(ShapeStudio 菜单)中指定这些属性。有关项目的详细信息,请参阅 ShapeStudio 帮助中的“About Workflow and Roles in ShapeStudio”主题。
基母版和母版规范
基母版规范 或母版规范 是一个正式定义,其中分别包括了基母版和母版的意图行为和形状特定的详细信息。当您创建项目时,最好将基母版创建为应该共享相似行为的母版组的模板。
在您从完整的模板规范生成模板文件之后,ShapeStudio 母版与 Visio 模板上可用的实际母版形状相对应。但是,基母版只是一些分类机制,它使您能够更加容易地对母版进行分类,并创建具有类似规范的母版组。基母版不会出现在 ShapeStudio 的外面。
除了与基母版相关联的母版之外,ShapeStudio 还提供了无基母版,这种模板与任何基母版都没有关联。例如,如果您希望所包含的母版不会从基母版中继承不需要的行为,那就可以创建一个无基母版。有关基母版和母版规范的详细信息,请参阅 ShapeStudio 帮助中的“About Master and Base Master Specifications”主题。
模板规范
模板规范 是现有母版的虚拟程序集。它包括了您要创建的模板的名称和属性、要指定给该模板的母版列表,以及要创建的关于该模板的任何注释。
您可以将在项目中创建的任何母版(而不是基母版)指定给模板规范。虽然 ShapeStudio 中只存在任何母版的一个版本,但是一个母版可以属于多个模板。
在您生成模板文件时,模板规范用于生成包含实际母版的 .vss 或 .vsx 文件,Visio 会将这些文件识别为模板文件。有关模板规范的详细信息,请参阅 ShapeStudio 帮助中的“About Stencil Specifications”主题。
行为
ShapeStudio 引入了向形状指定行为的概念,并将其作为一种简化创建智能形状过程的方式。行为是您希望形状拥有的某个特征的抽象定义 — 例如,形状具有某个关联的屏幕提示。您不必为经常需要的形状功能计算和编写各种复杂的 ShapeSheet 公式、单元格引用或属性设置,而是可以向母版指定行为,以描述作为该母版实例的形状应该如何活动。然后,ShapeStudio 会使用 Visio 形状开发人员提供的最佳实现做法来创建该行为。
ShapeStudio 使得实现下列常用母版属性和行为(以及其他属性和行为)更加容易:
• | 标注线 |
• | 连接点 |
• | 快捷菜单 |
• | 动态粘贴(形状连接随着形状的移动而自动调整) |
• | 控点 |
• | 拖放响应 |
• | 层成员关系 |
• | 大小和调整大小 |
• | 形状结构 |
• | 多状态 |
• | 智能标记 |
• | 屏幕提示 |
有关行为的详细信息以及 ShapeStudio 中行为的详细列表,请参阅 ShapeStudio 帮助中的“About Behaviors in ShapeStudio”主题。
集合
集合是可以由行为使用的自定义属性分组。您可以定义快捷菜单和智能标记菜单命令(操作)、自定义属性、层成员关系和用户定义的 ShapeSheet 单元格的集合,然后将它们以不同的组合指定给形状,从而使得您创建的形状更加模块化。有关集合的详细信息,请参阅 ShapeStudio 帮助中的“About Sets in ShapeStudio”主题。
测试和验证
在 ShapeStudio 中,您可以验证基母版和母版,以检验项目中开发的对象是否符合项目管理者或形状设计人员最初想要的规范设置。当您使用规范验证对象的当前设置时,与该规范的任何偏离都会被标记为错误。您可以忽略这些错误,在这种情况下,它们会继续标记为错误;也可以向对象重新应用这些规范值,从而解决这些错误。
ShapeStudio 提供了两个测试工具,可以帮助确定母版是否符合规范,并可以协助找出可能导致母版无法通过验证的错误。
• | 标准形状测试工具 此工具提供了 28 个预先定义的测试,这些测试会检查母版的各种设置。您可以运行所有这些测试(默认设置),也可以运行这些测试的任意组合。通常情况下,这些测试会根据母版中的规范检查 ShapeSheet 单元格或 Automation 属性是否设置正确。标准测试是只读的:它们只检查设置,而不会更改这些设置。您可以使用 Find and Replace Cells 和 Set Cells 工具来更改多个母版中的属性。 |
• | 自定义形状测试工具 此工具使您能够创建可运行您所设计的一个或多个自定义测试的自定义测试脚本。您可以在 Project Explorer 窗口的 Masters 视图中选定的母版规范上运行该脚本,也可以在 Stencils 视图中选定的模板规范上运行该脚本。当您测试模板时,会测试指定给这些模板的所有母版。您可以保存所创建的测试脚本(保存为 XML 文件),以便可以再次运行这些脚本,并在需要时修改它们。 |
有关 ShapeStudio 中可用的所有测试的详细列表,请参阅 ShapeStudio 帮助中的“About Tools in ShapeStudio”主题。
报告
ShapeStudio 提供了多种报告,包括项目报告、模板报告和签出报告。有关报告的详细信息,请参阅 ShapeStudio 帮助中的“About Reports in ShapeStudio”主题。
参考图形
您可以向 ShapeStudio 项目附加参考图形,以便为开发人员提供一种实现形状时可以在其中进行操作的模型。例如,参考图形可以包含形状的图形、形状图标的位图,或者其他不能轻易指定为行为的说明性注释和要求。要了解如何向项目附加参考图形,请参阅 ShapeStudio 帮助中的“Add a Reference Drawing to a Project”主题。
样式
样式是 Visio 中的一个功能,可以使得向多个形状应用相同的格式设置更加容易。ShapeStudio 没有提供专门用于样式的用户界面,但是它会跟踪文档中的样式、将其存储在数据库中,并将它们作为母版签入和签出过程的一部分进行管理。
ShapeStudio 中的工作流
ShapeStudio 中的工作流通常由下列阶段组成:
1. | 设置和项目管理 |
2. | 规范和设计 |
3. | 开发 |
4. | 验证和测试 |
图 10 显示了这些阶段与项目角色和活动之间的关系。

图 10. ShapeStudio 工作流、角色和活动之间的图形化表示
下面的步骤指出了在数据库管理员设置全局项目之后,ShapeStudio 中使用的常规工作流。
1. | 打开 Visio,然后打开 ShapeStudio。 |
2. | 创建一个项目。此步骤包括命名项目,以及为项目指定数据库。 注 如果数据库管理员已经在全局项目中创建了全局基母版和母版,那么您的项目会继承这些内容。如果您打算在项目中使用全局母版或全局基母版,请确保项目中的项目单位和 Visio 版本设置与全局项目单位和 Visio 版本设置相匹配。 |
3. | 为您要创建的母版创建要用作“模板”的基母版。然后向您希望其关联母版继承的基母版指定行为。 |
4. | 基于某个特定的基母版创建母版,然后为这些母版指定其他行为(除了继承的行为之外)。 |
5. | 为母版绘图窗口中的每个母版添加几何形状。 |
6. | 根据指定的行为验证母版的当前行为,并解决错误。 |
7. | 创建模板规范,并为各种模板指定母版。 |
有关 ShapeStudio 中工作流的详细信息,请参阅 ShapeStudio 帮助中的“About Workflow and Roles in ShapeStudio”主题。
使用 ShapeStudio 帮助
ShapeStudio 具有一个内置的帮助系统,它更加详细地说明了本文中讲述的很多主题,并提供了一些指南以帮助您执行许多常见的过程。要访问 ShapeStudio 帮助,您必须运行 Visio 并打开一个 ShapeStudio 项目。然后,单击 ShapeStudio 菜单上的 Help 即可打开 Microsoft Office Visio 2003 Help 窗口。
其他资源
有关在 Visio 中开发形状的其他帮助,请参阅下列资源:
• | 在 Microsoft Office Visio 2003 的 ShapeStudio 中生成形状的分步指南(即将推出) |
• | |
• | Microsoft Office Visio 2003 SDK(下载版本,包括 ShapeStudio) |