Cùng trao đổi về API nào


#1

Chắc nhiều bạn cũng đã dần nhận thấy, API là một hướng đi mới và tiềm năng cho các kỹ sư BIM nói chung và Revit nói riêng hiện nay. Mình tạo ra chủ đề này đễ mọi người cùng trao đổi với nhau về API. Bất cứ ai có đam mê thì hãy điểm danh và cùng trao đổi những khúc mắc cùng nhau nào.


#2

Chào bạn ! Mình tìm hiểu và làm việc thực tế cùng Revit Structure và Dynamo đã đươc 1 năm , hiện tại mình bắt đầu có hướng tìm hiểu thêm về lập trình Revit API và Python để can thiệp sâu hơn vào phần mềm . Tuy vậy do kiến thức còn hạn chế nên chưa thấy rõ được hết sức mạnh của API , vậy bạn (hoặc ai đó trong diễn đàn ) có thể làm 1 bài giới thiệu và chia sẻ 1 số Code có ý nghĩa thực tiễn để mình và mọi người phần nào hiểu được API không ? Cám ơn bạn rất nhiều !!!:heart_eyes:


#3

Về tài liệu và hướng dẫn API thì có thể xem tại đây http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=16459234.
Học lần lượt các bài chắc sẽ nắm đc cơ bản.


#4

Theo mình nghĩ vấn đề lập trình cho Revit nên để các coder họ làm mình chỉ đưa ra định hướng để họ viết là hay hơn. Chứ giờ những người học revit cứ muốn theo học lập trình thì nó có gì không đúng chuyên môn lắm. Người lập trình họ chả cần biết revit nhưng vẫn có thể viết được code cho revit nhưng ngược lại người dùng revit học lập trình lại mất nhiều thời gian


#5

Không nên nghĩ như vậy bạn , người lập trình viên không thể biết chính xác cá nhân người kĩ sư muốn gì , bạn sử dụng thành thạo phần mềm đến 1 mức nào đó sẽ có nhu cầu tăng hiệu quả công việc . Mình lấy ví dụ bạn vẽ thép ra 1 cái dầm rồi triển khai bản vẽ chi tiết cốt thép . Revit không cung cấp công cụ kéo hình dạng thép đã vẽ trong dầm để thể hiện , nếu muốn thể hiện bạn có 2 cách là vẽ 2D bắt chiếc hình dạng thanh đã hoặc cắt section và lấy đúng thanh thép cần thể hiện qua bộ filter . Cả 2 cách trên đều rất lâu và lặp lại gây khó chịu , thê nên người ta nghĩ ngay đến việc chỉ cần 1 click chuột vào thanh thép đã vẽ thì revit sẽ tự sao chép những tham số của thanh thép và gán cho 1 đối tượng 2d .Kết quả sẽ cho ra 1 detail 2d có hình dạng giống thanh thép đã vẽ và thậm chí là tự động DIM kích thước luôn,ta chỉ việc đặt vào bản vẽ như 1 view bình thường là xong . Vấn đề này NPD của thầy dự hay Sofistik đã giải quyết rồi mình chỉ lấy ví dụ thôi .


#6

Đương nhiên mình ko phủ nhận về sức mạnh của lập trình như mình nói ở trên vấn đề thời gian. Như team mình có người lập trình mình chỉ đưa ý tưởng và phương hướng họ viết trong một hai ngày là xong. Còn đặt vào tình huống của đại đa số người dùng revit để học ngược lập trình là khó. :slight_smile:


#7

Còn bạn cần api thì mình có video hơn 2gb thì phải có thể copy cho bạn tham khảo :))


#8

Theo ý của bạn thì những phầm mềm như ADS, Midas, Robot Structure,Geo Slope là do những nguoi không phải kĩ sư xây dựng viết nên ?? Những Lisp Cad là do những kĩ sư trong quá trình sử dụng Autocad phát sinh những yêu cầu cần thiết nên họ đã viết chứ không phải đợi mấy nguoi lập trình viên viết đâu ! Không phải tự nhiên trong những năm đại học người ta có môn học về VBA , C++ cho kĩ sư . Sẽ thế naò nếu người kĩ sư chỉ biết ấn mấy thanh công cụ rồi khi xảy ra lỗi thi không biết thế nào ,rồi lại đi cầu cứu mấy bạn IT à, hơn nữa đã phần các kĩ sư khi làm việc xung quanh làm gì có lập trình viên mà nhờ ? Mà nếu có không lẽ nhờ không công suốt à ? Ít nhất bạn cũng phải biết code ngừời ta đưa cho đúng hay sai ,có theo đúng ý mình không chứ ?


#9

mình thấy ý của cả 2 bạn trên đều có ý đúng, tuy nhiên cũng tùy trường hợp thế này

  • với một đơn vị văn phòng quy mô nhỏ, thì rất khó để có thể đặt hàng các lập trình viên chuyên nghiệp viết addin riêng, do đó đều phải tự mày mò tự giải quyết các vấn đề trong quá trình triển khai. Làm được thì rất tốt nhưng rất tốn công và thời gian. Tuy nhiên nếu thích thú và có chút tố chất trong việc học software thì vẫn có thể làm được phần nào. Học được rồi thì cũng thành một ưu thế riêng của mình. Đặc biệt là kỹ sư, tính toán cần hỗ trợ phần mềm rất nhiều.

  • với các công ty quy mô lớn, có thể mua addin có sẵn, đặt hàng các kỹ sư phần mềm hoặc là tuyển hẳn 1 ông như vậy chuyên phụ trách mảng IT, addin cho phần mềm. Bác này đã từng làm cho Conteccon thì phải: http://codingpearls.com/revit-addin-csharp. Hướng này mình thấy là chuyên nghiệp và hiệu quả nhất tuy nhiên hiện tại chưa thấy nhiều công ty ở VN đầu tư đc như vậy.

Còn tình hình trên thế giới thì việc viết addin rất là phổ biến, để đẩy mạnh hiệu xuất thì các công ty đều cố gắng xây dựng addin riêng cho công ty mình. Phát triển addin tốt, hữu ích cũng có thể mở ra hướng thương mại hóa (Các addin tốt giá không hề thấp)

Bàn xa xôi vậy thôi, quay trở lại vấn đề cụ thể. Mình cũng đã từng tìm hiểu api, tuy nhiên nó đòi hỏi phải học C# từ đầu. Thay vào đó nếu ta tiếp cận một món lập trình khác đó là Dynamo, sau đó là Python là ngôn ngữ cấp cao dễ sử dụng hơn C# thì có vẻ dễ dàng hơn. Điểm hay là khi dùng Dynamo bạn có thể sài lại được rất nhiều đoạn code người ta đã làm , chia sẻ rất nhiều trên diễn đàn. Khi biết python rồi thì có thể modify chúng theo ý mình , thực chất code này chính là cách đơn giản hơn để truy cập vào API của Revit. Nếu tiếp tục muốn hoàn thiện sản phẩm hơn thì lúc đó mới cần học C# để viết addin.

Dynamo đang là nền tảng rất được quan tâm ủng hộ của các kỹ sư lẫn kts, coder. Vì là môi trường có thể tương tác đc cả 3 ông vậy.


#10

Những phần mềm bạn nói là có cả một đội ngũ đi kèm từ người viết code đến người kỹ thuật. Bạn có đam mê về lập trình thì có thể sẽ viết được cho bản thân, như mình nói ở trên không phải ai dùng revit có thể lập trình được nhưng người lập trình có thể viết cho nhiều phần mềm không riêng revit.


#11

Chao ban. Minh la Son. minh cung dang hoc revit API. rat vui duoc giao luu voi ban.
Ban co the cho minh contact de trao doi them khong ban