Script cho phần Join Geometry:
Mã Python cho phần NUCEJoinGeometry:
import clr clr.AddReference('ProtoGeometry') from Autodesk.DesignScript.Geometry import * clr.AddReference("RevitAPI") import Autodesk clr.AddReference("RevitServices") import RevitServices from RevitServices.Persistence import DocumentManager from RevitServices.Transactions import TransactionManager clr.AddReference("RevitNodes") import Revit clr.ImportExtensions(Revit.Elements) elementA = UnwrapElement(IN[0]) elementB = UnwrapElement(IN[1]) #The inputs to this node will be stored as a list in the IN variables. dataEnteringNode = IN elementlistA = UnwrapElement(IN[0]) elementlistB = UnwrapElement(IN[1]) doc = DocumentManager.Instance.CurrentDBDocument NUCE = [] TransactionManager.Instance.EnsureInTransaction(doc) for elementA in elementlistA: for elementB in elementlistB: try: result = Autodesk.Revit.DB.JoinGeometryUtils.JoinGeometry(doc,elementA,elementB) NUCE.append(result) except: pass TransactionManager.Instance.TransactionTaskDone() OUT = NUCE
Script cho phần Switch Join Order:
Mã Python cho phần NUCESwitchJoinOrder:
import clr clr.AddReference('ProtoGeometry') from Autodesk.DesignScript.Geometry import * clr.AddReference("RevitAPI") import Autodesk clr.AddReference("RevitServices") import RevitServices from RevitServices.Persistence import DocumentManager from RevitServices.Transactions import TransactionManager clr.AddReference("RevitNodes") import Revit clr.ImportExtensions(Revit.Elements) #The inputs to this node will be stored as a list in the IN variables. dataEnteringNode = IN elementA = UnwrapElement(IN[0]) elementB = UnwrapElement(IN[1]) doc = DocumentManager.Instance.CurrentDBDocument NUCE = [] TransactionManager.Instance.EnsureInTransaction(doc) for A in elementA: for B in elementB: try: result = Autodesk.Revit.DB.JoinGeometryUtils.SwitchJoinOrder(doc,A,B) NUCE.append(result) except: pass TransactionManager.Instance.TransactionTaskDone() #Assign your output to the OUT variable.
OUT = NUCE Sản phẩm sau khi đưa vào danh sách Dynamo Player:
Trong bài viết, tôi chỉ thực hiện cho một cặp đối tượng như tường-cột, dầm-sàn,... người dùng tự thêm các cặp đối tượng còn lại.
Ứng dụng Dynamo này giúp mô hình Revit trở nên chính xác hơn, và khi đó các bên tham gia dự án sẽ sử dụng mô hình Revit cho mục đích kiểm soát khối lượng, bản vẽ,... Nếu chưa rõ về ứng dụng Dynamo này, bạn đọc cần tìm hiểu thêm các kiến thức cơ bản về Dynamo tại website này.