revit二次开发之多梁夸跨断(就是拆分梁啦)

本文介绍了如何在Revit 2018中使用二次开发工具C#来实现梁的多跨断(拆分梁)功能。通过获取梁和柱的中心线点,计算比例并利用FamilyInstance.Split方法精确地分段梁,实现对梁的灵活编辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2018.7.17.南京。外面36°,宜烧烤,感谢麻老师,k神。喵的Leo周*(本人)好饿。早知道不学C#了。。。

环境:revit2018

首先先介绍几个比较重要的先行条件。如果知道最好,不知道我接下来也会给你讲解。

柱的中线点:通过 Location 类,你可以得到指定柱子的中心点。这个对你以后revit二次开发生涯很有帮助。中线点,就是在柱子的俯视图的2条对角线的交点,且高度为柱子的地面高度。

下面是去中线点的代码示意:

LocationPoint columnPoint = column.Location as LocationPoint;

XYZ point =columnPoint.Point;

柱子有中心点,梁则有中心线。

                                                                                               图1-1

如图1-1所示,箭头所指即为中心线的交点。根据上面柱子的中心点,你是否发现。当梁不发生偏移时,梁的中心线的2个端点与柱子的中线点在二维平面重合。

取得中心线的代码示意:

 LocationCurve BeamLoactionCurve = beam.Location as LocationCurve;
  Curve BeamLoaction = BeamLoactionCurve.Curve;

在revit2018中梁作为FamilyInstance拥有了一新的方法叫Split,它可以根据百分比分段梁,并提供新生的梁的ID(梁被分成2断,一段继承原来梁的id,一段生成新的ID)。本人思路:根据柱子中心点,可以得到各个柱子点到指点柱子点的距离(指定点一般是梁的2端的任意一端),也就得知各个段所占百分比。然后梁根据这个在进行劈~~~~完美!perfect!

 

namespace SplitBeamEI
{
    [Transaction(TransactionMode.Manual)]
    public class SplitBeamWithLean : IExternalCommand
    {
        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
            UIDocument uidoc = commandData.Application.ActiveUIDocument;
            Document doc = uidoc.Document;
            try
            {
                BeamAndColumnSlectionFileter beamAndColumnSelectionFileter = new BeamAndColumnSlectionFileter();
                IList<Reference> refers = uidoc.Selection.PickObjects(ObjectType.Element, beamAndColumnSelectionFileter);
                List<Element> BeamList = new List<Element>();
                List<Element> ColumnList = new List<Element>();
                if (refers.Count > 0)
                {
                  &nb

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值