C#获取Visio模型信息的简单方法示例

前言

Office Visio 是绘制各种类型图表的一个很好的工具,可以绘制业务流程的流程图、网络图、工作流图、数据库模型图、软件图,以及家居设计图等等,可用于可视化和简化业务流程、跟踪项目和资源、绘制组织结构图、映射网络、绘制建筑地图以及优化系统。

在最近的一个项目,要求导出Visio图纸,因为是建筑类的,所以,需要设置墙壁,门,房间等信息的参数。

拿墙壁为例,选中墙壁模型,右键属性,会弹出以下对话框。

需要设置墙长、墙壁厚度等一些列信息。

现在C#操作Visio里例子比较少,所以,花了好久,都没有看到有用的帖子,直到今天下午,在Bing里发现了一个帖子,顿时让我受益匪浅。原贴地址:http://mikeborozdin.com/post/reading-and-writing-visio-shape-information-with-c/

操作方法如下:

一、打开Visio的开发者模式

文件--选项--高级--以开发人员模式运行

二、查看模型的属性

选中模型--右键显示ShapeSheet,在Visio的下面就会出现模型的所有属性了。

下滑,可以在Shape Data里看到此模型的属性信息

三、C#代码操作

1、打开墙模型模板

WALL_M.VSS是墙的模型模板,这个推荐大家用everything搜索一下,就能拿到模板路径了,自己需要哪个去里面找。

2、建立模型并设置参数

建立模型很方便,就是用document.Masters属性加模型名称,模型名称在哪呢,其实很好找,就是Visio的模型名称,用汉字就可以。

设置模型的参数有两种方式,图片中用粉色框,框起来的部分。

网上大部分的资料里都是用的第一个方法,这个方法不太方便记忆,而第二个方法就很方便了,也就是本文介绍的简单的方式。

模型名.Cells["属性名"].Formula

属性名,就是ShapeSheet里看到的那些属性,都是String类型,可以直接设置。设置成功以后,就是以下的图了。

3、遇到的问题

并不是所有的属性,设置了就一定好使,问题,我也不知道出现在哪,其中一个就是填充属性。

FillForegnd是填充属性,设置代码为

m_sp4.Cells["FillForegnd"].Formula = "RGB(0,0,0)";

通过参数查看,设置成功

并且右键模型,格式--填充,如下图

其实已经设置成功了,但是模型的填充颜色不变,这个就很尴尬了,但是如果用基础模型,就是方形、圆形那些基础模型,就可以显示填充为黑色,所以不知道问题在哪里。

源码下载:点击这里

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • C#获取Visio模型信息的简单方法示例

    前言 Office Visio 是绘制各种类型图表的一个很好的工具,可以绘制业务流程的流程图.网络图.工作流图.数据库模型图.软件图,以及家居设计图等等,可用于可视化和简化业务流程.跟踪项目和资源.绘制组织结构图.映射网络.绘制建筑地图以及优化系统. 在最近的一个项目,要求导出Visio图纸,因为是建筑类的,所以,需要设置墙壁,门,房间等信息的参数. 拿墙壁为例,选中墙壁模型,右键属性,会弹出以下对话框. 需要设置墙长.墙壁厚度等一些列信息. 现在C#操作Visio里例子比较少,所以,花了好久,

  • Js 获取、判断浏览器版本信息的简单方法

    Navigator 对象包含有关浏览器的信息: •appCodeName -- 浏览器代码名的字符串表示 •appName -- 官方浏览器名的字符串表示 •appVersion -- 浏览器版本信息的字符串表示 •cookieEnabled -- 如果启用cookie返回true,否则返回false •javaEnabled -- 如果启用java返回true,否则返回false •platform -- 浏览器所在计算机平台的字符串表示 •plugins -- 安装在浏览器中的插件数组 •t

  • jquery实现ajax提交表单信息的简单方法(推荐)

    最近在思考优化项目,想自己扩展一个jquery自动获取表单中的数据进行ajax提交.本人没有完整性学习jquery,基本上是现学现找,有点困难. 主要是扩展和拼接json转对象 很简单,附上代码: ; (function ($) { $.fn.ajaxForm = function (options) { var defaults = { modelname: 'model',//后台对象接收名称 url: '/',//提交地址 postType: 'POST',//提交方式 dataType:

  • php获取'/'传参的值简单方法

    通过输出$GLOBALS可以看到'/'后的参数都存在于$_SERVER['PATH_INFO']里: 声明一个数组来获取我们在'/'后传递的参数 $arr = explode('/', $_SERVER['PATH_INFO']); //print_r($arr)查看详细信息 以上这篇php获取'/'传参的值简单方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Python运维之获取系统CPU信息的实现方法

    使用Python进行运维工作的时候有时候需要获取CPU的信息,这在psutil模块库的帮助下非常容易实现. 常见的CPU信息有以下几种: 1,用户时间以及百分比: 2,系统时间以及百分比: 3,空闲时间以及百分比: 4,CPU的硬件信息: 前3个中的时间可以采用cpu_times方法获取,百分比可以使用cpu_times_pcercent获得. 简单的示范如下: In [9]: importpsutil In [10]:psutil.cpu_times() Out[10]: scputimes(

  • 50行Python代码获取高考志愿信息的实现方法

    最近遇到个任务,需要将高考志愿信息保存成Excel表格,BOSS丢给我一个网址表格之后就让我自己干了.虽然我以前也学习过Python编写爬虫的知识,不过时间长了忘了,于是摸索了一天之后终于完成了任务.不得不说,Python干这个还是挺容易的,最后写完一看代码,只用了50行就完成了任务. 准备工作 首先明确一下任务.首先我们要从网址表格中读取到一大串网址,然后访问每个网址,获取到页面上的学校信息,然后将它们在写到另一个Excel中.显然,我们需要一个爬虫库和一个Excel库来帮助我们完成任务. 第

  • Java中获取类路径classpath的简单方法(推荐)

    如下所示: <SPAN style="FONT-SIZE: 18px"> System.out.println("++++++++++++++++++++++++"); String path = System.getProperty("java.class.path"); String path2 = FreeMarkerWriter.class.getProtectionDomain().getCodeSource().getLo

  • php获取ip及网址的简单方法(必看)

    如下所示: echo 'http://'.$_SERVER['HTTP_HOST'];输出您访问网址的域名 echo $benji_ip=gethostbyname($_ENV['COMPUTERNAME']);输出服务器的ip $fangwen_ip=$_SERVER["REMOTE_ADDR"]; 输出访问者的外网ip 以上这篇php获取ip及网址的简单方法(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • js获取元素的偏移量offset简单方法(必看)

    前言:以前一直是看别人写的,然后学习点东西,现在也把自己的学习记录下来,给大家一个学习的机会,欢迎大家多多评论和推荐哈,共同进步.竟然还有六个人关注我了 ,哈哈 开心.我会继续写下去的.. null和undefined都代表没有,但是null是属性存在值不存在,undefined是连这个属性都不存在 //例如 document.parentNode//浏览器天生自带的一个属性:父亲节点的属性 null (因为一个页面中的document已经是最顶级元素了,它没有父亲) document.pare

  • Js操作DOM元素及获取浏览器高宽的简单方法

    在JavaScript中,经常会来获取Document文档元素,是 HTML 文档对象模型的英文缩写,Document Object Model for HTML,是基于浏览器编程,HTML DOM 定义了用于 HTML 的一系列标准的对象,以及访问和处理 HTML 文档的标准方法. 通过 DOM,可以访问所有的 HTML 元素,连同它们所包含的文本和属性.可以对其中的内容进行修改和删除,同时也可以创建新的元素.HTML DOM 独立于平台和编程语言.它可被任何编程语言诸如 Java.JavaS

随机推荐