Upload a featureΒΆ
In this example we upload a feature.
We assume that we already have a feature class similar to the one created
in the example Create a feature class. Its feature class description
is stored in a parameter named fc
.
The feature should have the following points and simplex properties.
id |
x |
y |
z |
gold |
silver |
---|---|---|---|---|---|
0 |
5 |
0 |
0 |
0.3 |
5.0 |
1 |
7 |
1 |
0 |
NULL |
NULL |
2 |
3 |
0 |
1 |
NULL |
0.1 |
3 |
1 |
1 |
0 |
0.4 |
2.1 |
It should have the following triangulation.
v1 |
v2 |
v3 |
---|---|---|
0 |
1 |
2 |
2 |
1 |
3 |
First we need the GeometryBuilder
.
import GSTPy
gb = GSTPy.GeometryBuilder()
Now we create a tin geometry and add the point and triangle data.
gb.create_triangle_net3()
gb.add_point(GSTPy.RawPoint3(5, 0, 0)) # 0
gb.add_point(GSTPy.RawPoint3(7, 1, 0)) # 1
gb.add_point(GSTPy.RawPoint3(3, 0, 1)) # 2
gb.add_point(GSTPy.RawPoint3(1, 1, 0)) # 3
gb.add_triangle(GSTPy.IdxTriangle(0, 1, 2))
gb.add_triangle(GSTPy.IdxTriangle(2, 1, 3))
Afterwards we add the object properties.
gb.set_name("example_tin_feature")
gb.set_color(GSTPy.Color(1, 0, 1))
gb.set_transparency(0)
gb.set_custom_property("external_id", "5")
gb.set_custom_property("contact_person", "Max Mustermann")
And finally we add the simplex properties.
gb.create_vertex_property("gold", GSTPy.PropertyTypes.TypeFloat)
gb.create_vertex_property("silver", GSTPy.PropertyTypes.TypeFloat)
gb.add_property_value("0.3") # 0 gold
gb.add_property_value("5.0") # 0 silver
gb.add_property_null_value() # 1 gold
gb.add_property_null_value() # 1 silver
gb.add_property_null_value() # 2 gold
gb.add_property_value("0.1") # 2 silver
gb.add_property_value("0.4") # 3 gold
gb.add_property_value("2.1") # 3 silver
Now we are ready to upload the feature to GST.
f = ni.upload_feature(gb, fc)
Full code sample
import GSTPy
# add geometry data
gb = GSTPy.GeometryBuilder()
gb.create_triangle_net3()
gb.add_point(GSTPy.RawPoint3(5, 0, 0)) # 0
gb.add_point(GSTPy.RawPoint3(7, 1, 0)) # 1
gb.add_point(GSTPy.RawPoint3(3, 0, 1)) # 2
gb.add_point(GSTPy.RawPoint3(1, 1, 0)) # 3
gb.add_triangle(GSTPy.IdxTriangle(0, 1, 2))
gb.add_triangle(GSTPy.IdxTriangle(2, 1, 3))
# add object properties
gb.set_name("example_tin_feature")
gb.set_color(GSTPy.Color(1, 0, 1))
gb.set_transparency(0)
gb.set_custom_property("external_id", "5")
gb.set_custom_property("contact_person", "Max Mustermann")
# add simplex properties
gb.create_vertex_property("gold", GSTPy.PropertyTypes.TypeFloat)
gb.create_vertex_property("silver", GSTPy.PropertyTypes.TypeFloat)
gb.add_property_value("0.3") # 0 gold
gb.add_property_value("5.0") # 0 silver
gb.add_property_null_value() # 1 gold
gb.add_property_null_value() # 1 silver
gb.add_property_null_value() # 2 gold
gb.add_property_value("0.1") # 2 silver
gb.add_property_value("0.4") # 3 gold
gb.add_property_value("2.1") # 3 silver
# upload
f = ni.upload_feature(gb, fc)