Python+DRVT 从外部调用 Revit:批量创建梁(2)

接着昨天的示例,继续创建梁,这次展示以椭圆弧、Nurbs为轴线。

创建以椭圆弧为轴线的梁

椭圆弧曲线的创建:

python 复制代码
# 创建椭圆弧
def CreateEllipse(ctx : MyContext, z: float) -> DB.Curve:
    """
    create a horizontal partial ellipse instance with specified z coordinate value
    """
    session = ctx.session
    center = DB.XYZ.ctor(session, m2feet(15), m2feet(-10), z);
    radX = m2feet(3.0)
    radY = m2feet(5.0)
    xVec = DB.XYZ.ctor(session, 1, 0, 0);
    yVec = DB.XYZ.ctor(session, 0, 1, 0);
    param0 = deg2rad(0)
    param1 = deg2rad(180)
    ellpise = DB.Ellipse.CreateCurve(session, center, radX, radY, xVec, yVec, param0, param1)
    return ellpise

批量创建梁:

与昨天的一样,只需要将curve = CreateAr c(ctx, levelZ) 替换为 curve = CreateEllipse(ctx, levelZ)即可。生成结果:

3D

创建以Nurbs为轴线的梁

Nurbs的创建:

python 复制代码
# 创建Nurbs曲线
def CreateNurbSpline(ctx : MyContext, z: float) -> DB.Curve:
    """
    create a horizontal nurbspline instance with specified z coordinate value
    """
    session = ctx.session

    numPoints = 5;
    outerRadius = 5.0;
    innerRadius = outerRadius * math.cos(math.pi / 10) / math.cos(3 * math.pi / 10)
    startAngleDeg = 90.0;

    weights = Revit.ListDouble.ctor(session)
    # create control points with same z value
    ctrPoints = DB.ListXYZ.ctor(session)
    for i in range(numPoints * 2):
        angleDeg = startAngleDeg - i * 360.0 / (numPoints * 2)
        angleRad = angleDeg * math.pi / 180.0
        if i % 2 == 1:
            radius = outerRadius
        else:
            radius = innerRadius
        x = radius * math.cos(angleRad)
        y = radius * math.sin(angleRad)
        ctrPoints.Add(DB.XYZ.ctor(session, m2feet(x), m2feet(y), z))
        weights.Add(1)

    nurbSpline = DB.NurbSpline.CreateCurve(session, ctrPoints, weights)
    return nurbSpline

批量创建梁:

同样,只需要将curve = CreateAr c(ctx, levelZ) 替换为 curve = CreateNurbSpline (ctx, levelZ)即可(注:不同的Nurbs几何形状/大小会影响FamilySymbol实例的创建,可能会因约束不满足而创建失败。这是正常的与手工创建无异)。生成结果:

3D

自动完成:启动Revit => 创建项目 => 批量创建 => 保存项目文档 => 结束Revit 全程无需手工操作。有了DRVT的加持,Revit插件的核心能力可以在外面用Python脚本轻松驾驭。


相关文章

Python+DRVT 从外部调用 Revit:从外部启动 Revit-CSDN博客

Python+DRVT 从外部调用 Revit:打开项目文件-CSDN博客

Python+DRVT 从外部调用 Revit:获取项目信息-CSDN博客

Python+DRVT 从外部调用 Revit:更新项目信息-CSDN博客

Python+DRVT 从外部调用 Revit:第一个完整示例-CSDN博客

Python+DRVT 从外部调用 Revit:创建新项目-CSDN博客

Python+DRVT 从外部调用 Revit:创建族文档-CSDN博客

Python+DRVT 从外部调用 Revit:批量创建轴网-CSDN博客

Python+DRVT 从外部调用 Revit:批量创建标高-CSDN博客

Python+DRVT 从外部调用 Revit:创建风管系统加劲肋-CSDN博客

Python+DRVT 从外部调用 Revit:创建剖面-CSDN博客

Python+DRVT 从外部调用 Revit:创建桁架族-CSDN博客

Python+DRVT 从外部调用 Revit:批量创建墙-CSDN博客

Python+DRVT 从外部调用 Revit:批量创建门-CSDN博客

Python+DRVT 从外部调用 Revit:批量创建门和窗-CSDN博客

Python+DRVT 从外部调用 Revit:批量创建梁-CSDN博客

深度嵌入数字化工作流:DRVT 的思考与实践-CSDN博客

从插件化走向系统集成------Revit-CSDN博客

Revit变身智能组件,BIM未来可期-CSDN博客

#SystemIntegration #Revit #RevitAPI #Python #Automation #DesignAutomation #BIM #Interop #AEC #DigitalTwin #Workflow

相关推荐
喵手10 分钟前
Python爬虫实战:京东/淘宝搜索多页爬虫实战 - 从反爬对抗到数据入库的完整工程化方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·京东淘宝页面数据采集·反爬对抗到数据入库·采集结果csv导出
B站_计算机毕业设计之家27 分钟前
猫眼电影数据可视化与智能分析平台 | Python Flask框架 Echarts 推荐算法 爬虫 大数据 毕业设计源码
python·机器学习·信息可视化·flask·毕业设计·echarts·推荐算法
PPPPPaPeR.31 分钟前
光学算法实战:深度解析镜片厚度对前后表面折射/反射的影响(纯Python实现)
开发语言·python·数码相机·算法
JaydenAI35 分钟前
[拆解LangChain执行引擎] ManagedValue——一种特殊的只读虚拟通道
python·langchain
骇城迷影39 分钟前
Makemore 核心面试题大汇总
人工智能·pytorch·python·深度学习·线性回归
长安牧笛42 分钟前
反传统学习APP,摒弃固定课程顺序,根据用户做题正确性,学习速度,动态调整课程难度,比如某知识点学不会,自动推荐基础讲解和练习题,学习后再进阶,不搞一刀切。
python·编程语言
码界筑梦坊1 小时前
330-基于Python的社交媒体舆情监控系统
python·mysql·信息可视化·数据分析·django·毕业设计·echarts
森焱森1 小时前
详解 Spring Boot、Flask、Nginx、Redis、MySQL 的关系与协作
spring boot·redis·python·nginx·flask
he___H1 小时前
双色球红球
python