SEF Feature Examples
SEF Workset Info Feature
FACTORY_DEF * CreationFactory \
CREATE_AT_END \
NUMBER_TO_CREATE 1 \
OUTPUT FEATURE_TYPE sef_header_feature \
sef_feature sef_workset_info \
sef_workset_type READ_ONLY \
sef_segment{0} segment1
The output feature is:
workset_info
{
name="sef_header";
type=READ_ONLY; /* If changed to ALTERNATE_SCHEMA, add a schema tag */
segment="segment1";
}
A reference feature with a complex string, a text and a symbol component. Note that all the graphical components are turned into graphical feature references.
# curve subtype for complex string
FACTORY_DEF * CreationFactory \
2D_GEOMETRY 1 1 2 2 3 3 4 4 \
CREATE_AT_END \
NUMBER_TO_CREATE 1 \
OUTPUT FEATURE_TYPE aggregate4 \
sef_type sef_curve \
sef_out_of_scope begin
# 2 point line subtype for complex string
FACTORY_DEF * CreationFactory \
2D_GEOMETRY 1 1 2 2 \
CREATE_AT_END \
NUMBER_TO_CREATE 1 \
OUTPUT FEATURE_TYPE aggregate4 \
sef_type sef_line \
sef_out_of_scope begin
# Aggregate the curve and the 2 point line together into
# a complex line. The shared attributes of the above
# component (“streetName” for example) should be added
# here.
FACTORY_DEF * AggregateFactory \
INPUT FEATURE_TYPE aggregate4 \
LIST_NAME sef_component{} \
OUTPUT AGGREGATE FEATURE_TYPE aggregate4 \
sef_type sef_line \
sef_lbl pier \
sef_element_type 12 \
sef_out_of_scope begin \
sef_dgn dgnfile \
sef_map mapid \
sef_transaction{0} ADD \
sef_transaction{1} OUTSTANDING \
sef_rbprmry gid \
sef_rbscndry ufid \
sef_segment segment \
sef_tsetid id \
sef_mrflag mrflag \
sef_dgntype 1 \
streetName "Royal Ave"
# Text.
FACTORY_DEF * CreationFactory \
2D_GEOMETRY 1 1 \
CREATE_AT_END \
NUMBER_TO_CREATE 1 \
OUTPUT FEATURE_TYPE aggregate4 \
sef_lbl road \
sef_type sef_text \
sef_ch 11 \
sef_font 12 \
sef_height 13 \
sef_justification 14 \
sef_width 15 \
sef_rot 16 \
sef_insert_pt_x 17 \
sef_insert_pt_y 18 \
sef_level 19 \
sef_color 20 \
sef_style 21 \
sef_weight 22 \
sef_out_of_scope begin
#symbol.
FACTORY_DEF * CreationFactory \
2D_GEOMETRY 1 1 \
CREATE_AT_END \
NUMBER_TO_CREATE 1 \
OUTPUT FEATURE_TYPE aggregate4 \
sef_type sef_symbol \
sef_lbl symbol \
sef_character 255 \
sef_font 127 \
sef_height 10 \
sef_justification 14 \
sef_width 15 \
sef_rot 16 \
sef_insert_pt_x 2 \
sef_insert_pt_y 2 \
sef_level 60 \
sef_color 16 \
sef_style 17 \
sef_weight 18 \
sef_dgn dgn \
sef_out_of_scope end \
sef_rbscndry id \
sef_rbprmry id
# This makes the reference feature.
FACTORY_DEF * AggregateFactory \
INPUT FEATURE_TYPE aggregate4 \
LIST_NAME sef_component{} \
OUTPUT AGGREGATE FEATURE_TYPE aggregate4 \
sef_feature sef_ref_feat \
sef_st{0} state1 \
sef_st{1} state2 \
sef_ref_key refid \
sef_reload NO_RELOAD \
sef_wid wid \
sef_schema_no num
The resulting reference feature is:
ref_feat
{
lbl="aggregate4";
st="state1";
st="state2";
ref_key="refid";
reload="NO_RELOAD"; /* DO NOT MODIFY */
wid="wid"; /* DO NOT MODIFY */
schema_no="num"; /* DO NOT MODIFY */\
gr_feat_ref
{
dgn="dgnfile";
map="mapid";
transaction="ADD"; /* DO NOT MODIFY */
transaction="OUTSTANDING"; /* DO NOT MODIFY */
rbprmry="gid";
rbscndry="ufid";
segment="segment"; /* DO NOT MODIFY */
tsetid="id";
mrflag="mrflag";
dgntype="1";
cmp { lbl="pier"; typ=cplx_str;
out_of_scope=begin;
att
{
streetName="Royal Ave";
elm_cnt=2;
} /* att section */
subtype=crv;
{
geo
{
num_pnts=4;
pnts=1,1 :
2,2 :
3,3 :
4,4;
} /* geo section */
} /* subtype section */
subtype=line;
{
geo
{
fst_pnt=1,1;
snd_pnt=2,2;
} /* geo section */
} /* subtype section */
} /* cmp section */
} /* gr_feat_ref*/
gr_feat_ref
{
cmp { lbl="road"; typ=txt;
out_of_scope=begin;
att
{
weight=22;
level=19;
text_justification=14;
text_width=15;
text_font=12;
text_ch="11";
text_height=13;
color=20;
style=21;
} /* att section */
geo
{
rot=16;
org=1,1;
trn_org=17,18;
} /* geo section */
} /* cmp section */
} /* gr_feat_ref*/
gr_feat_ref
{
dgn="dgn";
rbprmry="id";
rbscndry="id";
cmp { lbl="symbol"; typ=sym;
out_of_scope=end;
att
{
weight=18;
level=60;
symbol_character=255;
symbol_justification=14;
symbol_width=15;
symbol_font=127;
symbol_height=10;
color=16;
style=17;
} /* att section */
geo
{
rot=16;
org=1,1;
trn_org=2,2;
} /* geo section */
} /* cmp section */
} /* gr_feat_ref*/
} /* ref_feat */
A reference feature with a nongraphic component, a graphical reference feature with a complex string and a line, and a graphical reference feature which is a line.
# A nongraphic component.
FACTORY_DEF * CreationFactory
CREATE_AT_END
NUMBER_TO_CREATE 1 \
OUTPUT FEATURE_TYPE ngComponent \
sef_type sef_nongraphic \
sef_lbl grmap \
streetName 102
# A curve subtype for the complex string.
FACTORY_DEF * CreationFactory \
2D_GEOMETRY 1 1 2 2 3 3 4 4 \
CREATE_AT_END \
NUMBER_TO_CREATE 1 \
OUTPUT FEATURE_TYPE crvSubType \
sef_type sef_curve
# A line subtype for the complex string.
FACTORY_DEF * CreationFactory \
2D_GEOMETRY 1 1 2 2 \
CREATE_AT_END \
NUMBER_TO_CREATE 1 \
OUTPUT FEATURE_TYPE lineSubType \
sef_type sef_line
# Aggregate the curve and the line together to form a complex # string that will become a component of the first
# graphical reference feature.
FACTORY_DEF * AggregateFactory \
INPUT FEATURE_TYPE crvSubType \
INPUT FEATURE_TYPE lineSubType \
LIST_NAME sef_component{} \
OUTPUT AGGREGATE FEATURE_TYPE grCmplLineComponent \
sef_type sef_line \
sef_lbl street \
sef_element_type 12 \
streetName 90
# A line which will become part of the first graphical
# reference component.
FACTORY_DEF * CreationFactory \
2D_GEOMETRY 1 1 2 2 \
CREATE_AT_END \
NUMBER_TO_CREATE 1 \
OUTPUT FEATURE_TYPE grLineComponent \
sef_type sef_line \
sef_lbl bridge \
streetName 91
# Aggregate the complex string and the above line together
# to form the first graphical reference feature.
FACTORY_DEF * AggregateFactory \
INPUT FEATURE_TYPE grCmplLineComponent \
INPUT FEATURE_TYPE grLineComponent \
LIST_NAME sef_component{} \
OUTPUT AGGREGATE FEATURE_TYPE grRef \
sef_out_of_scope begin \
sef_dgn dgnfile \
sef_map mapid \
sef_transaction{0} ADD \
sef_transaction{1} OUTSTANDING \
sef_rbprmry gid \
sef_rbscndry ufid \
sef_segment segment \
sef_tsetid id \
sef_mrflag mrflag \
sef_dgntype 1 \
sef_out_of_scope begin
# A graphical reference with a line only.
FACTORY_DEF * CreationFactory \
2D_GEOMETRY 1 1 2 2 \
CREATE_AT_END \
NUMBER_TO_CREATE 1 \
OUTPUT FEATURE_TYPE grRef \
sef_type sef_line \
sef_out_of_scope end \
sef_lbl crossStreet \
streetName 92
# Aggregate the nongraphic component, and the two
# graphical references together to form the reference feature.
FACTORY_DEF * AggregateFactory \
INPUT FEATURE_TYPE ngComponent \
INPUT FEATURE_TYPE grRef \
LIST_NAME sef_component{} \
OUTPUT AGGREGATE FEATURE_TYPE refFeat \
sef_feature sef_ref_feat \
sef_st{0} state1 \
sef_st{1} state2 \
sef_out_of_scope yes \
sef_ref_key refid \
sef_reload NO_RELOAD \
sef_wid wid \
sef_schema_no num
The output feature is:
ref_feat
{
lbl="refFeat";
st="state1";
st="state2";
out_of_scope;
ref_key="refid";
reload="NO_RELOAD"; /* DO NOT MODIFY */
wid="wid"; /* DO NOT MODIFY */
schema_no="num"; /* DO NOT MODIFY */
cmp { lbl="grmap"; typ=n_g;
att
{
streetName="102";
} /* att section */
} /* cmp section */
gr_feat_ref
{
dgn="dgnfile";
map="mapid";
transaction="ADD"; /* DO NOT MODIFY */
transaction="OUTSTANDING"; /* DO NOT MODIFY */
rbprmry="gid";
rbscndry="ufid";
segment="segment"; /* DO NOT MODIFY */
tsetid="id";
mrflag="mrflag";
dgntype="1";
cmp { lbl="street"; typ=cplx_str;
att
{
streetName="90";
elm_cnt=2;
} /* att section */
subtype=crv;
{
geo
{
num_pnts=4;
pnts=1,1 :
2,2 :
3,3 :
4,4;
} /* geo section */
} /* subtype section */
subtype=line;
{
geo
{
fst_pnt=1,1;
snd_pnt=2,2;
} /* geo section */
} /* subtype section */
} /* cmp section */
cmp { lbl="bridge"; typ=line;
att
{
streetName="91";
} /* att section */
geo
{
fst_pnt=1,1;
snd_pnt=2,2;
} /* geo section */
} /* cmp section */
} /* gr_feat_ref*/
gr_feat_ref
{
cmp { lbl="crossStreet"; typ=line;
out_of_scope=end;
att
{
streetName="92";
} /* att section */
geo
{
fst_pnt=1,1;
snd_pnt=2,2;
} /* geo section */
} /* cmp section */
} /* gr_feat_ref*/
} /* ref_feat */
A regular feature with a complex string, a complex shape and a nongraphic component.
# A curve for the complex string.
FACTORY_DEF * CreationFactory \
2D_GEOMETRY 1 1 2 2 \
CREATE_AT_END \
NUMBER_TO_CREATE 1 \
OUTPUT FEATURE_TYPE aggregate1 \
sef_type sef_curve \
# A line for the complex line. Since the element type
# is not specified, the SEF writer automatically check
# and determine that this is a two point line.
FACTORY_DEF * CreationFactory \
2D_GEOMETRY 3 3 4 5 \
CREATE_AT_END \
NUMBER_TO_CREATE 1 \
OUTPUT FEATURE_TYPE aggregate1 \
sef_type sef_line
# Aggregate the curve and the two point line together
# into a complex string.
FACTORY_DEF * AggregateFactory \
INPUT FEATURE_TYPE aggregate1 \
LIST_NAME sef_component{} \
OUTPUT AGGREGATE FEATURE_TYPE aggregate1 \
sef_type sef_line \
sef_lbl road \
sef_element_type 12 \
streetName Broadway
# Simple shape forced into a complex shape.
FACTORY_DEF * CreationFactory \
2D_GEOMETRY 1 1 10 1 5 10 1 1 \
CREATE_AT_END \
NUMBER_TO_CREATE 1 \
OUTPUT FEATURE_TYPE aggregate1 \
sef_type sef_shape \
sef_element_type 14 \
sef_lbl polygon \
streetName Lake
# A nongraphic component.
FACTORY_DEF * CreationFactory \
CREATE_AT_END \
NUMBER_TO_CREATE 1 \
OUTPUT FEATURE_TYPE aggregate1 \
sef_type sef_nongraphic \
sef_lbl landmark \
streetName "kingsway"
# This makes the feature.
FACTORY_DEF * AggregateFactory \
INPUT FEATURE_TYPE aggregate1 \
LIST_NAME sef_component{} \
OUTPUT AGGREGATE FEATURE_TYPE aggregate1 \
sef_feature sef_feat \
sef_st{0} state1 \
sef_st{1} state2 \
sef_dgn dgnfile \
sef_map mapid \
sef_reload NO_RELOAD \
sef_wid wid \
sef_schema_no num \
sef_transaction{0} EDIT \
sef_transaction{1} PLR \
sef_rbprmry gid \
sef_rbscndry ufid \
sef_segment segment \
sef_tsetid id \
sef_mrflag mrflag \
sef_dgntype 1
The output feature is:
feat
{
lbl="aggregate1";
st="state1";
st="state2";
dgn="dgnfile";
map="mapid";
reload="NO_RELOAD"; /* DO NOT MODIFY */
wid="wid"; /* DO NOT MODIFY */
schema_no="num"; /* DO NOT MODIFY */
transaction="EDIT"; /* DO NOT MODIFY */
transaction="PLR"; /* DO NOT MODIFY */
rbprmry="gid"; /* DO NOT MODIFY */
rbscndry="ufid"; /* DO NOT MODIFY */
segment="segment"; /* DO NOT MODIFY */
tsetid="id"; /* DO NOT MODIFY */
mrflag="mrflag"; /* DO NOT MODIFY */
dgntype="1"; /* DO NOT MODIFY */
cmp { lbl="road"; typ=cplx_str;
att
{
streetName="Broadway";
elm_cnt=2;
} /* att section */
subtype=crv;
{
geo
{
num_pnts=2;
pnts=1,1 :
2,2;
} /* geo section */
} /* subtype section */
subtype=line;
{
geo
{
fst_pnt=3,3;
snd_pnt=4,5;
} /* geo section */
} /* subtype section */
} /* cmp section */
cmp { lbl="polygon"; typ=cplx_shp;
att
{
streetName="Lake";
elm_cnt=1;
} /* att section */
subtype=str;
{
geo
{
num_pnts=4;
pnts=1,1 :
10,1 :
5,10 :
1,1;
} /* geo section */
} /* subtype section */
} /* cmp section */
cmp { lbl="landmark"; typ=n_g;
att
{
streetName="kingsway";
} /* att section */
} /* cmp section */
} /* feat */