TM rectangle to TM rectangle through geodetic coordinates
Descriptions to TM conversion nodes
Introduction/ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
In that page we're consirer process of convert current rectangle coordinates in projection "Transverse Mercator" to another CS (also TM) using geodetic coordinates as intermediate step ΠΠ° Π΄Π°Π½Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Ρ ΠΏΠ»ΠΎΡΠΊΠΈΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π² ΠΏΡΠΎΠ΅ΠΊΡΠΈΠΈ ΡΠΈΠΏΠ° "ΠΠΎΠΏΠ΅ΡΠ΅ΡΠ½Π°Ρ ΠΠ΅ΡΠΊΠ°ΡΠΎΡΠ°" Π² Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ»ΠΎΡΠΊΠΈΠ΅ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π² Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΠ΅ΡΠ΅Π· Π³Π΅ΠΎΠ΄Π΅Π·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ
Preparing data/ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π΄Π°Π½Π½ΡΡ
As a work's file data let's assign CS named "Russia-MSK-1964" to our drawing "SPb_Demo.dwg" in Civil 3D. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΠ°ΠΉΠ»Π° Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ ΡΠ΅ΡΡΠ΅ΠΆ "SPb_Demo.dwg" ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π²ΡΡΠ΅ ΠΈ Π½Π°Π·Π½Π°ΡΠΈΠΌ Π΅ΠΌΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ "Russia-MSK-1964".

Next going to Dynamo and open script below. As a sample point we get (116479.50982048,99975.21929290,16.0) ΠΠ°Π»Π΅Π΅ ΠΈΠ΄Π΅ΠΌ Π² ΡΡΠ΅Π΄Ρ Dynamo ΠΈ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΌ ΡΠΊΡΠΈΠΏΡ Π½ΠΈΠΆΠ΅. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΉ ΡΠΎΡΠΊΠΈ Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ ΡΠ°ΠΊΡΡ Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (116479.50982048,99975.21929290,16.0).
Note: Because of we public content only for testing. we will non demonstrate how work with groups of COGO points/blocks and etc and as result of script we're get coordinates for sample point only. ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½ΠΎΠ΄ΠΎΠ², ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠ°Π±ΠΎΡΡ Ρ Π³ΡΡΠΏΠΏΠ°ΠΌΠΈ ΡΠΎΡΠ΅ΠΊ COGO/Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΈ Ρ.Π΄., ΠΈ ΠΊΠ°ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΊΡΠΈΠΏΡΠ° ΠΏΠΎΠ»ΡΡΠΈΠΌ Π»ΠΈΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π΄Π»Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ.

Group 0 - input coordinates/ΠΡ
ΠΎΠ΄Π½ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ
Place of input point's coordinates (X and Y) ΠΠ΅ΡΡΠΎ Π²Π²ΠΎΠ΄Π° ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΠΎΡΠΊΠΈ (X, Y)

Instead codeblock there will another data (Dictionaries. lists and etc) ΠΠΌΠ΅ΡΡΠΎ codeblock ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π»ΡΠ±ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ (ΡΠ»ΠΎΠ²Π°ΡΠΈ, ΡΠΏΠΈΡΠΊΠΈ ΠΈ Ρ.Π΄.)
Group 1 - info about CS/ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΡ
Place of determine source coordinate system and finish coordinate system (it there is a task to get coordinates in another CS). Russian CS you can find at class "ResourceLibrary"using Dynamo's search engine/ΠΠ΅ΡΡΠΎ Π²Π²ΠΎΠ΄Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠΈΡΡΠ΅ΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π΄Π»Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ (ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅). Π ΡΡΡΠΊΠΈΠ΅ ΠΠ‘Π ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΡΡΠ΅Π΄ΠΈ ΠΊΠ»Π°ΡΡΠ° "ResourceLibrary" Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΡΡ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΈΠΊΠΎΠΌ Dynamo

If something CS is missing in package, you can write parameters of CS into codeblock (pink nodes in leftside). Parameters must be wroten as order below and comma ceparated: ΠΡΠ»ΠΈ ΠΊΠ°ΠΊΠ°Ρ-Π»ΠΈΠ±ΠΎ Π‘Π ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅, Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π²ΡΡΡΠ½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ codeblock (ΡΠΎΠ·ΠΎΠ²ΡΠ΅ Π½ΠΎΠ΄Ρ ΡΠ»Π΅Π²Π°). ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΠΏΠΈΡΠ°Π½Ρ ΡΡΡΠΎΠ³ΠΎ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π½ΠΈΠΆΠ΅ ΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ Π·Π°ΠΏΡΡΡΠΌΠΈ
Group 2 - info about ellipsoid/ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΠ»Π»ΠΈΠΏΡΠΎΠΈΠ΄Π΅
Place of selection source ellipsoid (where CS is based). Optionally if CS has EPSG's code you can find that info at web-site of EPSG here. In other cases that info placing in government laws/forums and etc. ΠΠ΅ΡΡΠΎ Π²ΡΠ±ΠΎΡΠ° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ»Π»ΠΈΠΏΡΠΎΠΈΠ΄Π° (Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π±Π°Π·ΠΈΡΡΠ΅ΡΡΡ Π‘Π). ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π΅ΡΠ»ΠΈ Π‘Π ΠΈΠΌΠ΅Π΅Ρ EPSG ΠΊΠΎΠ΄, ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΎΡΠ½ΠΈΡΡ Π½Π° ΡΠ°ΠΉΡΠ΅ EPSG ΡΡΡ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π½ΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ΅/ΡΠΎΡΡΠΌΠ°ΠΌ ΠΈ Ρ.Π΄.
Π Π ΠΎΡΡΠΈΠΈ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅ Π‘Π ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π° ΡΠ»Π»ΠΈΠΏΡΠΎΠΈΠ΄Π΅ ΠΡΠ°ΡΠΎΠ²ΡΠΊΠΎΠ³ΠΎ - ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠΎΡ Π·Π° ΡΠ°ΠΊΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΎΡΠ΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ.

Codeblock contain fixed values of ellipsoid's names and node GeneralTerms.EllipsoidParameters get only them. In other cases look to node GeneralTerms.Custom_EllipsoidParameters: Codeblock ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π»ΠΈΠΏΡΠΎΠΈΠ΄ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π½ΠΎΠ΄ GeneralTerms.EllipsoidParameters. Π ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½ΠΎΠ΄ GeneralTerms.Custom_EllipsoidParameters Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΠΈΡ ΡΠ»Π»ΠΈΠΏΡΠΎΠΈΠ΄ΠΎΠ².

Group 3 - node TM_FromRectangleToGeodetic
At that step we start node TMFromRectangleToGeodetic and take needing parameters to them as input values. As CS_Params we use source CS.
ΠΠ° Π΄Π°Π½Π½ΠΎΠΌ ΡΠ°Π³Π΅ ΠΏΠΎΠ΄Π°Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Ρ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ Π½ΠΎΠ΄Π° TM_FromRectangleToGeodetic. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° CS_Params ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ Π‘Π.

Group 4 - node TM_FromGeodeticToRectangle
Here we use node TM_FromGeodeticToRectangle if there is a requirement to get coordinates in another CS (as CS_Params we use finish CS) and radian's angle values.
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π½ΠΎΠ΄ TM_FromGeodeticToRectangle Π΅ΡΠ»ΠΈ Π΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ (Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° CS_Params ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ΅Π»Π΅Π²ΡΡ Π‘Π) ΠΈ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π΄ΠΈΠ°Π½Π½ΡΡ ΠΌΠ΅ΡΡ ΡΠ³Π»ΠΎΠ².

At result data we get a recalculated values: Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΡΡΠΈΡΠ°Π½Π½ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ:

Last updated