Revit SDK 介绍:ManipulateForm 体量族的修改

前言

这个例子介绍体量族的修改。包含了创建体量,用API 移动体量族的顶点、边、轮廓(面)。

内容

效果分步骤展示。
在这里插入图片描述
整理:
在这里插入图片描述

核心逻辑

  1. 创建拉伸体 m_revitDoc.FamilyCreate.NewLoftForm(true, profiles)
  2. 增加一个截面 form.AddProfile(connectingEdge.Reference, param)
  3. 移动截面的边
    两个函数连用无法得到有有效的值 form.get_CurveLoopReferencesOnProfile(profileIndex, 0);, form.GetGeometryObjectFromReference(r)
    改为直接使用get_CurveLoopReferencesOnProfile返回的引用
  4. 移动截面 form.MoveProfile(profileIndex, offset);
  5. 移动底面的顶点 form.MoveSubElement(subElemReference, offset);
  6. 增加一条边 form.AddEdge(topEdge.Reference, topParam, bottomEdge.Reference, bottomParam);
  7. 移动边 MoveSubElement(form, edgeReference, offset);
  8. 移动增加边的顶点
    两个函数连用无法得到有有效的值 form.get_CurveLoopReferencesOnProfile(profileIndex, 0);, form.GetGeometryObjectFromReference(r)
    改为直接使用get_CurveLoopReferencesOnProfile返回的引用

关键点

这个例子,本质上是对 Form API 的一个应用。参考 API 接口做一下总结:

// class Autodesk.Revit.DB.Form
// 1. 增加边和轮廓public void AddEdge(Reference faceReference, XYZ point);public void AddEdge(Reference startEdgeReference, double startParam, Reference endEdgeReference, double endParam);public void AddEdge(Reference startPointReference, Reference endPointReference);public int AddProfile(Reference edgeReference, double param);
// 2. 移动public void MoveProfile(int profileIndex, XYZ offset);public void MoveSubElement(Reference subElementReference, XYZ offset);
// 3. 旋转public void RotateProfile(int profileIndex, Line axis, double angle);public void RotateSubElement(Reference subElementReference, Line axis, double angle);
// 4. 缩放public void ScaleProfile(int profileIndex, double factor, XYZ origin);public void ScaleSubElement(Reference subElementReference, double factor, XYZ origin);
// 5. 查询public ReferenceArray GetControlPoints(Reference curveOrEdgeOrFaceReference);public ReferenceArray GetCurvesAndEdgesReference(Reference pointReference);```

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/130903.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java--JDK环境变量版本与cmd java -version查看版本不一致问题解决

目录 报错解决PS: 报错 在用java -jar运行某个项目的时候报错,意思是JDK版本过高,用了17的,然后需要的JDK是要低于9的 然后我查看了一下我的环境变量,我配置的的确是1.8,但是cmd java -version查看版本后是17的&#…

分享一个基于微信小程序开发的高校学生毕业设计选题小程序的源码 lw 调试

💕💕作者:计算机源码社 💕💕个人简介:本人七年开发经验,擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等,大家有这一块的问题可以一起交流! 💕&…

代码随想录--哈希--两个数组的交集

题意:给定两个数组,编写一个函数来计算它们的交集。 说明: 输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。 import java.util.ArrayList; import java.util.HashMap; import java.util.List;public class SSS {public …

蓝桥杯官网练习题(凑算式)

类似填空题: ①算式900: https://blog.csdn.net/s44Sc21/article/details/132746513?spm1001.2014.3001.5501https://blog.csdn.net/s44Sc21/article/details/132746513?spm1001.2014.3001.5501 ②九宫幻方③七星填数④幻方填空:https:/…

消息中间件rabbitmq

为什么要使用消息中间件 同步通信:耗时长,受网络波动影响,不能保证高成功率,耦合性高。 同步,异步 并发:一段时间(1S)多个请求数 并行:时间节点,多个指令…

简简单单教你如何用C语言实现获取当前所有可用网口!

一、获取本机所有可用网卡名 原理: 在 Linux 系统中,/proc 目录是一个位于内存中的伪文件系统。 /proc目录是内核提供给我们的查询中心,通过查询该目录下的文件内容,可以获取到有关系统硬件及当前运行进程的信息,如…

Redis 初识与入门

1. 什么是Redis Redis 是一种基于内存的数据库,对数据的读写操作都是在内存中完成,因此读写速度非常快,常用于缓存,消息队列、分布式锁等场景。 Redis 提供了多种数据类型来支持不同的业务场景,比如 String(字符串)、…

Python之OS模块

os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口;即os模块提供了非常丰富的方法用来处理文件和目录。 使用的时候需要导入该模块:import os

linux 多重启动grub2详解

https://www.gnu.org/software/grub/manual/grub/grub.pdf

OpenCV之FCN图像分割

💂 个人主页:风间琉璃🤟 版权: 本文由【风间琉璃】原创、在CSDN首发、需要转载请联系博主💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 前言 Fully Convolutional Network(FCN)是一种深度学习…

OpenCV学习笔记(6)_由例程学习高斯图像金字塔和拉普拉斯金字塔

1 图像金字塔 图像金字塔是图像多尺度表达的一种。 尺度,顾名思义,可以理解为图像的尺寸和分辨率。处理图像时,经常对源图像的尺寸进行缩放变换,进而变换为适合我们后续处理的大小的目标图像。这个对尺寸进行放大缩小的变换过程…

c++ 学习 之 常函数 和 常对象

前言 常函数 成员函数后加 const 我们可以称这个函数为 常函数 常函数内不可以修改成员属性 成员属性声明时加关键字 mutable 后,在常函数中依然可以修改 常对象 常对象 声明对象前加 const 称该对象为常对象 常对象只能调用常函数 正文 常函数 class Person…

JAVAEE初阶相关内容第八弹--多线程(初阶)

本文目录 阻塞队列 阻塞队列是什么? 标准库中的阻塞队列 生产者消费者模型 阻塞队列的实现 普通队列实现: 入队列: 出队列: 完整代码: 加阻塞 加锁 加阻塞 阻塞队列 队列:先进先出,…

Redis缓存魔法:如何轻松提升你的应用性能

Redis,作为一个开源的、内存中的数据结构存储系统,已经成为了许多开发者和企业的首选工具。无论是作为数据库、缓存还是消息代理,Redis都展现出了其强大的性能和灵活性。在本文中,我们将深入探讨Redis的魅力,以及如何有…

量化:基于支持向量机的择时策略

文章目录 参考机器学习简介策略简介SVM简介整体流程收集数据准备数据建立模型训练模型测试模型调节参数 参考 Python机器学习算法与量化交易 利用机器学习模型,构建量化择时策略 机器学习简介 机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。…

无涯教程-JavaScript - OCT2BIN函数

描述 OCT2BIN函数将八进制数转换为二进制数。 语法 OCT2BIN (number, [places])争论 Argument描述Required/OptionalNumber 您要转换的八进制数。 数字不能超过10个字符。数字的最高有效位是符号位。其余的29位是幅度位。 负数使用二进制补码表示。 RequiredPlaces 要使用的…

【C语言】字符串函数

文章目录 前言1.strcat2.strncpy3.strncat4.strncmp5.strstr6.strtok7.strerror8.strcat的模拟实现9.strstr的模拟实现 总结 添加链接描述 前言 大家好呀,今天给大家分享一下字符函数和字符串函数C语言中对字符和字符串的处理很是频繁,但是C语言本身是没…

随机密码生成器(Python)

随机密码生成器 想要生成一个随机密码,需要考虑下面两点: 1.字符集合 2.密码的位数 下面代码中引用了string模块和random模块,string.printable是string中的可打印字符,用strip函数首尾去掉空格;random模块用来取字符&…

C# wpf 实现桌面放大镜

文章目录 前言一、如何实现?1、制作无边框窗口2、Viewbox放大3、截屏显示(1)、截屏(2)、转BitmapSource(3)、显示 4、定时截屏 二、完整代码三、效果预览总结 前言 做桌面截屏功能时需要放大镜…

品牌策划经理工作内容|工作职责|品牌策划经理做什么?

一位美国作家曾说过“品牌是一系列期望、记忆、故事和关系,他们共同构成了消费者最终原则一个产品或者服务的原因。” 所以,品牌经理这个岗位主要是创造感知价值主张,激发消费者购买这个品牌后带来的感知价值,这种回报的本质相对…