zoukankan      html  css  js  c++  java
  • C# 取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)";

    通过参数查看,设置成功

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

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

    DEMO

  • 相关阅读:
    JS系统函数
    匿名函数
    使用递归计算1~n之间所有整数的和
    交换两个变量的值
    创建函数,传递一个数字n,返回斐波那契数列的第n的值。
    创建函数function
    打印本世纪(2000~2100)的前10个闰年
    打印九九乘法表
    计算1~100之间所有整数的和
    循环执行
  • 原文地址:https://www.cnblogs.com/ZXdeveloper/p/7810850.html
Copyright © 2011-2022 走看看