如果你需要更改曲面的样式,比如更改等高线的颜色等等,在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. C#设计模式系列:享元模式(Flyweight)

    当频繁地从数据源读取数据时,读出的内容存在重复,那么需要使用享元模式(Flyweight)来提高内存效率,Flyweight模式将节省更多空间,共享的Flyweight越多,空间节省越大. 1.享元模 ...

  2. 深入理解脚本化CSS系列第六篇——脚本化伪元素的6种方法

    × 目录 [1]动态样式 [2]CSS类[3]setAttribute()[4]CSSRule对象添加[5]空样式覆盖[6]CSSRule对象删除 前面的话 我们可以通过计算样式来读取伪元素的样式信息 ...

  3. JMM和happens-before原则

    JMM: Java Memory Model(Java内存模型),围绕着在并发过程中如何处理可见性.原子性.有序性这三个特性而建立的模型. 可见性: JMM提供了volatile变量定义.final. ...

  4. 【资源】108个大数据文档PDF开放下载-整理后打包下载

                  本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html        本博客其他.NET开源项目文章目录:h ...

  5. ASP.NET Core的配置(2):配置模型详解

    在上面一章我们以实例演示的方式介绍了几种读取配置的几种方式,其中涉及到三个重要的对象,它们分别是承载结构化配置信息的Configuration,提供原始配置源数据的ConfigurationProvi ...

  6. MySQL数据类型的验证

    CHAR char (M) M字符,长度是M*字符编码长度,M最大255. 验证如下: mysql)) default charset=utf8; ERROR (): ); use BLOB or T ...

  7. Thymeleaf 模板的使用

    Thymeleaf是现代化服务器端的Java模板引擎,不同与JSP和FreeMarker,Thymeleaf的语法更加接近HTML,并且也有不错的扩展性.详细资料可以浏览官网.本文主要介绍Thymel ...

  8. 相克军_Oracle体系_随堂笔记001-概述

    一.Oracle官方支持 1.在线官方文档 http://docs.oracle.com/ 2.metalink.oracle.com,如今已经改成:http://support.oracle.com ...

  9. HTML基本元素(二)

    1.图像 <img src="URL" alt="" /> 说明 src 定义图像的url alt 定义图像的替代文本 width 设置图像的宽度 ...

  10. 新浪云SAE使用入门,教你如何发布自己的网站

    新浪云sae是一个免费的web服务器,SAE的Web服务器采用分布式部署的方式,开发者将代码部署到SAE前端机后,会通过同步的方式,将代码部署到SAE所有的Web服务器.相当于在每一台Web服务器上都 ...