Network: Difference between revisions

From Tygron Preview Support Wiki
Jump to navigation Jump to search
No edit summary
 
(63 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{learned|what networks are|how networks relate to the Tygron Engine|how networks are structured|how to create networks}}
[[File:Api_current_situation_network.png|thumb|right|400px|Network with [[Net Node]]s connected by [[Net Line]]s, [[Net Load]]s clustered by [[Net Cluster]]s and configured by [[Net Setting]]s]]


{{stub}}
Networks in the platform are composed of multiple constituent components:
* [[Net Type]]: A categorization of the network.
* [[Net Node]]s: A node present in one or more networks
* [[Net Line]]s: A connection between two net nodes
** Has an associated [[Net Function]], which in turn is related to a specific [[net type]].
* [[Net Load]]s: A definition of supply or demand in the network
** Belongs to a particular [[Net Type]]
** Is associated to [[Net Node]].
** Can be activated or deactivated with specific time states.
* [[Net Cluster]]s: Cluster of net loads that provides group (de)activation.
** Can be associated with [[Net Load]]s of different [[Net Type]]s
* [[Net Setting]]s: Settings related to the configuration of a Network of a specific Net Type.


==What is a network==
A network is broadly defined as an interconnected system of things. More specifically, networks used here are transport and distribution networks. These are systems composed of interconnected points of supply and demand for specific resources, and the routes connecting them.


==How networks relate to the Tygron Engine==
In the Tygron Engine, it is possible to add network information to a project.
Network functionality is currently an advanced feature, and not available to new projects by default. Please contact Tygron Support if you wish to make use of networks in your projects.
==Network structure==
Each network is related to a predefined resource type. The network then is the system through which that resource travels from elements of supply to elements of demand.
Networks in the engine consist first and foremost out of [[net line]]s and [[net node]]s. The net lines are the principle element in this structure. The two ends of net lines are defined by net nodes. Each net node has at least one net line connected to it, but any arbitrary number of net lines can start or end at a node. The collection of net lines and net nodes between two arbitrary net nodes is called a path.
Networks also have [[net load]]s, which are a definition of supply and demand. These net loads are linked to net nodes, to indicate the supply and demand on that node. A net load is a geographical element, which should be connected to a net node, with data concerning the amount of supply or demand that net node represents. Not every net node needs to have a net load connected to it. However, net loads are only relevant and valid when they are connected to a net node.
Lastly, clusters are also used in conjunction with networks. Clusters group together net loads, and serve as an intermediary to use [[TQL|queries]] on the loads of networks, or to add [[panel]]s to the network for reading out information and controlling the network. Clusters are not formally an element of the network. Their existence (or lack thereof) does not inherently influence the validity, functioning, or meaning of the network.


===Restrictions on networks===
===Restrictions on networks===
* Networks cannot contain any cycles. All networks should be defined as a tree. If the network is not structured as a tree, network generation and other calculations may have unexpected results.
* Networks cannot contain any cycles. All networks should be defined as a tree. If the network is not structured as a tree, network generation and other calculations may have unexpected results.
* A net node can be connected to 1, 2, or more [[net line]]s, except when that node is a [[net load|load node]]. In that case, a net node can only be connected to exactly 1 net line.
* A net node can be connected to 1, 2, or more [[net line]]s, except when that node is a [[net load|load node]]. In that case, a net node can only be connected to exactly 1 net line.
* Behavior for networks linked with buildings which are altered during a session are undefined. When using network functionality, the buildings linked to by the network should not be demolished, [[upgrade]]d, sold to other stakeholders, or otherwise changed.
* Behavior for networks linked with buildings which are altered during a session are undefined. When using network functionality, the buildings linked to by the network should not be demolished, [[Upgrade Type|upgrade]]d, sold to other stakeholders, or otherwise changed.
 
==Generating Networks==
It is possible to have the Tygron Engine generate networks for your projects.
 
===Load generation===
[[Net load]]s can be generated based on buildings and the addresses within them. When selecting this option, you can select which neighborhood, stakeholder, and building category to cluster for. Load generation makes use of the following settings:
* Address Threshold. When the building has more than this many addresses, rather than generate an individual load for each address one single load is created for the entire building.
* Floors Threshold. When the building has more than this many floors, rather than generate an individual load for each address one single load is created for the entire building.
* Skip buildings with Load. When a building already has a load in it, that building is no longer checked to see whether loads have to be generated in it. The building is skipped.
* Create Paths. Whether to also generate the [[net line]]s for the network in the same process. This is often desirable, as a network is not valid when there are net loads unconnected to the net lines.
 
===Path generation===
[[Net line]]s can be generated automatically, based on the net loads present in the 3D world (or when generating as part of the process of generating net loads, also based on the net loads generated by the net load generation process). When selecting this option, you can select the [[net line definition]]s the generated net lines should be based on. Network generation makes use of the following settings:
* Merge range. When generating a network, the algorithm searches for prospective locations for nodes to form a path of least distance from a given net load to the root node. If a prospective node is less than this distance from an already placed node, a connection will be made between the prospective and existing node, and the load will be connected to the network.
* Search range. If there is a node or line within the specified distance of the load for which a path is being generated, and the path generated from this load to the root node would be longer than this existing path, the load will be connected to that existing node or line.
 
When generating net lines, a root load must be placed somewhere in the world, from where the network will be generated. If a root load does not yet exist, an option will be offered to place a root load in the world.
 
===Cluster generation===
There are a number of ways to have clusters generated by the Tygron Engine. When selecting this option, you can select which neighborhoods and stakeholders to cluster for. Net loads which are already clustered will not be removed from their clusters or moved to other clusters. Net loads which are not located in the selected neighborhoods are not taken into consideration (Note that this is the position of the net load and not of its connected net node). Net loads which are taken into consideration are not limited by their neighborhoods. This means net loads from different neighborhoods can be placed in the same cluster. No matter the used algorithm, clusters will always only contain net loads of the same stakeholder.
 
====Map Sectors====
The map is divided into squares of equal sides, dubbed "sectors". All buildings are checked to see in which sector they reside the most, so that each is considered part of exactly one map sector. All loads in all buildings in the same sector are grouped in the same cluster. This algorithm makes use of the following settings:
* The size of the sectors in which the map is divvied up. This is a numeric setting, indicating the side of one edge of the sectors in meters.
* Whether to cluster [[net loads|collective loads]] separately. This is a yes-or-no option. If this option is selected, collective net loads are placed in individual clusters, and not grouped into the cluster generated based on the sectors in which they reside.
* The default stakeholder. When a net load has an owner (because the net load is linked to a building), the net load is considered to be owner by that stakeholder. When the net load does not have an owner, it is considered to be owned by the default stakeholder selected.
 
====Per attribute====
An [[attribute]] of the net loads indicates in which cluster the net load is placed. Every net load with the same value for that attribute is placed in the same cluster. This algorithm makes use of the following settings:
* The attribute to use. When 2 or more loads have the same value for this attribute, they are placed in the same cluster. Net loads which do not have this attribute explicitly defined are ignored.
* Whether to cluster [[net loads|collective loads]] separately. This is a yes-or-no option. If this option is selected, collective net loads are placed in individual clusters, and not grouped in a cluster with other net loads which share the same attribute value.
* The default stakeholder. When a net load has an owner (because the net load is linked to a building), the net load is considered to be owner by that stakeholder. When the net load does not have an owner, it is considered to be owned by the default stakeholder selected.
 
====Per building====
All the net loads linked to the same building are placed in the same cluster. Each building with net loads will have their own cluster. Net loads which are not linked to buildings are not clustered. If a building already has a cluster and more unclustered loads exist linked to the same building, a new cluster is created for the loads which were not yet clustered. This algorithm makes use of the following settings:
* Whether to cluster [[net loads|collective loads]] separately. This is a yes-or-no option. If this option is selected, collective net loads are placed in individual clusters, and not grouped in a cluster with other net loads which share the same attribute value.
 
====Per load====
Each net load will be placed in a separate cluster. This algorithm makes use of the following settings:
* The default stakeholder. When a net load has an owner (because the net load is linked to a building), the net load is considered to be owner by that stakeholder. When the net load does not have an owner, it is considered to be owned by the default stakeholder selected.


====Per load with unique stakeholders====
{{article end
Each net load will be placed in a separate cluster. Additionally, for each cluster created with this algorithm an additional [[stakeholder]] is added to the project. This algorithm makes use of the following settings:
|howtos=
* The default stakeholder. When a net load has an owner (because the net load is linked to a building), the net load is considered to be owner by that stakeholder. When the net load does not have an owner, it is considered to be owned by the default stakeholder selected.
* [[How to generate a network using the network wizard]]
* [[How to import an existing network]]
* [[How to manually edit a network]]
* [[How to check for errors when using the network wizard]]
* [[How to check for errors when using the net validation panel]]
|seealso=
* [[Network Overview Overlay]]
* [[Network Ownership Overlay]]
* [[Network Distance Overlay]]
|videos=
:[[File:Network_VT.jpg| link=https://youtu.be/k4WDyjdurU4|left|thumb|Network and network generation]]
}}


====Add to existing clusters by building====
{{Template:Editor current situation nav}}
For each cluster, all net loads are checked for the buildings to which they are linked. Those buildings are checked for net loads which are linked to that building but are not yet clustered. If any unclustered net loads are found in buildings this way, those net loads are added to the existing cluster. If multiple net loads, part of different clusters, are linked to the same building, it is random to which cluster any unclustered net loads will be added. This algorithm does not have any settings.

Latest revision as of 15:14, 29 February 2024

Network with Net Nodes connected by Net Lines, Net Loads clustered by Net Clusters and configured by Net Settings

Networks in the platform are composed of multiple constituent components:

  • Net Type: A categorization of the network.
  • Net Nodes: A node present in one or more networks
  • Net Lines: A connection between two net nodes
  • Net Loads: A definition of supply or demand in the network
    • Belongs to a particular Net Type
    • Is associated to Net Node.
    • Can be activated or deactivated with specific time states.
  • Net Clusters: Cluster of net loads that provides group (de)activation.
  • Net Settings: Settings related to the configuration of a Network of a specific Net Type.


Restrictions on networks

  • Networks cannot contain any cycles. All networks should be defined as a tree. If the network is not structured as a tree, network generation and other calculations may have unexpected results.
  • A net node can be connected to 1, 2, or more net lines, except when that node is a load node. In that case, a net node can only be connected to exactly 1 net line.
  • Behavior for networks linked with buildings which are altered during a session are undefined. When using network functionality, the buildings linked to by the network should not be demolished, upgraded, sold to other stakeholders, or otherwise changed.