首页 > 其他分享 >【Revit二次开发】创建规则多边形的屋顶

【Revit二次开发】创建规则多边形的屋顶

时间:2024-04-17 17:58:06浏览次数:36  
标签:多边形 double XYZ roof radius location 二次开发 Revit Math

出处

https://spiderinnet.typepad.com/blog/2013/05/revit-net-creations-api-create-regular-polygonal-roof.html

翻译

在Revit .NET API 2013,尽管NewWall方法已移动到Wall类本身,但屋顶生成方法尚未移动。它仍在文件中。创建实例。不管怎样,我们找到了它的位置,并能够建造一些屋顶。

在本文中,让我们创建一个规则多边形屋顶。以下是核心帮助方法。

public static RoofBase CreateRegularPolygonalRoof(
    Document doc, Level level, RoofType rooftype,
    XYZ location, double radius, int sides,
    double slopeangle, double offset)
{
    CurveArray profile = new CurveArray();
    for (int i = 0; i < sides; i++)
    {
        double curAngle = i * Math.PI / sides * 2;
        double nextAngle = (i < sides - 1 ? i + 1 : 0) * Math.PI / sides * 2;

        XYZ curVertex = new XYZ(location.X + radius * Math.Cos(curAngle), location.Y + radius * Math.Sin(curAngle), location.Z);
        XYZ nextVertex = new XYZ(location.X + radius * Math.Cos(nextAngle), location.Y + radius * Math.Sin(nextAngle), location.Z);
        Line line = doc.Application.Create.NewLineBound(curVertex, nextVertex);

        profile.Append(line);
    }

    ModelCurveArray curveArrayMapping = new ModelCurveArray();
    FootPrintRoof roof = doc.Create.NewFootPrintRoof(profile, level, rooftype, out curveArrayMapping);

    foreach (ModelCurve curve in curveArrayMapping)
    {
        roof.set_DefinesSlope(curve, true);
        roof.set_SlopeAngle(curve, slopeangle);
        roof.set_Offset(curve, offset);
    }

    return roof;
}

以下是一些示例调用代码:

RoofCreation.CreateRegularPolygonalRoof(
    CachedDoc,
    RoofCreation.FindAndSortLevels(CachedDoc).First(),
    RoofCreation.FindRoofTypes(CachedDoc).First(),
    XYZ.Zero,
    10.0,
    8,
    Math.PI / 6,
    0.0);

这是Revit中的一个规则多边形屋顶:
image

标签:多边形,double,XYZ,roof,radius,location,二次开发,Revit,Math
From: https://www.cnblogs.com/redcode/p/18141376

相关文章

  • 有效提升Halcon二次开发调试效率的插件 HalconAssit
    HalconAssit开发背景:大家好,我是HalconAssit得作者。首先得解释下开发这款工具的得原因。作为视觉工程师,可以说Halcon大家应该或多或少都接触过。功能非常强大,算子非常全,开发的自由度也非常高,但是唯一的得缺点应该是GUI支持这块稍显欠缺。在我也c#做halcon二次开发的时候,发现......
  • 1039. 多边形三角剖分的最低得分
    题目链接:实现一、记忆化搜索classSolution{public:intminScoreTriangulation(vector<int>&values){intn=values.size();intmemo[n][n];memset(memo,-1,sizeofmemo);//-1表示还没有计算过function<int(int,int)>df......
  • 微信视频号api开发注意事项,微信号二次开发api
    简介#"VideosApi"是一个基于微信开放平台的二次封装API服务,旨在简化开发者与微信对接的流程。提供了丰富的功能API,包括好友管理、消息管理、群管理、朋友圈等,并且支持多开发语言接入。以及针对特定业务场景的定制化开发产品。开发原理:平台采用自研的RPA响应框架,避免了hook类......
  • WPS二次开发系列:Gradle版本、AGP插件与Java版本的对应关系
    背景最近有体验SDK的同学反馈接入SDK出现报错,最终定位到原因为接入的宿主app项目的gradle版本过低导致,SDK兼容支持了android11的特性,需要对应的gradle插件为支持android11的版本。现象解决方案将gradle版本升级至支持android11的插件版本即可,对此google官方的引文如下......
  • WPS二次开发专题:WPS SDK实现文档打印功能
      作者持续关注WPS二次开发专题系列,持续为大家带来更多有价值的WPS开发技术细节,如果能够帮助到您,请帮忙来个一键三连,更多问题请联系我(QQ:250325397)在办公场景或者家教场景中经常碰到需要对文档进行打印的能力,今天给大家带来一篇如何通过WPSSDK调用WPS打印接口实现文档......
  • 在线CAD二次开发教程-实现圆转多边形功能的方法
    前言在线CADSDK的集成过程中,甲方客户可能有实现圆转多边形功能的需求,作为开发者如何利用WEBCADSDK展现此功能效果呢?本章节我们重点讲述一下。环境搭建1.搭建绘图环境,创建一个mxcad项目,具体操作请参考[mxcad|快速入门]。2.在项目中添加命令行,实现功能的动态交互功能,具体......
  • 致远OA系统二次开发基础入门及资料汇总
    公司有几套致远A8,包括V7和V8。虽然一直有二次开发的需求,只是该系统的二开体验,包括社区的建设真的是一言难尽。因此公司几次改动都是直接外包给厂商来进行开发。从公司这些项目中我了解了一下他们的二开情况,怎么说呢。只能说是八仙过海各显神通。在Github上也没有找到多少关于致远......
  • 致远OA二次开发 配置开发环境及使用SDK
    此前汇总的文章里面有简单说过SDK。在开发文档内没有完整对其进行说明。其实致远OA官方的开发文档我个人觉得是很有问题的,一般来说都是从入门到深入细节。他们这个开发文档居然在介绍Springboot。由于是接触过他们官方的二开,对项目大概有点了解,此次特意聊聊他们配置开发环境与SDK......
  • java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ MybatisPlus
    鸿鹄工程项目管理系统SpringCloud+SpringBoot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统项目背景一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管理的提升提出了更高的要......
  • java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ MybatisPlus
     鸿鹄工程项目管理系统SpringCloud+SpringBoot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统项目背景一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管理的提升提出了更高的......