Bentley Communities
Bentley Communities
  • Site
  • User
  • Site
  • Search
  • User
GenerativeComponents
  • Product Communities
GenerativeComponents
GenerativeComponents Community Wiki LawCurve as tower silhouette control
    • Sign In
    • +An Overview of GenerativeComponents
    • +Addin Content
    • +Bentley BIM Modeler Accreditation – Program Overview
    • +C# Sample Solution and other Add-ins
    • +GenerativeComponents Solutions
    • +Learn GenerativeComponents
    • +Reference Material
    • Support for GenerativeComponents
    • -Tutorials
      • 3D array copy surface
      • Add RFA data as BuildingContent to ABD with GC Extension
      • BSplineSurface.LoftCurve is throwing an error when trying to add get the curves from cell
      • Cell Feature
      • Create a Set of Random Points
      • Creation of Global function from Custom function
      • Creation of Parabolic curve
      • Error while creating GNT
      • Free Form Roof Example
      • GC Excel Feature
      • GenerativeComponents Essentials Course
      • Get Corner points of a Solid
      • How To Create Surface From Lines & Curves
      • How to Export GC elements
      • How to get concrete sections in the cross-section dialog in Generative Components
      • Landscape Bridge Example
      • -LawCurve
        • LawCurve as tower silhouette control
        • LawCurveEmulator as Generated Node Type (GNT)
        • Placing the LawCurveEmulator GNT
        • Replacing an old-fashioned LawCurve with LawCurveEmulator GNT
      • List Of Points With A Loop Example
      • Mesh feature 3d print
      • Modular Multiplication On Circle
      • +Operation Node
      • +Optimization with the Optimizer node type
      • Palm Tree Modeler
      • Point By Function Example
      • Points On Curve
      • Prime Number Pattern
      • Selection of Points
      • Selection of points based on Query Expressions
      • Selection of points based on range of indices
      • Set a New Property Value to a Set of Selected Nodes
      • Simple Bridge Example
      • Simple Equations To Describe Form Example
      • Simple Free Form Roof Example
      • Sin Tower
      • Skeleton
      • Sunflower Seed Pattern Modelling
      • Surface Division Basic Steps
      • Surface from Rails and Swept Sections
      • The use of Packager in Generative Components
      • +Tools and Techniques
      • Ulam Spiral From A Rectangular Spiral
      • Video Tutorials
      • Video Tutorials - Short Techniques
      • Working with Parametric cells
    • +User Projects
    • +Visualized Parametric Experimentations
    • +zed_Older Content

     
     Questions about this article, topic, or product? Click here. 

    LawCurve as tower silhouette control

    Please use the attached DGN or GCT files as reference for this short tutorial.  These are for GenerativeComponents V8i SELECTseries 6 Update 1 (v.08.11.09.436). 

    renovatedTowerByReplication.dgn  https://communities.bentley.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-28/renovatedTowerByReplication.gct

    As point of departure we used a script "TowerByReplication" (transactions 1 through 7). 

    The Graph reveals that half the nodes are Slider nodes controlling what the result looks like.  The basic circular arrangement of points (point01) is copied as point02 based on the replicated coordinateSystem01, which is a cylindrical coordinate system.  Even though the copied point rings are rotated based on the overall "rotation", they are still very much straight copies of the first point ring, just moved up vertically (and rotated); therefore, this parametric model generates a cylindrical point grid.  Polygon.ByPointGrid polygon01 uses that point grid to form the envelope of a cylindrical tower:

    While this may be a sufficiently interesting result in some urban context, it is relatively easy to construct an alternative solution with a more dynamic silhouette.

    In transaction 8 a LawCurve is added.  As Independent variable input, an Expression is used "Series(0, numFloors, 1)", which means that the independent variable counts up the floors from zero to the total number of floors in increments of one. 

    In transaction 9 we place a CoordinateSystem.ByUniversalTransform, coordinateSystem02, parallel to the coordinateSystem01 of the cylindrical tower, using for ZTranslation the same expression "Series(0, numFloors * floorHeight, floorHeight)" used in coordinateSystem01.  For ZRotation we use the same expression used in the Theta input of coordinateSystem01, "SeriesByCount(0, rotation, numFloors + 1)".  For XScale and YScale we use the Dependent variable output generated by the law curve.  Depending on the manipulation of the curve, the dependent variable, which is a list of values with one entry for each floor as provided by the independent variable input, changes its values, thus changing the scale of several floors and, consequently, the shape of the tower which we still need to construct.

    In transaction 10 we add point03 analogously to point02 for the cylindrical tower.  However, for point03 we use coordinateSystem02, and it becomes immediately obvious that the alternative tower will be a bit more dynamic than the cylindrical tower. 

    This becomes more obvious when adding polygon02 in transaction 11:

    The remaining transactions hide the envelope of the cylindrical tower, add polygon03 as "floor plates" and change the law curve to change the alternative towers silhouette. 

    • Use Case
    • Tutorial
    • lawCurve
    • GenerativeComponents
    • Law Curve
    • Share
    • History
    • More
    • Cancel
    • Mueller Created by Mueller
    • When: Thu, Sep 22 2016 11:57 AM
    • Mueller Last revision by Mueller
    • When: Fri, Sep 23 2016 3:59 PM
    • Revisions: 4
    • Comments: 0
    Recommended
    Related
    Communities
    • Home
    • Getting Started
    • Community Central
    • Products
    • Support
    • Secure File Upload
    • Feedback
    Support and Services
    • Home
    • Product Support
    • Downloads
    • Subscription Services Portal
    Training and Learning
    • Home
    • About Bentley Institute
    • My Learning History
    • Reference Books
    Social Media
    •    LinkedIn
    •    Facebook
    •    Twitter
    •    YouTube
    •    RSS Feed
    •    Email

    © 2023 Bentley Systems, Incorporated  |  Contact Us  |  Privacy |  Terms of Use  |  Cookies