Skip to content

Based on the design logic, UrbanXTools could generate urban design automatically in a very short period of time, and evaluated from the view of sustainability, with the help of algorithms. While gradually bridging the gap between urban design and sustainable systems, the toolbox could improve the efficiency of design.

License

Notifications You must be signed in to change notification settings

CAUPDxUrbanXLab/UrbanXTools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UrbanXTools

Language

中文 [Engilish]

Content

  • Add curve boundary in Exposure Rate 3D
  • Improve the efficiency of network analysis 3D

Content

Introduction

image

1. Main Functions

  • Autogeneration of spatial models: by integrating urban planning logics and computer algorithms, UrbanXTools can rapidly generate rudimentary spatial models for urban design projects. The spatial model will be complied with superior plans and regulations.
  • Assessment of urban design projects: UrbanXTools can provide instant assessment of urban design projects based on multi-disciplinary features and sustainable development goals.
  • Construction of a feedback loop: by using parametric design methods, we aim to construct a mechanism for regulatory plans and urban design projects to get instant assessments, feedbacks and modifications. With this mechanism, the efficiency and quality of urban design could be enhanced

2. Objectives

  • High quality
  • Sustainable urban development

3. Developers

  • Tao Yang, Weizhen Luo, Xuhui Lin, Chengru Deng, Yufei Dong

4. Translating Contributor

  • Yihan Zhang

5. Notifications

  • Rhino version 6.9 and above are recommended.
  • Model unit MUST BE METER, and models cannot be generated if your model unit is millimeter (mm)
  • Please put your geometric objects, such as roads and land parcels, near the origin of coordinates (0, 0, 0). Confined by computation accuracy of geometric objects in RhinoCommon, the geometric Boolean operation might go wrong if you put your model too faraway from the origin point.
  • If you encounter any other problems or have any demands and suggestions, please let us know via Github Issues. We'll try our best to help.

Installation

1. Enter Releases, choose a compatible version, download the zip file and extract (please choose the latest version)

  • Click to enter Releases

image

  • Within the Releases page, please download:
    • Full version: UrbanXTools_v3.0.1 is recommended

image

  • Extract the zip file: UrbanXTools_v3.0.1

image

2. Open Grasshopper in Rhino, enter Components Folder

  • Open Rhino and then Grasshopper, open File --> Special Folders --> Components Folder

image

  • Copy and paste the whole UrbanXTools_v3.0.1 folder here
  • If you already have UrbanXTools_v.1.0.0 or UrbanXTools_v.2.0.0 in this folder, please delete them in advance.

image

3. Check your UrbanXTools_v3.0.1 folder and then restart Rhino

  • Make sure every file listed below are also in your UrbanXTools_v3.0.1 folder

image

4. Finish

  • If you have successfully installed UrbanXTools, you'll get this in your Grasshopper

image

Samples

1. Network Structure

image

Sample: NetworkAnalysis

2. Aided Regulatory Planning

image

Sample: AidedRegulatoryPlanning

3. Urban Design Autogeneration

  • Residential buildings

image

  • Commercial buildings + Warehouses + Factories

image

Sample: UrbanDesign_SingleSite

Sample: UrbanDesign_MultiSitesSites

4. Coverage Analysis of Public Facilities

image

Sample: FacilityLocation

5. Sustainability Analysis of Urban Design Projects

image

Sample: Resources Demand

6. Exposure Rate Analysis of Urban Design Projects (2D)

image

Sample: ExposureRates2D

7. Exposure Rate Analysis of Urban Design Projects (3D)

image

Sample: ExposureRates3D

8. Exposure Rate Analysis of Urban Design Projects (3D_Mesh)

image

Sample: ExposureRates3D_mesh

9. Visual Graph Network Analysis of Urban Design Projects

image

Sample: ExposureRates3D_visualGraphNetwork

10. Extract CentroidLine of Road Network

image

案例: CentroidLineExtraction

Tools

1. Network Structure

Network_RoadsSplitter

  • Purpose
    • Clean and split the curves to handle degeneracies, such as overlaps, identical shapes, invalid curves, etc.
  • Input
    • Original curves
  • Output
    • Cleaned and split curves
  • Sample

image

NetworkStructure_Computing3D

  • Purpose:
    • This command computes network properties, including angular distance and metric distance in space syntax. You may choose different radius for calculation.
    • Betweenness: Within a certain distance, this command finds the shortest paths between any pair of points and counts the number of times each road segment is passed.
    • Closeness: Within a certain distance, compute the average distance from this point to a specified destination point along the shortest paths.
  • Input:
    • Road network of 2D or 3D geometries
    • Radius
    • Merging or not
  • Output:
    • Metric choice
    • Metric integration
    • Metric mean depth
    • Metric total depth
    • Angular choice
    • Angular integration
    • Angular mean depth
    • Angular total depth
    • Normalized angular choice(NACH)
    • Normalized angular integration(NAIN)
    • Cleaned road-segments
  • Sample:

image

NetworkStructure_SiteAccessibility

  • Purpose:
    • This command computes the accessibility scores of sites
  • Input:
    • Cleaned road segments
    • Accessibility scores of each road segment
    • Curves of site boundaries
  • Output:
    • Polygons generated by site boundaries
    • Accessibility scores of sites, with the same sequence as polygons above
  • Sample:

image

NetworkStructure_RoadDensity

  • Purpose:
    • Compute road density within the given boundary
  • Input:
    • Roads to be computed
    • Boundary
  • Output:
    • Road Density (numeric data)
    • Road Density (unit: km/km²)
    • Road segments "cookie-cut" (intersected) by the given boundary
  • Sample:

image

  1. Regulatory Planning RegulatoryPlanning_GeneratingSites
  • Purpose:
    • Automatically generate sites polygon based on the input road network
  • Input:
    • A list of primary roads
    • A list of secondary roads (optional)
    • A list of tertiary roads (optional)
    • A list of branch roads (optional)
    • Width of roads in the order from primary roads to branch roads
    • Radius for rounding the site corners
    • The boundary within which sites will be generated
  • Output:
    • All generated site polygons
  • Sample:

image

RegulatoryPlanning_ClusteringBlocks

  • Purpose:
    • Clustering a set of sites based on the shortest-path distance matrix by using Hierarchical Agglomerative Clustering (HAC) algorithm
  • Input:
    • Roads
    • Sites
    • Diameters for each clustering levels
  • Output:
    • Links for visualizing the hierarchical relationships among the clusters
    • Id for each site in the tree structure to represent the hierarchy of all clusters
    • An object containing all the information of the clustering results to be used in the RegulatoryPlanning_LanduseAllocation component
  • Sample:

image

RegulatoryPlanning_ClusteringPoints

  • Purpose:
    • Clustering a set of sites based on the euclidean distance matrix among all centroids of the sites by using Hierarchical Agglomerative Clustering (HAC) algorithm
  • Input:
    • Centroids of each site
    • Diameters for each clustering levels
  • Output:
    • Links for visualizing the hierarchical relationships among the clusters
    • Id for each site in the tree structure to represent the hierarchy of all clusters
    • An object containing all the information of the clustering results to be used in the RegulatoryPlanning_LanduseAllocation component
  • Sample:

image

RegulatoryPlanning_LanduseAllocation

  • Purpose:
    • Automatically allocating landuse to each of the sites
  • Input:
    • Sites
    • Accessibility scores with different radius for each site (Recommended: 3 branches)
    • The object containing all the information of clustering results, which is obtained from the RegulatoryPlanning_ClusteringBlocks component
    • Landuse structure, with the order representing their priority, and their values indicating their proportion of area among all the sites respectively (Format: R:0.2)
  • Output:
    • Sites, wihch may be split after the landuse allocation to fulfill the requirement of landuse structure
    • Allocated landuse for each site, with the same sequence as the sites above
    • Actual landuse structure
    • The object containing all the results of landuse allocation, which is useful for the RegulatoryPlanning_FarAllocation component
  • Sample:

image

RegulatoryPlanning_FarAllocation

  • Purpose:
    • Automatically allocating floor area ratio (FAR) to each of the sites
  • Input:
    • The object containing all the results of landuse allocation, obtained from the RegulatoryPlanning_LanduseAllocation component
    • Total building area for the overall urban design
    • Building area structure, represented by the percentage of building area of each category of landuse
  • Output:
    • Allocated FAR for each site
  • Sample:

image

  1. Urban Design UrbanDesign_SiteParameter
  • Purpose:
    • This command autogenerates site parameters based on roads, accessibility scores and site info.
  • Input:
    • Cleaned roads
    • Accessibility scores for each road segment
    • Curves of site boundaries
  • Output:
    • Initial parameters for all the sites
  • Sample:

image

UrbanDesign_SiteParameterExtra

  • Purpose:
    • This command allows you to adjust site parameters, such as FAR and building density
  • Input:
    • Initial parameters of all sites, obtained from the UrbanDesign_SiteParameter component
    • Landuse Type (R:0, C:1, GIC:2, M:3, W:4)
    • FAR
    • Density
    • Mixed Ratio
    • Building Styles
      • For residential buildings: 0-Rows, 1-Dots
      • For non-residential buildings: 0-Dots, 1-Groups, 2-Mixed
    • Orientation of buildings (Unit: Radians)
  • Output:
    • Adjusted parameters for each site
  • Sample:

image

UrbanDesign_SiteGeneratePlans

  • Purpose:
    • This command autogenerates building entities.
  • Input:
    • Adjusted parameters for all sites, obtained from UrbanDesign_SiteParameterExtra component
    • City ID
  • Output:
    • The object containing results of the design, which is useful for the Sustainability Analysis module
    • Curves of original site boundaries (not split)
    • FARs
    • Building densities
    • Subsite boundaries
    • Setback boundaries for each site
    • Outline curves of the floor layer of each building
    • Outline curves of each building roof
    • Numbers of levels of each building
    • Brep geometries of each building
    • Functions of each brep of each building, corresponding to building breps
  • Sample:

image

  1. Facility Analysis FacilityAnalysis_ConnectToNetwork
  • Purpose:
    • Connect all sites to their nearest road segments
  • Input:
    • Cleaned road network
    • Sites
  • Output:
    • Generic parameters, which is useful for the FacilityAnalysis_CoverageArea component
    • New road segments after computing the connection
  • Sample:

image

FacilityAnalysis_CoverageArea

  • Purpose:
    • Compute facilities' coverage area by shortest-path distances in the road network based on a given radius
  • Input:
    • Generic parameters, obtained from the FacilityAnalysis_ConnectToNetwork component
    • Sites where public facilities locate
    • Service radius of the facilities, which is defined as shortest paths within the road network
  • Output:
    • Sites within facilities' coverage area
    • Centroids of all covered sites
  • Sample:

image

  1. Sustainability Analysis SustainabilityAnalysis_Energy
  • Purpose:
    • Compute the energy consumption for each building in the autogenerated plan
  • Input:
    • Generic parameters containing the original results of the design, obtained from UrbanDesign_SiteGeneratePlans component
  • Output:
    • Energy consumption of each building
  • Sample:

image

SustainabilityAnalysis_EnergyCarbonEmissions

  • Purpose:
    • Compute the carbon emissions for generating the given amount of energy
  • Input:
    • Energy consumption (Unit: kWh/year)
  • Output:
    • Carbon emissions for generating the given amount of energy (Unit: tCO2/year)
  • Sample:

image

SustainabilityAnalysis_Water

  • Purpose:
    • Compute the water consumption for each building in the autogenerated plan
  • Input:
    • Generic parameters containing the original results of the design, obtained from UrbanDesign_SiteGeneratePlans component
  • Output:
    • Water consumption of each building
  • Sample:

image

SustainabilityAnalysis_Waste

  • Purpose:
    • Compute waste production for each building in the autogenerated plan
  • Input:
    • Generic parameters containing the original results of the design, obtained from UrbanDesign_SiteGeneratePlans component
  • Output:
    • Waste production of each building
  • Sample:

image

SustainabilityAnalysis_WasteCarbonEmissions

  • Purpose:
    • Compute the carbon emissions for waste treatment
  • Input:
    • Domestic waste generation which requires further treatment (Unit: tons/year)
    • Method of waste treatment (0-"waste_landfill", 1-"waste_incineration", 2-"waste-composting")
  • Output:
    • Carbon emissions for waste treatment (Unit: tons CO2/year)
  • Sample:

image

SustainabilityAnalysis_EnergyCustom

  • Purpose:
    • Compute energy consumption of buildings based on the custom input
  • Input:
    • Building breps
    • Building functions of each brep
  • Output:
    • Energy consumption for each building
  • Sample:

image

SustainabilityAnalysis_WaterCustom

  • Purpose:
    • Compute water consumption of buildings based on the custom input
  • Input:
    • Building breps
    • Building functions of each brep
  • Output:
    • Water consumption for each building
  • Sample:

image

SustainabilityAnalysis_WasteCustom

  • Purpose:
    • Compute waste production of buildings based on the custom input
  • Input:
    • Building breps
    • Building functions of each brep
  • Output:
    • Waste production for each building
  • Sample:

image

SustainabilityAnalysis_Population

  • Purpose:
    • Estimated population of each residential building
  • Input:
    • Building breps
  • Output:
    • Estimated population of each building
  • Sample:

image

  1. Visibility Analysis VisibilityAnalysis_ExposureRate2D
  • Purpose:
    • By analyzing its relationship to road intersections, this command returns 2D exposure rate for ground floor commerce, which could be a quantified spatial feature considered in commercial site selection process.
  • Input:
    • Building breps
    • Preset view points
    • Normalize or not
    • Radius of viewshed
    • Subdivision (higher value will lead to higher accuracy but also longer runtime)
  • Output:
    • Outlines of building breps
    • Exposure rate for brep outlines
  • Sample:

image

VisibilityAnalysis_GenerateMeshBuilding

  • Purpose:
    • Convert buildings from Rhino Brep to DMesh according to subdivision. This command aims to improve computational efficiency.
  • Input:
    • Rhino Brep of buildings
    • Subdivision (default as -1) (higher value will lead to higher accuracy but also longer runtime)
  • Output:
    • GenerateMesh Class
  • Sample:

image

VisibilityAnalysis_GenerateMesh

  • Purpose:
    • Convert geometry from Rhino Mesh to DMesh. This command aims to improve computational efficiency.
  • Input:
    • Mesh
  • Output:
    • GenerateMesh Class
  • Sample:

image

VisibilityAnalysis_ExposureRate3DBuildings

  • Purpose:
    • By analyzing its relationship to view points, this command returns 3D exposure rate for buildings, which could be a quantified spatial feature considered in commercial site selection process.
  • Input:
    • Preset view points
    • GenerateMesh Class
    • View range in each point as radius (default as 300)
  • Output:
    • Colored side mesh of each building
    • Uncolored top mesh and bottom mesh
    • Count of each mesh got intersected
    • Exposure rates for each view point
  • Sample:

image

VisibilityAnalysis_ExposureRate3DMesh

  • Purpose:
    • By analyzing its relationship to view points, this command returns 3D exposure rate for mesh entities which could be a quantified spatial feature considered in commercial site selection process.
  • Input:
    • Preset view points
    • GenerateMesh Class
    • View range in each point as radius (default as 300)
  • Output:
    • Colored Mesh
    • Count of each mesh got intersected
    • Exposure rates for each view point
  • Sample:

image

VisibilityAnalysis_VisualCalc

  • Purpose:
    • Compute the visibility of road network by interpolating points in 3D context.
  • Input:
    • Preset road network
    • GenerateMesh Class
    • Subdivision of roads to be divided (Unit: meter, default: 500m)
    • View range in each point as radius (default as 300)
    • Output Mesh or not
  • Output:
    • Cleaned roads, which is useful in the VisibilityAnalysis_VisualSyntaxComputing component
    • Viewpoints on roads
    • Visibility properties of each road
    • Colored mesh (depending on whether you choose to output mesh)
  • Sample: image

VisibilityAnalysis_VisualSyntaxComputing

  • Purpose:
    • Compute visual graph network analysis by input road network and corresponding scores in 3D context, which could be used to find out the most informative route. Thus, this application is called 3D Informative Visualization
  • Input:
    • Cleaned roads, obtained from the VisibilityAnalysis_VisualCalc component
    • Corresponding scores of each road
    • Radius (default as -1, which leads to global calculation)
  • Output:
    • Visual total depth
    • Visual mean depth
    • Visual integration
    • Visual choice
    • Normalized visual integration
    • Normalized visual choice
  • Sample: image

6. WaterPipeNetwork_Calculation(Coming Soon)

WaterPipeNetwork Parameters

Water_InpFileToGeometry

  • Purpose
  • Input
  • Output
  • Sample

Water_CalculateSiteDemand

  • Purpose
  • Input
  • Output
  • Sample

Water_NetworkOptimization

  • Purpose
  • Input
  • Output
  • Sample

License

GNU General Public License v.3

Copyright (C) 2020 Tao Yang, Weizhen Luo, Xuhui Lin, Chengru Deng

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

About

Based on the design logic, UrbanXTools could generate urban design automatically in a very short period of time, and evaluated from the view of sustainability, with the help of algorithms. While gradually bridging the gap between urban design and sustainable systems, the toolbox could improve the efficiency of design.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published