使用Dynamo和Python,读取坐标点实现钢结构的建模及构件旋转

3 篇文章 0 订阅
2 篇文章 0 订阅

以流水账的形式记录一下实现过程

1、需求介绍

现有钢结构图纸,需按图纸建模

 

 Rhino模型

 部分图纸

 2、技术路线

2.1、整理坐标点

2.1.1通过文字识别,从PDF图纸中提取坐标

01主楼外网节点定位图.pdf

复制到excel中,校正数据(可能出现的问题有:123.456被识别为123,456;338被识别为33B

 2.1.2 确定建模原点,平移获取的坐标点,并将单位从m改为mm。

这里取(680.077,405.080,178.928)为坐标原点。处理后的坐标如下,另存在csv中

02主楼外网节点.csv

 2.1.3 按图纸顺序整理钢构件起点-终点编号。目前没有特别好的办法整理出起点—终点,只能一个个核对。

 将起点—终点编号另存为:

03主楼外网节点竖挺点.csv

 2.2、创建竖挺

2.2.1 打开Dynamo,导入坐标数据

2.2.2 创建竖挺

 

2.3、旋转竖挺 

2.3.1 从PDF中提取主楼竖挺法线定位点

04 S-W-SG026_主楼及连桥竖梃法线定位图.pdf

 2.3.2 在Dynamo中导出竖挺起点终点坐标

05 Dynamo导出主楼竖挺点.csv

 2.3.3 计算竖挺旋转角度

06 Dynamo计算竖挺角度主楼.csv

以上文件来自如04整理结果和05的组合

07 Dynamo计算结果-主楼竖挺角度.csv

 2.3.4 导入旋转角度

 

 

3、Python节点内容

# 启用 Python 支持和加载 DesignScript 库
import clr
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)

clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import * 

import math

doc=DocumentManager.Instance.CurrentDBDocument

clr.AddReference ("System")
from System.Collections.Generic import *

elements = UnwrapElement(IN[0])
#angle = IN[1]
listangles = IN[1]
i = 0
angle = []
for e in elements[0]:
	ref_location = e.Location.Curve
	angles = math.radians(listangles[0][i])
	TransactionManager.Instance.EnsureInTransaction(doc)
	ElementTransformUtils.RotateElement(doc, e.Id, ref_location, -angles)
	TransactionManager.Instance.TransactionTaskDone()
	angle.Add(angles)
	i +=1
OUT = angle

 

 

 

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值