Question

Looping through attribute values

  • 23 August 2016
  • 3 replies
  • 25 views

Badge

Hi,

I have a vector layer with polygon parcels classified by type. The class for each polygon is stored in an attribute, and there are 20+ classes. I want to extract parcels based on class and process them as separate features. The picture below shows what I want to do. The custom transformer and the dwgstyler apply the same transformation to all parcels, no matter the class. So, I guess a loop can do the job instead of manually separating each parcel type and apply the transformers as in the picture. I could use a ListExploder, except that this transformer destroys the geometries. What would be a more efficient way to perform the workflow below?


3 replies

Badge +22

I'm not sure I follow the need for separating the the parcels.

 

If I understand you correctly, you want to process the parcels by class, and then apply the same style to all of them, and fan them out into separate feature_types. But the parameters for the Custom Transformer and the DWGStyler are the same.

 

 

If that's the case, in your custom transformer (advanced settings) publish the parallel process group by option as a parameter. Keep the parallel processing level to No Parallelism.

 

 

Back in the main canvas set the parallel process group by to your class attribute.

 

 

You should then only need 2 feature types on your writer, one with a fanout by class, and the other for the ParcelConflicts.
Badge +16

I agree with jdh a group by and fan out will get you there

Badge +3

Add a group by to your custom transformer.

Probably every transformer in there and maybe some filters to achieve that.

Depends on the proces in the custom, wich we don't know.

Only one DWG styler then needed and fanout in t he navigator panel and or the writer.

If you want to keep geometries, aggregator is a alternative. (of course you need to eitehr dissolve or pick first aggregate member afterwards).

It is alos possible to keep geometry using a listbuilder by extracting it and afterwards replacing it.

Reply