Revit二开-设备(消防箱)翻模

有没有试过用翻模软件翻设备(消防箱)位置会偏移?生成箱体和图块方向相反?就像下图1、2情况,研究了一下是因为是识别CAD图块的坐标点和族的原点不一致导致偏移的,还有CAD图块的Y比例会影响图块的方向。可惜调整了消防箱的原点(中心),翻模还是偏移。。。所以决定自己搞一个出来。
在这里插入图片描述
在这里插入图片描述
设备翻模思路:
1.根据CAD图块的坐标点,放置设备族(将消防箱族的原点调整在中心);
2.根据CAD图块的旋转角度、Y比例进行已生成的族实例旋转;
3.生成啦!测试检查完美,翻其他设备思路应该是一样的。

 var pickp = CADLineReference.GlobalPoint;

            var blockrefs = cADModelUtils.CADBlockRefenceInfos(uidoc, filpath);//获取CAD所有图块
            string blocklayer = null;//图层名称
            string blockname = null;//图块名称
            double maxd = double.MaxValue;

            foreach (var item in blockrefs)
            {
                var d =  pickp.DistanceTo(CADtransform.OfPoint(item.BlockRefLoca));
                if (d<maxd)
                {
                    maxd = d;
                    blocklayer = item.LayerName;
                    blockname = item.BlockName;
                }
            }
            Autodesk.Revit.DB.Transaction tr = new Autodesk.Revit.DB.Transaction(doc, "familyinstance");
            tr.Start();
           
            foreach (var item in blockrefs)
            {
                if (item.LayerName == blocklayer)
                {   
                    if (item.BlockName== blockname)
                    {
                        var rotan = item.Rotation;//角度
                        var locaP = CADtransform.OfPoint(item.BlockRefLoca);//坐标
                        var syblo =  Tools.SearchFamilyGetFamilySybolByName(doc, "带灭火器箱组合式消防柜_单栓", "1800×700×240");
                        var familyinstance =  doc.Create.NewFamilyInstance(locaP, syblo, doc.ActiveView.GenLevel, StructuralType.NonStructural);
                        var ScaleFactorsY = item.ScaleFactorY;//Y比例 
                        ElementTransformUtils.RotateElement(doc, familyinstance.Id, locaP.GoesDirExtend(XYZ.BasisZ, 100),rotan);
                        if (familyinstance.Symbol.FamilyName.Contains("消防箱") || familyinstance.Symbol.FamilyName.Contains("消防柜"))
                        {
                            if (ScaleFactorsY > 0)
                            {
                                ElementTransformUtils.RotateElement(doc, familyinstance.Id, locaP.GoesDirExtend(XYZ.BasisZ, 100), 180.0.AngleToRadius());//旋转180°
                            }
                        }
                       
                    }
                } 
            }
            tr.Commit();

在这里插入图片描述

在这里插入图片描述
!](https://img-blog.csdnimg.cn/e86be3c815294523a9f8a13b091f63b0.png)

分享一个自制Revit插件,本人是个BIM工程师,该插件是根据自己做工程一些经验和对插件功能的频繁度,自己整合开发功能,初衷是提高效率。
目前MagicTools的功能包括通用功能、土建、机电、审图、出图功能。还有好多功能都想做,如果有好的需求也可以提,后续有新增继续增加上去,努力弄个实用的插件,希望能帮到真正有需要的BIMer。
如有需要的可以加企鹅群:630552940

插件下载地址,免费试用
链接:https://pan.baidu.com/s/1GDnHeWwZ5r_HrnT3Mo7twA?pwd=jhlt
提取码:jhlt

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值