Dynamo Python Library- Các Thư viện trong Script Code Python | VietBimcoder.com

Dynamo Python Library- Các Thư viện trong Script Code Python

Trong Python Scipt Node để sử dụng các method và function ta phải import thư viện chứa những method và function đó, cho bao gồm thao tác trên Dynamo và Revit

I. Các Thư Viện Trong Dynamo

  • Mở Dynamo lên và kéo ra node Python Script

  • Đầu tiên, clr viết tắt của (Common Language Runtime) là một module của window giúp liên kết với các thư viện mà không được viết cùng ngôn ngữ trong nền tảng .Net, ở đây là liên kết các thư viện không được viết bởi Python vào môi trường Python Script.
  • Các ngôn ngữ chạy trên nền tảng .NET  có các thư viện được tham chiếu vào môi trường Python thông qua phương thức AddReference() nằm trong module clr. Vậy đầu tiên phải import module clr vào (dòng 2) sau đó dùng phương thức AddReference tới module ProtoGeometry (dòng 3)  và cuối cùng mới là thao tác Import vào Dynamo (dòng 4) theo cú pháp:

 

import Autodesk.DesignScript.Geometry

hoặc                 from Autodesk.DesignScript.Geometry import *

  • Tương tự ta cũng có các thư viện khác như DSCoreNodes, Tessellation, DSOffice
  • Vậy trong các thư viện đó có các function gì:

+ ProtoGeometry : Arc, Bounding Box, Circle, Cone, Coordinate System, Cuboid, Curve, Cylinder, Edge, Ellipse, Ellipse Arc ,Face, Geometry, Helix, Index Group, Line, Mesh, Nurbs Curve, Nurbs Surface, Plane, Point, Polygon, Rectangle, Solid, Sphere, Surface, Topology, TSpline, UV, Vector, Vertex.

+ DSCoreNodes: Color, Color Range 2D, Date Time, Time Span, IO, Formula, Logic, List, Math, Quadtree, String, Thread.

+ Tessellation: Convex Hull, Delaunay, Voronoi.

+ DSOffice: Excel

II. Các Thư Viện Của Revit

  • Tương tự như việc import các thư viện có sẵn trong Dynamo, để liên kết với thư viện Revit ta chỉ cần vài dòng khai báo như hình bên dưới đây

+ Revit Node: Thư viện này chính là những node trong Dynamo mà liên quan tới Revit

+ RevitElements: Nằm trong NameSpace RevitNode ở trên, truy cập trực tiếp đến Element

+Revit Document Manager: Cho phép truy cập tới các đối tượng View, Sheet, Element v.v.. trong Project hiện hành

+RevitAPI: Nếu không muốn sử dụng thư viện RevitElements như ở trên thì có thể dùng cái này, tuy nhiên bạn cần thực hiện thao tác Unwrap element trước khi can thiệp các đối tượng bằng RevitAPI, đồng thời phải sử dụng Transaction khi can thiệp edit đối tượng, và Wrap đối tượng lại nếu muốn. Việc Wrap có ý nghĩa rằng đối tượng đó thuộc sở hữu của Revit chứ không phải Dynamo. Nếu đối tượng được select trực tiếp từ hồ sơ của dự án hiện tại thì sau khi edit phải được Wrap lại, ngược lại với đối tượng được tạo ra trong môi trường Python Script từ Dynamo thì không cần phải Wrap. Việc Wrap đối tượng có thể qua phương thức ToDSType(bool)

Ví dụ:

Ở đây giá trị bool là false nghĩa là đối tượng này được tạo từ Dynamo và đã được đánh dấu là không phải đối tượng sở hữu của Revit

 

Bài viết liên quan