Smallworld Geometry
Basic Geometry Information
Topology
Queries
Styles
Trail Information
Dataless RWO Transactions
You can use dataset_transactions to create/join dataless records. Below is an example.
record_transaction.new_insert(
dl_rwo_coll,
property_list.new_with(
:geom_fld_name,geom,
:parent_rwo_field_name,parent_rwo))
(gotcha) Note that the geometry requires a world or you will get the following useless error:
**** Error: The insert transaction on dataset gis has failed as there are no proposed field values
dataset_transaction_api_no_fields(operation=:insert, dataset=:gis, transaction=a sw:record_transaction)
The Other Way
You can use this way to from the parent object…
record_transaction.new_update(
the_rec,
property_list.new_with(
:dataless_fld_name,{{_unset,geom1},{_unset,geom2}}))
I don't know why you need the simple vector where the 1st element is unset, but that is how the editors work. You probably need the world set on the geometries, like above… For annotations, geom1 & geom2 above are pseudo_text objects (with string populated).
Pseudo Geometry from Geomtery
You would think this is a basic function, but here it is. Note the setting of the world is required…
_pragma(classify_level=basic, topic={smp,lightning})
_method top_level_geometry.fcsi_as_pseudo_geometry()
## Parameters : none
## Returns : pseudo geometry (memory_exemplar of self) with
## self's world.
## Function :
## Methodology :
#---------------- HISTORY ---------------------
# (2017/11/01 - Mark Field (FCSI)): Created.
#----------------------------------------------
_local pg << _self.memory_exemplar.new_with(_self)
pg.world << _self.world
_return pg
_endmethod
$
Units
- unit_manager.unit() retrieves the unit from the session. example: unit_manager.unit(:usfeet)
page revision: 12, last edited: 24 Jun 2021 18:44