一位网友提出这样一个问题:

在使用SectionView.StyleName属性时,

会抛出异常:need to override property StyleName.

我测试的结果一样,

同时测试了StyleId

结果是类似的:need to override property StyleId().

于是我想通过COM方式来实现,

经过测试,

能够达到目的,

虽然绕了一些,

但总比不能实现要强一点点。

测试的代码如下:

        [CommandMethod("MyGroup", "Tt101", CommandFlags.Modal)]
public void TestCommand1() // This method can have any name
{
Document doc = Application.DocumentManager.CurrentDocument;
Editor ed = doc.Editor;
CivilDocument cDoc = CivilApplication.ActiveDocument;
PromptEntityOptions peo = new PromptEntityOptions("\n拾取横断面");
peo.SetRejectMessage("\n选择横断面图");
peo.AddAllowedClass(typeof(SectionView),true);
PromptEntityResult per = ed.GetEntity(peo);
if (per.Status==PromptStatus.OK)
{
try
{
//////using (Transaction tr = doc.TransactionManager.StartTransaction())
//////{
////// SectionView sv = per.ObjectId.GetObject(OpenMode.ForWrite) as SectionView;
////// //sv.StyleName = "测试样式"; //need to override property StyleName.
////// //var id = cDoc.Styles.SectionViewStyles["测试样式"];
////// //sv.StyleId = id; //need to override property StyleId().
////// tr.Commit();
//////}
//////////////////////////////////////////////////////////////////////////
IntPtr comIdPtr = per.ObjectId.OldIdPtr;
long comId = comIdPtr.ToInt64();
AeccSectionView asv = ComCivilDoc.ObjectIdToObject(comId);
var id = cDoc.Styles.SectionViewStyles["测试样式"];
AeccSectionViewStyle asvs= ComCivilDoc.ObjectIdToObject(id.OldId);//偷懒,试一下过时的方法还行不?
asv.set_Style(asvs);
}
catch (System.Exception ex)
{
ed.WriteMessage(ex.Message);
}
} }

代码中的ComCivilDoc详见《AutoCAD Civil 3D .NET二次开发》第226页,

转换方法在第232页。

测试以上代码需要测试的dwg文件中具有名称为“测试样式”的横断面图样式。

Civil 3d设置横断面图样式的更多相关文章

  1. 利用Civil 3D API更改曲面的样式

    如果你需要更改曲面的样式,比如更改等高线的颜色等等,在Civil 3D中,你可以通过在toolspace中选中曲面,然后点右键选择“Edit surface style…”然后切换到“Display” ...

  2. Civil 3D CustomDraw .NET混合项目设置

    样例文件中的CustomDraw项目使用的是COM API,但COM API不完整,某些时候需要使用.NET API,此时需要将C++项目设置成"公共语言运行时支持(/clr)"但 ...

  3. AutoCAD/Civil 3D 学习笔记

    Civil学习笔记 1.环境配置 1.添加引用: Civil二次开发需要5个基本的AutoCAD的dll引用-acdbmgd.dll, acmgd.dll, accoremgd.dll, AecBas ...

  4. asp.net数据导出到excel表格,并设置表格样式

    1.首先在项目中添加引用

  5. System.Diagnostics.Process启动Civil 3D及AutoCAD

    QQ群友提出问题, 如何启动Civil 3D或者AutoCAD, Kean的博客里有相关的文章 http://through-the-interface.typepad.com/through_the ...

  6. Civil 3D 2017本地化中VBA程序移植到2018版中

    中国本地化包简直就是一块鸡肋, 但对于某些朋友来说还真离不了: 可惜中国本地化包的推出一直滞后, 在最新版软件出来后1年多, 本地化还不一定能够出来, 即使出来了, 也只能是购买了速博服务的用户才能得 ...

  7. Civil 3D 二次开发 创建Civil 3D 对象—— 01 —— 创建几何空间点

    这一小节,我们创建派生于CivilCreateEntityDemo的类CivilCreateCogoPoint,来创建几何空间点. 1 创建类并添加字段及方法 首先在项目资源管理器中向本项目中添加类, ...

  8. js设置css样式.

    在js设置css样式做法 var obj = document.getElementById('div'); obj.style.width = '100px'; obj.style.height = ...

  9. JS设置CSS样式的几种方式

    用JS来动态设置CSS样式,常见的有以下几种 1. 直接设置style的属性  某些情况用这个设置 !important值无效 如果属性有'-'号,就写成驼峰的形式(如textAlign)  如果想保 ...

随机推荐

  1. C# 下载文件

    最近一段时间,真的是太忙太忙了!经历了自我毕业以来最忙碌的一个项目! 说起这个项目,我有万千感慨 且不说技术能力,也无需谈论项目需求.单就项目压力,日常加班,周六日补班而言,我相信很多人是扛不住的! ...

  2. 警告:Establishing SSL connection without server's identity verification is not recommended

    SpringBoot启东时红色警告: Mon Jun 04 00:53:48 CST 2018 WARN: Establishing SSL connection without server's i ...

  3. mysql自增id超大问题查询

    引言 小A正在balabala写代码呢,DBA小B突然发来了一条消息,"快看看你的用户特定信息表T,里面的主键,也就是自增id,都到16亿了,这才多久,在这样下去过不了多久主键就要超出范围了 ...

  4. k8s

    https://www.cnblogs.com/sheng-jie/p/10591794.html

  5. linus 下redis守护进程启动

    修改配置文件 sudo vim /usr/src/redis/redis.conf // 具体的安装目录不一样,以安装的时候为准 # 将daemonize 改为yes daemonize yes 重新 ...

  6. Python_每日习题_0005_三数排序

    # 题目: # 输入三个整数x,y,z,请把这三个数由大到小输出. # 程序分析: 练练手就随便找个排序算法实现一下,偷懒就直接调用函数. #方法一:排序 raw = [] for i in rang ...

  7. Linux—vim常用命令

    vim常用命令: 1. 键入i进入编辑模式2. esc进入命令模式3. a,进入编辑模式3. b,光标移动到单词前,end,光标移动到行尾4. home光标移动到行首5. cc,删除当前行,并进入编辑 ...

  8. python札记

    进制转换 num = "0011"v = int(num, base=16)print(v)2->16

  9. vue单页面模板说明文档(1)

    Introduction This boilerplate is targeted towards large, serious projects and assumes you are somewh ...

  10. Oracle循环

    --无条件循环 declare v_num ; begin loop dbms_output.put_line(v_num); v_num:; ; end loop; end; --有条件循环 dec ...