Home / MicroStation / Page 8

Voronoi Diagram in GenerativeComponents

Voronoi Diagram or Voronoi tessellation is abundantly found in nature. There are also some examplesĀ inĀ architecture where Voronoi is used. It’s not only the aesthetics that makesĀ VoronoiĀ diagramĀ specialĀ but it has some unique properties that makes it very useful in solving real life problems.Ā Ā  Image:Ā Recreating Voronoi PatternĀ and its close resemblance with GiraffeĀ PatternĀ (image source:Ā https://quantdare.com/k-means-algorithm/giraffe-59009_1920/)Ā  In this section, we will see how we can create Voronoi Diagram in GCĀ and alsoĀ how we can use its properties in solving some practical problems.Ā Ā  First letā€™s understand what is Voronoi diagram.Ā Ā  Now, imagine there are few points in a plane, we call it the Voronoi Sites. Thus, Voronoi diagram divides the plane in a set of regions based on the Voronoi Sites.Ā  These regions are called VoronoiĀ Region orĀ Cells. Every cell is associated with its corresponding Voronoi Sites.Ā  Any new points lying inside any Voronoi Cell will be closest to its corresponding Voronoi Site.Ā  To create the Voronoi we will use the Generated-Node-Types(GNT) Voronoi. You can learn more about GNT from thisĀ wikiĀ .Ā  The node required some points as input. We can create some random points as shown in thisĀ wiki. These points will act as the Voronoi Sites.Ā  Properties of Voronoi Diagram and Its ApplicationsĀ  Now, imagineĀ the VoronoiĀ Sites as number of

Read More >

Using L-Systems in GenerativeComponents

L-Systems or Lindenmayer Systems is a mathematical formalism developed by biologist Aristid Lindenmayer in 1968 to mimic plant growth. Later, its application was further extended in computer graphics for creating self-similar structures and generating plant models.Ā  In this post, we will see how we can use L-Systems inĀ GenerativeComponentsĀ to create different types of geometries.Ā  An illustration of a geometry created using L-Systems in GC How do L-Systems work? In L-System, the key concept revolves around how to rewrite an initial element in each successiveĀ stepĀ based on certain rules in order to get the final structure.Ā The most basic type is called DOLĀ i.e.,Ā Deterministic, Context free L-System.Ā Let’s understand with the following example To begin with, let us consider ‘B’ to be the initiator.Ā This initiator is called axiom.Ā Then, the rule of rewriting for the successive steps will be,Ā B->A, A->BAĀ Ā  Ā  Rewriting in each generation as per the rule ‘DOL’Ā in GC When there is any term for which there are no rules, it will pass to the next generations. For the purpose of these DOL we have a function called ‘DOL’ in GC.Ā The input for Axiom is string type,Ā e.g., ‘A’ or ‘FFA’Ā  The input for rule is table type,Ā e.g.,Ā we will write the above rule in the following

Read More >

Point in Polygon Test in GenerativeComponents

The Point in Polygon test helps in determining if a given point lies inside a given polygon. For the sake of simplicity, we assume the polygon to be 2D planer. Final Result https://youtu.be/AoexUe4wbU4 This video demonstrates the point in polygon test results Solution There are many algorithms to achieve this. However, here, we will use Ray-Casting algorithm. We chose this algorithm due to its simplicity. For example, first, we project a ray in a fixed direction (here, positive X-direction).Ā  Then we determine the test result based on the number of times the ray intersect with the given polygon: When number of intersection is 0 The point is outside the polygon When number of intersection is even The point is outside the polygon When number of intersection is odd The point is inside the polygon Implementation First, we create a custom global function in GCScript.Ā  Then, for the ray, we use a line of a large length. This line is along the positive X-Direction. And finally, to test the intersection of this line and the given polygon, we use the AtCurveCurveIntersection technique of point node. Code Ā  bool PointInPolygon(Point TestingPoint, ICurve TestingPolygon, CoordinateSystem CS) //Check if a Point is inside a

Read More >

Success Story | City of Grenoble’s Use of a 3D Model to Support Urban Planning

City of Grenoble Grenoble, Isere, France Project With daily management of 18,000 buildings encompassing 1,850 hectares, the city of Grenoble, France, aims to explore future regeneration programs in its urban redevelopment sectors. To help maintain and optimize internal and external developments, the Urban Planning Department (UPD) was tasked with producing a 3D model of the city that could be shared with architects, urban planners, and public companies. The UPD needed a flexible, interoperable modeling and information-sharing solution to create and implement the 3D representation quickly and cost effectively, and allow them to update and maintain it autonomously. Solution Grenobleā€™s UPD employed MicroStation to reuse and integrate available information to quickly build the 3D model. Using MicroStation allowed the department to take ownership of the model and update it on a daily basis, and simplified the maintenance process without additional investments or resources for an efficient and cost-effective solution. The interoperability of MicroStation enhanced internal and external collaboration by centralizing and sharing design files in DGN format, and models in 3D PDF files, enabling users to visualize the cityā€™s urban development projects in context with one another and the entire community. Image: Courtesy of City of Grenoble Outcome Using MicroStation to

Read More >

Subscribe to The Bentley Brief

Stay ahead of the curve with the latest infrastructure news and insights.