1. IFC là gì
IFC(Industry Foundation Classes) là một chuẩn mô hình dữ liệu quốc tế dùng để trao đổi dữ liệu BIM (Building information modeling - Mô hình thông tin xây dựng) được đưa ra bởi buildingSMART.
IFC được hơn 130 ứng dụng phần mềm sử dụng trong việc hỗ trợ cho ngành công nghiệp AEC (Kiến trúc, Cơ khí & Xây dựng).
buildingSMART có một qui trình cấp giấy chứng nhận phần mềm cho các nhà nhà phát triển phần mềm cho IFC để đảm bảo độ tin cậy và chất lượng của các phần mềm hỗ trợ IFC.
Tham khảo: http://buildingsmart-tech.org/
Các tài liệu mô tả chuẩn IFC2x3: http://buildingsmart-tech.org/certification/ifc-certification-2.0/ifc2x3-cv-v2.0-certification/ifc2x3-cv-v2.0-certification-summary
2. Open IFC Tools
Website: http://www.openifctools.com
Open IFC tools là một tập các công cụ mã nguồn mở dùng để phát triển IFC, bao gồm: Open IFC Java Toolbox, IFC loader for Java-3d, Boolean modeller, và Schedule assistent, được viết bằng ngôn ngữ Java.
Tuy nhiên cho đến thời điểm hiện tại, nó chỉ mới xuất bản gói Open IFC Java Toolbox, các gói còn lại đang trong trạng thái chờ. Tuy nhiên với Open IFC Java Toolbox chúng ta đã có thể đọc và ghi các file IFC. Với các file IFC được tạo ra, chúng ta có thể xem bằng công cụ Demo Viewer do Open IFC Java Toolbox cung cấp.
Không có bất cứ một ràng buộc hay qui tắc nào được áp dụng cho quá trình xây dựng file IFC bằng Open IFC Java Toolbox, do đó rất dễ xảy ra lỗi cho file IFC do chính chúng ta tạo ra nếu chúng ta không nắm chắc các luật và qui tắc của IFC cũng như sự hiểu biết về ngành kiến trúc hay xây dựng.
Trong phần Download của Open IFC Java Toolbox, có một tài liệu hướng dẫn khá là sơ sài về cách đọc và ghi file IFC, tuy nhiên chúng ta có thể tham khảo thêm phần tài liệu đặc tả chuẩn IFC ở phần 1, và một ví dụ nho nhỏ về IFC tại đây: http://buildingsmart-tech.org/implementation/get-started/hello-world/example-1/
Tuy nhiên, để tạo ra file IFC chúng ta phải viết khá nhiều code, với ví dụ trên mặc dù chỉ mới hoàn thành hơn phân nửa nhưng tôi đã phải viết hơn 1000 dòng lệnh (tất nhiên là chưa tối ưu vì ở đây mục đích chỉ để kiểm tra khả năng tạo file IFC của Open IFC Java Toolbox).
Nếu hoàn thành ví dụ trên, kết quả xem được bằng Demo viewer sẽ như sau:
3. Một số công cụ khác
Có một số thư viện IFC khác được viết bằng C++ như: http://www.ifcbrowser.com/, http://code.google.com/p/ifcgears/
Hay BIM surfer WebGL viewer (http://bimsurfer.org/), một công cụ mã nguồn mở được viết bằng javascript và HTML hỗ trợ phần thể hiện các file IFC dựa trên BIM Server (Bimserver.org)
"Hy vọng các bạn học kiến trúc biết lập trình hoặc học lập trình mê kiến trúc sẽ thích!"

22 thg 2, 2012
Giới thiệu Vaadin framework
Vaadin là một Java web framework hỗ trợ xây dựng giao diện kiểu kéo thả, với một tập đa dạng các đối tượng được hỗ trợ cho việc thiết kế giao diện như Buttons, Tables, Trees và Layouts.
Vaadin được phát triển dưới dạng phần mềm mã nguồn mở theo thỏa thuận Apache Software License 2.0 (http://vaadin.com/license), do đó có thể sử dụng nó cho các dự án miễn phí hoặc thương mại.
Vaadin hỗ trợ lập trình bằng ngôn ngữ Java cả ở Server side và Client side, trong đó phần Client side được phát triển dựa trên nền tảng Google Web Toolkit (GWT), điều này có nghĩa là phần tương tác ở trình duyệt có thể được viết bằng ngôn ngữ Java và có thể không cần quan tâm đến HTML, Javascript, CSS (Tuy nhiên vẫn có một số hạn chế khi viết code Java cho phần Client side, Những hạn chế này sẽ được đề cập ở phần sau). Do đó chúng ta có thể phát triển dự án hoàn toàn theo kiểu hướng đối tượng.
Vaadin cung cấp công cụ tùy biến giao diện (themes & styles) và xuất ra file css kết quả để sử dụng trong các dự án riên biệt. Ngoài ra nó còn hỗ trợ người lập trình có thể tùy biến giao diện ngay trong quá trình lập trình để tạo ra các hiệu ứng giao diện trong quá trình thực thi (on running time).
Ngoài ra nó còn một kho Add-ons có thể sử dụng trong quá trình phát triển dự án, hơn nữa bạn cũng có thể tự phát triển các add-on của riêng mình cho Vaadin.
Bạn có thể phát triển các dự án dựa trên Vaadin bằng bất kỳ công cụ phát triển java nào có tích hợp Ant. hoặc bằng Maven. Tuy nhiên để có được sự hỗ trợ trong quá trình xây dựng giao diện thì Eclipse và NetBean là sự lựa chọn tốt.
Vaadin có thể triển khai (Deploy) ở dưới dạng servlet hoặc portlet và có thể chạy trên hầu hết các Java web server như Tomcat, WebSphere, JBoss, Glassfish,...
Hạn chế khi viết code Java cho Client side: Trên thực tế, khi triển khai thì Vaadin sẽ chuyển đổi toàn bộ code Java viết cho phần Client side sang Javascript (Điều này tương tự với GWT, hoặc chính là dựa trên GWT):
- Các kiểu dữ liệu cơ bản (boolean, byte, char, short, int, long, float, and double), Object, String, arrays, các classes tự định nghĩa,... có thể sử dụng tuy nhiên có một hạn chế:
- Một số hàm và kiểu dữ liệu dùng trên Java nhưng không được hỗ trợ trong Javascript (ví dụ như kiểu HashMap, một số hàm xử lý chuỗi,...).
- Nên có hiểu biết nhất định về javascript khi viết code Java cho Client side :-)
Tham khảo từ trang chủ của Vaadin: http://vaadin.com
Tài liệu hướng dẫn của Vaadin: https://vaadin.com/book/-/page/preface.html
Hoặc tải bản PDF về để từ từ ngâm cứu: https://vaadin.com/download/book-of-vaadin/current/pdf/book-of-vaadin.pdf
Vaadin được phát triển dưới dạng phần mềm mã nguồn mở theo thỏa thuận Apache Software License 2.0 (http://vaadin.com/license), do đó có thể sử dụng nó cho các dự án miễn phí hoặc thương mại.
Vaadin hỗ trợ lập trình bằng ngôn ngữ Java cả ở Server side và Client side, trong đó phần Client side được phát triển dựa trên nền tảng Google Web Toolkit (GWT), điều này có nghĩa là phần tương tác ở trình duyệt có thể được viết bằng ngôn ngữ Java và có thể không cần quan tâm đến HTML, Javascript, CSS (Tuy nhiên vẫn có một số hạn chế khi viết code Java cho phần Client side, Những hạn chế này sẽ được đề cập ở phần sau). Do đó chúng ta có thể phát triển dự án hoàn toàn theo kiểu hướng đối tượng.
![]() |
Kiến trúc của Vaadin |
Vaadin cung cấp công cụ tùy biến giao diện (themes & styles) và xuất ra file css kết quả để sử dụng trong các dự án riên biệt. Ngoài ra nó còn hỗ trợ người lập trình có thể tùy biến giao diện ngay trong quá trình lập trình để tạo ra các hiệu ứng giao diện trong quá trình thực thi (on running time).
Ngoài ra nó còn một kho Add-ons có thể sử dụng trong quá trình phát triển dự án, hơn nữa bạn cũng có thể tự phát triển các add-on của riêng mình cho Vaadin.
Bạn có thể phát triển các dự án dựa trên Vaadin bằng bất kỳ công cụ phát triển java nào có tích hợp Ant. hoặc bằng Maven. Tuy nhiên để có được sự hỗ trợ trong quá trình xây dựng giao diện thì Eclipse và NetBean là sự lựa chọn tốt.
Vaadin có thể triển khai (Deploy) ở dưới dạng servlet hoặc portlet và có thể chạy trên hầu hết các Java web server như Tomcat, WebSphere, JBoss, Glassfish,...
Video hướng dẫn từng bước phát triển một ứng dụng trên Vaadin
- Các kiểu dữ liệu cơ bản (boolean, byte, char, short, int, long, float, and double), Object, String, arrays, các classes tự định nghĩa,... có thể sử dụng tuy nhiên có một hạn chế:
- Chỉ có kiểu float được hỗ trợ giá trị 64bit, các kiểu số còn lại chỉ hỗ trợ giá trị 32bit.
- Trong quá trình tính toán, có thể sẽ không có giá trị chính xác như khi tính toán bằng Java trên Server side.
- Do đó khuyến cáo nên hạn chế việc tính toán ở phía Client side, nhất là đối với các giá trị cần giá trị chính xác cao.
- Một số hàm và kiểu dữ liệu dùng trên Java nhưng không được hỗ trợ trong Javascript (ví dụ như kiểu HashMap, một số hàm xử lý chuỗi,...).
- Nên có hiểu biết nhất định về javascript khi viết code Java cho Client side :-)
---*---
Tham khảo từ trang chủ của Vaadin: http://vaadin.com
Tài liệu hướng dẫn của Vaadin: https://vaadin.com/book/-/page/preface.html
Hoặc tải bản PDF về để từ từ ngâm cứu: https://vaadin.com/download/book-of-vaadin/current/pdf/book-of-vaadin.pdf
Đăng ký:
Bài đăng (Atom)