首页 > 其他分享 >Revit二次开发-Curveloop的放大和缩小

Revit二次开发-Curveloop的放大和缩小

时间:2023-05-25 11:14:48浏览次数:39  
标签:Curveloop curve Transform Revit var 二次开发 new curveLoop

在Revit二次开发工作中,或许会用对Curveloop的放大、缩小、偏移等操作。我们查阅开发手册就可以发现Curveloop这个类提供了Transform这个实例方法,有了这个方法我们对Curveloop进行一些操作,下面是一个简单的Demo,通过放大缩小创建了三块楼板。

protected override Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
            var length = 10000 / 304.8;
            var p1 = new XYZ(0, 0, 0);
            var p2 = new XYZ(length, 0, 0);
            var p3 = new XYZ(length, length, 0);
            var p4 = new XYZ(0, length, 0);

            var line1 = Line.CreateBound(p1, p2);
            var line2 = Line.CreateBound(p2, p3);
            var line3 = Line.CreateBound(p3, p4);
            var line4 = Line.CreateBound(p4, p1);
            var curves = new List<Curve>()
            {
                line1,line2,line3,line4
            };
            var curveLoop = CurveLoop.Create(curves);
            var sourceArray = new CurveArray();
            var expansionArray = new CurveArray();
            var reduceArray = new CurveArray();
            foreach (var curve in curveLoop)
            {
                sourceArray.Append(curve);
            }
            var transform = Transform.Identity.ScaleBasis(1.5);
            curveLoop.Transform(transform);
            foreach (var curve in curveLoop)
            {
                expansionArray.Append(curve);
            }
            curveLoop = CurveLoop.Create(curves);
            transform= Transform.Identity.ScaleBasis(0.5);
            curveLoop.Transform(transform);
            foreach (var curve in curveLoop)
            {
                reduceArray.Append(curve);
            }
            RevitDoc.RunTransaction("create floor", () =>
            {
                RevitDoc.Create.NewFloor(expansionArray, false);
                RevitDoc.Create.NewFloor(sourceArray, false);
                RevitDoc.Create.NewFloor(reduceArray, false);
            });
            return Result.Succeeded;
        }

标签:Curveloop,curve,Transform,Revit,var,二次开发,new,curveLoop
From: https://www.cnblogs.com/youngala/p/17430553.html

相关文章

  • Jenkins实战-钉钉构建提醒插件的二次开发
    本篇我们来讨论下关于jenkins社区中钉钉提醒这个插件的二次开发过程。为什么需要二次开发呢,很简单,这个插件只是提供了最基本的构建后的提醒,有时候,我们需要一些额外的功能。例如,我们在打完app的包后,利用这个插件是可以发送提醒,但是点击标题,这个插件默认跳转的是jenkins上当前构......
  • Revit二次开发实战04(元素搜集过滤器FilteredElementCollector)
    Revit二次开发实战 FilteredElementCollector元素搜集过滤器1、创建搜集器FilteredElementCollector(Document);搜集文档中所有元素;FilteredElementCollector(Document,List<ElementId>);在指定id集合中搜集;FilteredElementCollector(Document,ElementIdviewId);在......
  • Revit二次开发实战03(事务Transaction)
    Revit二次开发实战事务必须首先要启动Start,操作完成后提交事务Commit,如果执行异常,则要执行回滚操作RollBack;可以通过GetStatus获取事务的当前状态,根据事务状态决定程序的走向;事务Transaction是非托管对象,必须手动释放Dispose,或者放到using代码块中,让编译器自动释放;如果要对文......
  • Revit二次开发实战02(选择对象Selection)
    Revit二次开发实战 Selection主要用于和用户交互,通过用户的选择,设置操作对象,以便进行处理;Selection属于界面操作的范畴,因此位于UIDocument类下面,而不是Document类下面;可以选择一个对象、多个对象、选择点、选择矩形框、框选多个对象等;通过过滤器可以提供一个强大的功能,可以......
  • Revit二次开发实战
    Revit二次开发实战     第一个程序 RevitHello插件安装Revit2019并注册安装、注册教程百度一下;安装VS2019Community安装教程百度一下;安装两个Revit插件RevitLookup和AddInManager;AddInManager.dll、Autodesk.AddInManager.addin、RevitLo......
  • Revit二次开发 知识点总结(表格)
    Revit二次开发知识点总结(表格) 宏Macro概述宏是一种程序,用来实现重复任务的自动化;宏可以执行一系列预定义的步骤,从而完成特定任务;模块是对宏的分组;实际上是一个编程项目;应用程序级的宏:可以在任何文档中使用,可以自行运行;可以独立于Revit运行;可以向Revit添加工具;......
  • 设计软件的二次开发总结(表格)
    设计软件的二次开发总结二次开发软件语言框架UG(UGNX的简称)CC++C#JavaUFUN,支持C、C++语言;NXOpen,支持C++、Java、C#;OpenGrip类似于AutoCAD的Lisp;OpenC,UG的一个C语言函数库;CATIAC++VBAC#CAA支持 C++Java;(支持COM、OLE);CATIA支持 VBA、......
  • 二次开发项目之合并项目代码
    二次开发项目,并需要不时的接收外部的bug修复代码,合并起来其实停头疼的一方面是自己在上之上开发了不少新功能,与其原公司的代码相当于走在了2条路上另一方面是其原公司还在维护修复反馈的bug,就导致每次给的patch和code,都需要仔细核对一遍(存在给patch和code对不上的问题......
  • JAVA+MySQL做一个图书信息管理系统【二次开发】【更新版2.0】【纯java】、Java技术分
    JAVA+MySQL做一个图书信息管理系统【二次开发】【更新版2.0】【纯java】Java技术分享Java技术er集合啦!大家可分享关于Java技术知识,包括但不限于微服务,分布式等前沿技术,快来沉淀自己的技术,一起写出未来吧!你可以从以下几个方面着手(不强制),或者根据自己对话题主题的理解进行创作,参考如......
  • Eclipse用【 Runnable JAR file】方式打jar包,并用该jar包进行二次开发
     转发:https://www.cnblogs.com/zhangchao0515/p/9520827.html 2.eclipse用Export的RunnableJARfile方式打jar包(带jar包的)右键该项目选择Export,弹出的对话框,选择Java中的RunnableJARFile点击next    Launchconfiguration  选择jar包默认运行的主类(包含main方......