Revit二开--判断元素是否被标记过

Revit二次开发——标记/标注自动避让思路分享 在【注释】选项卡中,Revit提供了“全部标记”这个快速标记对象的方法 梁墙板柱、常规模型等都可以实现快速标注 配合之前开发的“直墙标注”功能,对于解决装配式应用中内隔墙、砌体墙的平面表达的效率,有极大的提升 设计师使用后也反馈良好,但也遇到问题,自动创建的标注及标记会存在遮挡打架的情况,影响了平面阅读效果,仍需手动移开 需求比较明确,即判断尺寸标注、标记族之间的碰撞,并移开 本文分享标记/标记自动检测碰撞避让的插件开发思路 开发环境 visual studio2017 + ... 阅读详情

Revit二开–判断元素是否被标记过

在revit二次开发中,在做出图程序的时候,有些时候需要判断元素是否被标记过,如果被标记过我们就不在进行标记以免重复,revit本身并没有提供判断标注的方法,我们可以封装一个方法来判断一个元素是否被标记过。

  • 封装方法如下:
    public static class IndependentTagHelper
    {
        /// <summary>
        /// 判断当前视图上的元素是否被标记过
        /// </summary>
        /// <param name="ele"></param>
        /// <param name="doc"></param>
        /// <returns></returns>
        public static bool IsTaged(this Element ele,Document doc)
        {
            var result = false;

            var collector = new FilteredElementCollector(doc, doc.ActiveView.Id);

            var independenttags = collector.OfClass(typeof(IndependentTag)).WhereElementIsNotElementType();

            var tagids = independenttags.Cast<IndependentTag>().Select(m => m.TaggedLocalElementId);

            if (tagids.Contains(ele.Id))
                result = true;

            return result;
        }
    }
  • 封装好以上方法之后,直接调用就可以了。

调用案例:

    [Transaction(TransactionMode.Manual)]
    [Journaling(JournalingMode.UsingCommandData)]
    class Cmd_JudgeElementTaged:IExternalCommand
    {
        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
            var uiapp = commandData.Application;
            var uidoc = uiapp.ActiveUIDocument;
            var doc = uidoc.Document;
            var sel = uidoc.Selection;
             
            var ele = sel.PickObject(ObjectType.Element).GetElement(doc);
             
            if(ele.IsTaged(doc))
                MessageBox.Show("this element is Taged!");
            else
            {
                MessageBox.Show("this element is not Taged!");
            }
             
            return Result.Succeeded;
        }
    }

以上就是判断元素有没有被标记过的全部代码。

如果有不明白的,加群QQ:166072827

更多Revit二开知识尽在唐僧课堂!

唐僧课堂BIM开发

在这里插入图片描述

Revit二次开发——结构模型构件自动扣减 对'HelloWorld'说不,一起来写'有福扣减' 有福BIM的第四篇原创文章! 阅读前望知悉: 我晓得各位读者和粉丝中不乏C#二开大佬 有福作为一个二开新手(编程泥腿子) 自知对编程的语法或定义的理解浅薄 故此文不敢称之‘教程’ 仅作为‘技术分享’与‘学习笔记’之类尚可 这个系列被我称为《零基础Revit二次开发》 可有意思的事 从另一个角度来看 真正的零基础(不会C#、没有任何编程经验、R... 阅读详情

相关推荐

Revit创建多类别标记

Revit创建多类别标记

qq_41059339的博客 529

Revit二次开发--为管道添加标注

1)确保项目浏览器中有标记族类型; 2)确保当前视图为二位视图; 3)代码如下: public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { UIDocument uiDoc = commandData.Application.Act...

qq_43026206的博客 2841

Revit里如何给构件添加标记及给管线的标注问题

  Revit里如何给构件添加标记及给管线的标注问题   问题一、最近“BIM建模助手”群里不少人找我单独问到关于如何在三维里为梁、柱等构件添加标记的问题,这里统一回复一下:   我们需要在三维里标记构件,可以先在三维里锁定视图如图-1   这里显示的当前三维视图是解锁的,我们点击该按钮,锁定该三维视图,如图-2   锁定以后就会发现我们转不动该视图,现在我们就可以使用注释了,如图-3   问题二、在进行模块化工厂设计时遇到有门窗的房间需要做特别多的嵌族,有没有好的办...

zh_BIM的博客 826

Revit API创建标注NewTag

start/// &lt;summary&gt;/// 创建水管管径标注/// &lt;/summary&gt;[Transaction(TransactionMode.Manual)]public class CreatPipeDiameterTag : IExternalCommand{    #region IExternalCommand Members    public Result ...

weixin_33786077的博客 756

Revit C#插件开发:墙标记自动化项目

在C#语言中,数据类型是定义变量所存储数据的种类的关键。基本数据类型包括整数、浮点数、字符和布尔值。而引用类型则包括类、接口、数组等。// 整数类型// 单精度浮点数// 字符串类型// 布尔类型变量是存储数据的容器,必须先声明再使用。变量名应遵循C#命名规则,且应具有描述性。变量的声明通常需要指定数据类型和变量名,必要时还可以进行初始化。在本章节中,我们详细介绍了在Revit二次开发中如何进行图元的基本操作和属性的获取与修改。

weixin_32102617的博客 516

你的OLED屏和MPU6050为啥通信失败?从IIC的7位地址冲突讲起

本文深入解析OLED屏与MPU6050传感器在I2C总线上的通信故障,重点探讨7位地址冲突问题。通过分析I2C协议中的地址分配机制,提供硬件调整和软件调试的完整解决方案,帮助开发者有效排查和解决设备无响应问题。

weixin_26876073的博客 150

Revit二次开发之“创建尺寸标注”

运行该命令,选中一个可标注的对象,即实现标注。 [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)][Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption...

weixin_34244102的博客 1147

智能车图像处理去畸变+逆透视教程

图像处理,去畸变与逆透视整合

wu58430的博客 1万+

Revit二次开发之删除元素

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Autodesk.Revit.DB; using Autodesk.Revit.UI; using Autodesk.Revit.Attributes; ...

yasenRK的博客 1904

基于Android平台下的健康管理APP/基于android的健康管理系统

随着网络科技的发展,移动智能终端逐渐走进人们的视线,相关应用越来越广泛,并在人们的日常生活中扮演着越来越重要的角色。因此,关键应用程序的开发成为影响移动智能终端普及的重要因素,设计并开发实用、方便的应用程序具有重要的意义和良好的市场前景。Android技术作为当前最流行的操作平台,自然也存在着大量的应用服务需求。 本课题研究的是基于Android技术平台的健康管理APP,开发这款健康管理APP主要是为了帮助用户可以不用约束时间与地点进行所需信息。本文详细讲述了健康管理APP的界面设计及使用,主要包括界面的

m0_73706453的博客 1437

STM32解码EM4100的曼彻斯特编码(库函数版本)

前言: 前些日子老师布置一个任务叫我们焊接一个RFID读卡器,其中刚好我们手上也有一个STM32F103RBT6开发板,老师于是布置任务叫我们用STM32完成对EM4100进行读卡操作 EM4100简介: 中 文 名:EM4100卡 存储容量:64bit 工作频率:125KHZ 读写距离:2-15cm 产品名称:EM4100/EM4102卡 芯片类型:μEM瑞士微电 EM4100/EM4102 擦写寿命:读不限,只读 外形尺寸:ISO标准卡/厚卡 封装材料:PVC、ABS 典型应用:身份识别、考勤系统、门禁

Gancenty 8596

revit 二次开发 创建尺寸标注

Dimension autoDimension = doc.Create.NewDimension(view, newline, references); view是当前要标注尺寸的视图,newline是标注尺寸直线,references是绑定的几何参照。 但是目前只能解决平面视图上的水平和垂直的标注,斜向标注无法办到。...

NancyLee18的博客 4659

Carla-编译CarlaUE4提示HoloLens.Automation项目缺少Windows程序集?

编译CarlaUE4提示HoloLens.Automation项目缺少Windows程序集?不妨看看这个!

DSK_981029的博客 2572

Revit二开--设置Revit元素默认类型

Revit二开–设置默认元素类型 当我们创建revit元素时,默认的类型不受控制怎么办,答案当然是首先设置默认类型啦!! 默认类型设置属于文档级别的,所以,这个方法存在于Document里面。 首先获取当前文档的Document,然后调用document的SetDefaultElementTypeId()方法即可。 代码详见 github :https://github.com/binbinstr...

binbinstrong的博客 1113

2021-10-29 atcoder ABC157——B - Bingo

B - Bingo 先标记,然后暴力判断,这样最清晰最好想。 #include<iostream> #include<algorithm> #include<cstring> using namespace std; typedef long long LL; int a[110][110],b[110]; int main() { for(int i=1;i<=3;i++) for(int j=1;j<=3;j++) cin>>a[i]

honeistbutter的博客 337

模型预测控制(MPC)解析(三):多输入多输出系统

本文为阅读笔记,仅供学习交流使用!!! 在之前的文章中,为了简单起见,以单输入单输出系统为例介绍了MPC控制的实现方法。因为使用的是状态空间方程作为系统模型,这种方法可以轻松的扩展到多输入多输出系统中。 ...

行者无疆的博客 1万+

Revit二开学习-多排管道标注

Revit二开学习-多排管道标注 管道标注摘自: https://blog.youkuaiyun.com/qq_43026206/article/details/84256346?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159152319919725219929766%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=1

weixin_44581042的博客 2516

基于opencv人脸识别实现课堂抬头率检测系统 完整代码 可直接运行 作为毕设

基于opencv人脸识别实现课堂抬头率检测系统 完整代码 可直接运行 作为毕设

机器学习深度学习业余选手 1146

Revit API: IndependentTag 标记

前言 本文介绍 Revit 中标记相关的内容。这里的标记指的是 IndependentTag,它包按类比标记、全部标记、多类别标记、材质标记和空间标记。 内容 通过 API 可以获得和修改的数据: 一个标记的引线,是否能够显示,HasLeader ; 一个标记的方向,水平或者垂直,TagOrientation ; 引线的类型,附着端点或自由端点,LeaderEndCondition ; 是否有弯头,和对弯头位置的控制,HasElbow 和 LeaderElbow; 标记的文字,只读,从被标记的构件中获得

极客BIM工作室 2978

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Revit二次开发学习-多管标记封装

代码 using Autodesk.Revit.DB; using Autodesk.Revit.DB.Electrical; using Autodesk.Revit.DB.Mechanical; using Autodesk.Revit.DB.Plumbing; using Autodesk.Revit.UI; using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst.

weixin_44581042的博客 965

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Revit二次开发多管标记封装:批量标记、自动避让与参数映射实现

在BIM机电出图场景中,管道标注的效率和规范性直接影响工程交付质量。Revit二次开发作为提升建模与出图效率的核心手段,常被用于解决批量标注、样式统一等痛点。多管标记的本质是基于Revit API对管道几何数据、参数信息与视图坐标系的综合处理,通过IndependentTag创建标记族实例,并结合碰撞检测与偏移算法实现自动避让。这类工具在管线综合、机电深化设计、施工图审查等环节具有极高应用价值,尤其适合处理管径标注、系统类型标识、标高映射等重复性工作。本文从Revit二次开发的通用概念出发,拆解多管标记封装

weixin_34245082的博客 432

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Revit二次开发:多管标记批量生成与封装实践

在BIM深化设计中,管道标注是出图前的高频重复操作,面对整层喷淋、给排水管线,手动标记不仅耗时耗力,还极易出现漏标和重复标。理解Revit中独立标记(IndependentTag)的图元原理,是自动化批处理的关键前提。通过FilteredElementCollector完成管道收集,结合标记类型匹配、事务批量提交与去重逻辑,即可构建稳定高效的多管标记模块。该方案在管线综合出图、方案报审、标准化出图等场景中价值突出,能大幅减少重复劳动。本文围绕批量标记的封装思路与踩坑经验,为Revit二次开发初学者及插件开发

weixin_33888907的博客 437

revit建筑样板_【BIM教学】Revit图纸与标题栏的创建与编辑

编者按:本公众号陆续推出REVIT教学系列,本次推出系列中的第十期-Revit图纸与标题栏的创建与编辑:1 图框(图纸)和标题栏介绍图框(图纸): 在Revit中,图纸是将模型视图添加到其中的视图,是设计成果的表达,图纸视图经过绘图仪或打印机输出就成了工程图纸。而标题栏是图纸的重要组成部分,它可定义图纸的尺寸和外观,因而可将其视为图纸的样板。图框也是一种REVIT的族元素。标题栏:标题栏的主要作用...

weixin_39890633的博客 1765

Revit 中如何在三维中标记?选择设置问题?

Revit插件:建模助手还有机电,施工,出图,综合,族库,有求必应等等模块,CAD图示识别翻模,标注避让,标注调整,洞口标注,洞口定位,净高分析,三维视图,快速剖面三功能,轴网标注,一键开洞,生成幕墙,砌体排砖等等140+功能。选择“基线图元”这个选项是指,如果把该选项选择上,那么在基线范围内的构件都是可以被选择到的。最后还有一个“选择是拖拽图元”,这个选择选项的意思是,当没有激活该状态的时候的,鼠标左键点击模型构件直接拖动,是不好用的,只能呈现框选状态,这就约束了可能出现误操作的事情的发生。

zh_BIM的博客 895

Revit二次开发——常规模型标记随构件旋转

对梁、管线进行标记时,标记族可以平行于主体 对常规模型标记时,标记族似乎只学会了水平、垂直这两个姿势 并且不支持放置后旋转 最近群里有朋友提问:标注怎么能跟风管支架平行? 之前也有遇到类似需求:标注怎么与预制构件平行 这里提供一个解决方法,用常规注释族代替 视频演示:演示环境revit2016 实现思路: 1.获取视图内的标记族、注释族 2.指定需要替换、被替换的类型 3.遍历指定类型的标记族...

imbatuco的博客 2086

标记的详细使用说明

标记 使用“标记”工具将标记附着到选定图元。 标记是用于在图纸中识别图元的注释。 “注释”选项卡“标记”面板(按类别标记) “注释”选项卡“标记”面板(全部标记) 与标记相关联的属性会显示在明细表中。 关于标记 族库中的每个类别都有一个标记。 一些标记会随默认的Revit样板自动载入,而另一些则需要手动载入。 如果需要,可以在族编辑器中创建自己的标记,方法是创建注释符号族。 另外,可以为族载入多个标记。 关于标记标签 创建标记后,会添加标签以显示所需图元参数的值。 将标记载..

xinlan3618的博客 2636
上一篇: Revit二开-绘图实战
下一篇: Revit二开--删除所有导入cad文件
binbinstrong
博客等级 码龄16年 317粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值