The first macro  uses select by proximity to add features in one set
according to their position relative to other sets.  These sets can be in
the same layer or in different layers.

The second macro excludes features from the set by proximity.

If you want to filter sets according to their VIsibility status, all you
need to do is  add an IF/THEN condition using GetDisplayStatus() within the
FOR/NEXT statement in each macro

Regards



On Thu, Oct 4, 2012 at 4:02 PM, swag_ner_pth <[email protected]> wrote:

> **
>
>
> Hello Armando,
>
> I appreciate your effort to help. Unfortunately I see no relation between
> your pseudo-code and the functionality I need.
>
> --- In [email protected], Armando Scalise <armando.scalise@...>
> wrote:
> >
> > As starting point, lets assume you want to select features in a layer|set
> > according to how far they are from features in multiple layer|sets
> > (For example: Select all features from layerset A|a that are at *less
> *than
> > X miles from layerset B|b, at *less *than Y miles of layerset C|c , at
> *more
> > * than Z miles from layerset D|d and at *more* than K Miles of layerset
> E|e"
>
> >
> > I would create two amcros that lookk like this (Please, consider this
> > metacode, I have not even tried to compile it)
> >
> > 1) The first macro would select all features taht are *within *the
>
> > vicinity of the reference layer|sets
> >
> > Macro "AddToSet_MultiCriteria" ( sLayerName, sOutputSet, arDists,
> > arRefLayerSets)
> > SetLayer(sLayerName)
> > CreateSet(sOutputSet)
> >
> > flag = RunMacro("G30 set exist", sOutputSet)
> > if !flag then CreateSet(sOutputSet)
> >
> > for i =1 to arSets.length do
> > SelectByVicinity (sOutputset, "MORE", arRefLayerSets[i],
> > arDists[i], )
> > end
> > endMacro
> >
> > 2) The second macro would remove form the output set created by macro 1,
> > all the records taht are *beyond *given distances
>
> >
> > Macro "RemoveFormSet_Muticriteria" (sLayerName, sOutputset,
> > arDists, arRefSets)
> > SetLayer(sLayerName)
> > for i =1 to to arDists.length do
> >
> > SelectByVicinity ( sTempSet1,
> > "Several", arRefLayerSets[i], arDists[i], )
> > SetAND( sTempSet2, { sTempSet1, OutputSet}) //
> > Select only thsoe records that are members of sOutputSet and are
> >
> > // withi the exclusion distance to refLaySet[i]
> > SetXOR(OutputSet, {sTempset2}
> > // Remove from sOutputSet all records that are member stempset2
> >
> >
> > end
> > DeleteSet(sTempSet1)
> > Delete(sTempSet2)
> > endmacro
> >
> >
> > Folloeing our example above you would call both macros in sequence using:
> >
> > RunMacro ("AddToSet_MultiCriteria" , A, a, {X,Y}, {B|b, C|c})
> > RunMacro ("RemoveSet_MultiCriteria" , A, a, {X,Y}, {D|d, E|e)
> >
> >
> > If you have other criteria you would want to use in addition to features
> > being at a maximum or mimnimum distance of other layer|sets (like
> selecting
> > features that are inside predefined polygons, create another macro, with
> > the correspongind SelectBY... command , like selectByShape())
> >
> > I hope this helps
> >
> > Armando
> >
> >
> > On Wed, Oct 3, 2012 at 3:06 PM, swag_ner_pth <swag_ner_pth@...> wrote:
> >
> > > **
>
> > >
> > >
> > > Do you have any suggestions for how I might create this functionality
> > > using the GISDK?
> > >
> > >
> > > --- In [email protected], Armando Scalise <armando.scalise@>
> > > wrote:
> > > >
> > > > The statement "to select only certain sets" needs some clarifying:
> in MT
> > > > we do not select sets, we create sets (or add/remove features to/from
> > > > existing sets) by selecting features according to some criteria. And
> all
> > > > criteria must be related to the characteristics of the feature, not
> of
> > > the
> > > > set.
> > > >
> > > > The criteria of whether the set a feature belongs to is visible,
> > > invisble,
> > > > or hidden is not one you can use in the selection tools. ( The only
> > > > execption being Select By Condition, which allows you to operate on
> those
> > > > features that are located within the current map scope only ... but
> this
> > > > is independent of whether the points are visible or hidden, it only
> > > depends
> > > > of a characteristic of the feature: being or not within a certain
> scope).
> > > >
> > > > In order to do what you want, and assuming you want to select
> features
> > > form
> > > > multiple sets according to one ore more criteria, one potential
> approach
> > > is
> > > > to make temporary subsets using the criterias of your choice (for
> > > example,
> > > > Select By Location) and then applying Combine Selection recurrently
> to
> > > get
> > > > your final set.
> > > >
> > > > At any rate, if the combination of sets and criterias is more than
> just
> > > > a handful, ( you may very well want to select features from one set
> based
> > > > on more than one criteria, like selecting available properties for
> rent
> > > > that are away from an industrial area and close enough to a metro
> station
> > > > ... and so on) I strongly recommend writing some quick macros with
> GISDK
> > > > to avoid painful processing.
> > > >
> > > > I hope this helps.
> > > >
> > > > Armando
> > > >
> > > >
> > > > On Wed, Sep 26, 2012 at 8:40 PM, swag_ner_pth <swag_ner_pth@>wrote:
>
> > > >
> > > > > **
> > >
> > > > >
> > > > >
> > > > > Hello,
> > > > >
> > > > > I have several sets created from one layer. What I would like to be
> > > able
> > > > > to do is use the select by circle or area tool to select only
> certain
> > > sets.
> > > > > So if I have two sets and one set is on (visible) and the other is
> off
> > > > > (invisible or inactive) only the visible sets would be selected.
> > > > >
> > > > > I know how to use select by condition but it is faster, easier, and
> > > more
> > > > > user friendly to use the area/circle tools.
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Armando Scalise
> > > >
> > >
> > >
> > >
> >
> >
> >
> > --
> > Armando Scalise
> >
>
>  
>



-- 
Armando Scalise

Reply via email to