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

下面的通过代码的方式使用API来实现同样的效果:

[CommandMethod("MyGroup", "SurfaceStyleExample", 
    "SurfaceStyleExample", CommandFlags.Modal)]
public void MyCommand() // This method can have any name
{
 
    Document doc = Application.DocumentManager.MdiActiveDocument;
   
    if (doc != null)
    {
        Editor ed = Application.DocumentManager
            .MdiActiveDocument.Editor;                 // select a tin surface         PromptEntityOptions peo = new PromptEntityOptions(
          "\nSelect a tin surface: ");
        peo.SetRejectMessage("\nOnly Tin surface is accepted");
        peo.AddAllowedClass(typeof(TinSurface), true);
        PromptEntityResult per = ed.GetEntity(peo);
        if (per.Status != PromptStatus.OK) return;         CivilDocument civilDoc = CivilApplication.ActiveDocument;         using (Transaction trans = doc.TransactionManager
            .StartTransaction())
        {
            TinSurface surface = trans.GetObject(per.ObjectId,
                OpenMode.ForRead) as TinSurface;             //exclude invalid points, 附赠功能,排除异常点             surface.BuildOptions.ExecludeMaximumElevation = true;
            surface.BuildOptions.MaximumElevation = 5000;
            surface.BuildOptions.ExecludeMinimumElevation = true;
            surface.BuildOptions.MinimumElevation = 200;             //set the Maximum Triangle Length,设置三角形最大边长             surface.BuildOptions.MaximumTriangleLength = 200;             //change the style, 下面开始更改样式了
            ObjectId styleId;
            if (civilDoc.Styles.SurfaceStyles.Contains("Standard"))
            {
                styleId = civilDoc.Styles.SurfaceStyles["Standard"];
            }
            else
            {
                // create a new style called 'example style':
                styleId = civilDoc.Styles.SurfaceStyles
                    .Add("example style");             }
           
                        // modify the style             SurfaceStyle surfaceStyle = styleId.GetObject(
                OpenMode.ForWrite) as SurfaceStyle;             //countours smoothing             surfaceStyle.ContourStyle.SmoothContours = true;
            surfaceStyle.ContourStyle.SmoothingType
                = ContourSmoothingType.AddVertices;
            surfaceStyle.ContourStyle.SmoothingFactor = 10;             surfaceStyle.ContourStyle.MajorContourColorScheme
                = ColorSchemeType.Rainbow;             //Major contour, red             surfaceStyle.GetDisplayStylePlan(
                SurfaceDisplayStyleType.MajorContour).Color
                = Autodesk.AutoCAD.Colors.Color.FromRgb(255, 0, 0);             //Major contour, layer 0             surfaceStyle.GetDisplayStylePlan(
                SurfaceDisplayStyleType.MajorContour).Layer = "0";             //Mainor contour, gree             surfaceStyle.GetDisplayStylePlan(
                SurfaceDisplayStyleType.MinorContour).Color
                = Autodesk.AutoCAD.Colors.Color.FromRgb(0, 255, 0);             //Mainor contour, layer 0, 如果你要放在其他图层,要确保该图层存在             surfaceStyle.GetDisplayStylePlan(
                SurfaceDisplayStyleType.MajorContour).Layer = "0";             // display major contours:             surfaceStyle.GetDisplayStylePlan(SurfaceDisplayStyleType
                .MajorContour).Visible = true;
            surfaceStyle.GetDisplayStylePlan(SurfaceDisplayStyleType
                .MinorContour).Visible = true;             // turn off display of other items:
           
            surfaceStyle.GetDisplayStylePlan(SurfaceDisplayStyleType
                .UserContours).Visible = false;
            surfaceStyle.GetDisplayStylePlan(SurfaceDisplayStyleType
                .Directions).Visible = false;
            surfaceStyle.GetDisplayStylePlan(SurfaceDisplayStyleType
                .Elevations).Visible = false;
            surfaceStyle.GetDisplayStylePlan(SurfaceDisplayStyleType
                .Slopes).Visible = false;
            surfaceStyle.GetDisplayStylePlan(SurfaceDisplayStyleType
                .SlopeArrows).Visible = false;
            surfaceStyle.GetDisplayStylePlan(SurfaceDisplayStyleType
                .Watersheds).Visible = false;             //TODO: do the same for all model display settings as well
            //             // assign the style to the first surface in the document:
          
            surface.StyleId = styleId;             // commit the transaction             trans.Commit();             //rebuild the surface
            surface.Rebuild();
        }     } }

改之前的样子:

运行之后,等高线的颜色已经改变了.

Hope this helps.

利用Civil 3D API更改曲面的样式的更多相关文章

  1. Civil 3D API二次开发学习指南

    Civil 3D构建于AutoCAD 和 Map 3D之上,在学习Civil 3D API二次开发之前,您至少需要了解AutoCAD API的二次开发,你可以参考AutoCAD .NET API二次开 ...

  2. 学习 Civil 3D二次开发从哪儿开始?

    1.1 从哪儿开始 对于多数的工程设计人员,不完全具备上节所述的各种条件.对于Civil 3D的应用可能比较熟悉:但对于计算机语言,只限于上学时所学的一点基础知识,步入工作岗位后与计算机语言基本无缘: ...

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

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

  4. Civil 3d设置横断面图样式

    一位网友提出这样一个问题: 在使用SectionView.StyleName属性时, 会抛出异常:need to override property StyleName. 我测试的结果一样, 同时测试 ...

  5. AutoCAD/Civil 3D 学习笔记

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

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

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

  7. Libgdx New 3D API 教程之 -- Libgdx中使用Materials

    This blog is a chinese version of xoppa's Libgdx new 3D api tutorial. For English version, please re ...

  8. 如何将经纬度利用Google Map API显示C# VS2005 Sample Code

    原文 如何将经纬度利用Google Map API显示C# VS2005 Sample Code 日前写了一篇如何用GPS抓取目前所在,并回传至资料库储存,这篇将会利用这些回报的资料,将它显示在地图上 ...

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

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

随机推荐

  1. iOS开发之各种动画各种页面切面效果

    因工作原因,有段时间没发表博客了,今天就发表篇博客给大家带来一些干货,切勿错过哦.今天所介绍的主题是关于动画的,在之前的博客中也有用到动画的地方,今天就好好的总结一下iOS开发中常用的动画.说道动画其 ...

  2. IOS开发之自动布局显示网络请求内容

    在上一篇博客中详细的介绍了IOS开发中的相对布局和绝对布局,随着手机屏幕尺寸的改变,在App开发中为了适应不同尺寸的手机屏幕,用自动布局来完成我们想要实现的功能和效果显得尤为重要.本人更喜欢使用相对布 ...

  3. Ubuntu杂记——Ubuntu下以USB方式连接Android手机调试

    在Ubuntu下进行Android开发,发现自己的手机就算打开USB连接.USB调试还是连不上,一直都是显示??????.百度了很多,发现都是要改“ /etc/udev/rules.d/50-andr ...

  4. ASP.NET MVC 6 一些不晓得的写法

    今天在看 Scott Guthrie 的一篇博文<Introducing ASP.NET 5>,在 MVC 6 中,发现有些之前不晓得的写法,这边简单记录下,算是对自己知识的补充,有些我并 ...

  5. 小菜学习编程-Winform系列(初学者)

    前言 记得上次写<小菜的程序员道路(二)>,这篇文章的时候说过,要把工作以来整理的编程知识分享给大家,因为这半年来的工作实在是忙,现在也在忙着公司产品上线,但是答应的一定要实现,大家看我上 ...

  6. 利用免费的Spire.XLS控件制作Excel报表

    我们小组上个季度接手了一个项目其中需要实现创建excel文档的功能,寻找实现这个功能的控件的任务分配给了我,通过百度搜索我找到了一个免费的控件,它是由E-iceblue公司推出的spire.xls控件 ...

  7. 把《c++ primer》读薄(3-2 标准库vector容器+迭代器初探)

    督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 标准库vector类型初探,同一种类型的对象的集合(类似数组),是一个类模版而不是数据类型,学名容器,负责管理 和 存储的元素 ...

  8. 不要给<a>设置outline:none

    outline属性有什么作用 原文链接 a{outline:none} do not do it 当用户使用tab键进行链接切换时,该属性会在当前选中的链接(获得焦点)使用该属性,一般来说是虚线框 的 ...

  9. 浅谈Hibernate入门

    前言 最近打算做一个自己的个人网站,经过仔细思考,打算使用hibernate作为开发的ORM框架,因此各种找资料,由于本人是刚刚接触这技术的,所以就找了比较基础的知识来分享下 基本概述 Hiberna ...

  10. jQuery-1.9.1源码分析系列(十四) 一些jQuery工具

    为了给下一章分析动画处理做准备,先来看一下一些工具.其中队列工具在动画处理中被经常使用. jQuery.fn. queue(([ queueName ] [, newQueue ]) || ([ qu ...