Kinetic Elements of Building in APS

maxresdefault (3).jpg

In the evolving world of architectural design and construction technology, the ability to integrate dynamic, interactive elements into building models has become increasingly essential. Overall, APS uses JavaScript-based WebGL technology to enable the display of models in all popular web browsers, supporting the research and development of parametric relationships between building objects in web-based models.

 

Why do we need Kinetic elements in APS?

 

We need the integration and manipulation of movable or dynamic elements within digital building models, to allow for enhanced design, simulation, and interaction capabilities. We conduct Retractable Roofs, Adjustable Window Shades or Panels, Transformable Wall Systems, Dynamic and Smart Facade, Kinetic Architectural Features, and so on in building construction.  By using APS, developers can create custom applications that visualize, analyze, and optimize the functionality of these elements, facilitating innovative architectural solutions and efficient building operations.

 

1. Understanding Object Transformation

 

Direct incorporation of a model component as a child to a Three.js object isn't straightforward, but transformation data from Three.js can still be applied within APS. For specific component manipulation, three identifiers are crucial: node ID, instance Tree, and fragment, which help reference the component's unique ID, its structural container, and its geometry details respectively.

 

Picture1.jpg

 


Picture2.jpg

 

2. Creating a Kinetic Model with Three.js

Pivot Points and Helpers are essential for the kinetic model, where pivot points define rotation or transformation behaviors, and helpers assist in applying these transformations to components.

 

Picture3.jpg

 

Picture4.jpg

 

3. Component Transformation, Matrix

 

Each component axis requires a pivot for transformations. Helpers linked to these pivots adjust component positions based on specific rotation points, ensuring accurate movement. A transformation matrix represents an object's movement, rotation, or scaling. The getFragmentWorldMatrixByNodeId method fetches this matrix for a component, allowing developers to ascertain an object's final 3D space position.

 

Picture5.jpg

 

 

Find the GitHub repo at: https://github.com/Mojgan-arch/Kinetic_Model_APS_Autodesk_Forge