revit二开 项目基点(可见性设置、基点修改及获取)

2023-10-24 05:31

本文主要是介绍revit二开 项目基点(可见性设置、基点修改及获取),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

项目基点可见性设置

1.revit中显示项目基点

revit中项目基点可以通过:视图–可见性/图形–模型类别–场地找到项目基点,将复选框勾选,点击确定即可显示。
在这里插入图片描述
在这里插入图片描述

2.revit二开显示项目基点

项目基点存在于模型类别为场地中,所以要想显示项目基点,先得设置场地的可见性,然后再设置项目基点的。
使用View(视图)中的SetCategoryHidden方法进行设置,第一个参数为ElementId,第二设置可见性,false为显示。
目前测试2019、2020、2021revit版本可通过这种方式进行设置

public void displayProjectBasePoint()
{try{using (Transaction tran = new Transaction(m_doc, "DisplayBasePoint")){tran.Start();Categories cates = m_doc.Settings.Categories;//场地Category site = cates.get_Item(BuiltInCategory.OST_Site);m_doc.ActiveView.SetCategoryHidden(site.Id, false);//项目基点Category projectBasePoint = cates.get_Item(BuiltInCategory.OST_ProjectBasePoint);m_doc.ActiveView.SetCategoryHidden(projectBasePoint.Id, false);tran.Commit();}}catch (){}
}

项目基点修改

获取到项目基点的实例,然后遍历找到要修改的实例属性重新赋值。
在revit中安转Lookup插件查看实例属性。
在这里插入图片描述
SetValueString()传入的数据单位为mm。

public void modifyProjectBasePoint(string strNorthSouth, string strEastWest, string strElevation, string strAngle)
{try{using (Transaction tran = new Transaction(m_doc, "ModifyProjectBasePoint")){tran.Start();ElementCategoryFilter siteCategoryfilter = new ElementCategoryFilter(BuiltInCategory.OST_ProjectBasePoint);FilteredElementCollector collector = new FilteredElementCollector(m_doc);IList<Element> siteElements = collector.WherePasses(siteCategoryfilter).ToElements();foreach (var ele in siteElements){//项目基点参数值设置Parameter paramNorthSouth = ele.get_Parameter(BuiltInParameter.BASEPOINT_NORTHSOUTH_PARAM);if (paramNorthSouth != null)paramNorthSouth.SetValueString(strEastWest);Parameter paramEastWest = ele.get_Parameter(BuiltInParameter.BASEPOINT_EASTWEST_PARAM);if (paramEastWest != null)paramEastWest.SetValueString(strNorthSouth);Parameter paramElevation = ele.get_Parameter(BuiltInParameter.BASEPOINT_ELEVATION_PARAM);if (paramElevation != null)paramElevation.SetValueString(strElevation);Parameter paramAngle = ele.get_Parameter(BuiltInParameter.BASEPOINT_ANGLETON_PARAM);if (paramAngle != null)paramAngle.SetValueString(strAngle);}tran.Commit();}}catch{}
}

项目基点获取

与修改项目基点值类似,先获取到项目基点的实例,遍历实例属性获取值,然后通过转换得到基点。
通过.AsDouble()获取到的值为英尺,根据需要自行转换。

public XYZ getProjectBasePoint()
{double dNorthSouth = 0;double dEastWest = 0;double dElevation = 0;double dAngle = 0;ElementCategoryFilter siteCategoryfilter = new ElementCategoryFilter(BuiltInCategory.OST_ProjectBasePoint);FilteredElementCollector collector = new FilteredElementCollector(m_doc);IList<Element> siteElements = collector.WherePasses(siteCategoryfilter).ToElements();foreach (var ele in siteElements){Parameter paramNorthSouth = ele.get_Parameter(BuiltInParameter.BASEPOINT_NORTHSOUTH_PARAM);if (paramNorthSouth != null)dNorthSouth = paramNorthSouth.AsDouble();Parameter paramEastWest = ele.get_Parameter(BuiltInParameter.BASEPOINT_EASTWEST_PARAM);if (paramEastWest != null)dEastWest = paramEastWest.AsDouble();Parameter paramElevation = ele.get_Parameter(BuiltInParameter.BASEPOINT_ELEVATION_PARAM);if (paramElevation != null)dElevation = paramElevation.AsDouble();Parameter paramAngle = ele.get_Parameter(BuiltInParameter.BASEPOINT_ANGLETON_PARAM);if (paramAngle != null)dAngle = paramAngle.AsDouble();}XYZ projectBasePoint = new XYZ(dEastWest, dNorthSouth, dElevation);Transform translationTransform = Transform.CreateTranslation(projectBasePoint);Transform rotationTransform = Transform.CreateRotation(XYZ.BasisZ, dAngle);Transform finalTransform = translationTransform.Multiply(rotationTransform);return finalTransform.Origin;
}

这篇关于revit二开 项目基点(可见性设置、基点修改及获取)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/273008

相关文章

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

Python获取浏览器Cookies的四种方式小结

《Python获取浏览器Cookies的四种方式小结》在进行Web应用程序测试和开发时,获取浏览器Cookies是一项重要任务,本文我们介绍四种用Python获取浏览器Cookies的方式,具有一定的... 目录什么是 Cookie?1.使用Selenium库获取浏览器Cookies2.使用浏览器开发者工具

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

小白也能轻松上手! 路由器设置优化指南

《小白也能轻松上手!路由器设置优化指南》在日常生活中,我们常常会遇到WiFi网速慢的问题,这主要受到三个方面的影响,首要原因是WiFi产品的配置优化不合理,其次是硬件性能的不足,以及宽带线路本身的质... 在数字化时代,网络已成为生活必需品,追剧、游戏、办公、学习都离不开稳定高速的网络。但很多人面对新路由器

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

一文详解如何使用Java获取PDF页面信息

《一文详解如何使用Java获取PDF页面信息》了解PDF页面属性是我们在处理文档、内容提取、打印设置或页面重组等任务时不可或缺的一环,下面我们就来看看如何使用Java语言获取这些信息吧... 目录引言一、安装和引入PDF处理库引入依赖二、获取 PDF 页数三、获取页面尺寸(宽高)四、获取页面旋转角度五、判断