Skip to main content
Question

Combinate attribute-values of overlapping solids


sprongandre
Forum|alt.badge.img

For example:

I've got 4 solids all in dwg. I would like to combinate the layernames of the overlapping objects.

So how can ik get the layernames in the green boxes? And I'm looking for a solution which als works if I have multiple flat solids (linke the blue and grey ones)

 

Thanks!

3 replies

chrisatsafe
Contributor
Forum|alt.badge.img+2
  • Contributor
  • August 1, 2019

Hi @sprongandre,

You should be able to do this using a CSGBuilder. I have created a simple example where two solids intersect each other. The CSGBuilder will allow you to get the intersect, difference, or union of solid geometries and in this case, it will even combine attributes of the solids. Here, I am inspecting the solids in the same view before the CSGSolidBuilder

 

After passing the solids through the CSGSolidBuilder, you will get 3 outputs: Union, Difference, and Intersection - all three should contain the combined attributes if the attributes have different names. If the attributes have the same name, the attribute value(s) will be kept from the solid that entered in the B port.

Depending on your desired output, you may want to use the Group By parameter of the CSGBuilder and set it to the layer name.

Hope this helps you get started.

Combine_Attributes.fmw


sprongandre
Forum|alt.badge.img
chrisatsafe wrote:

Hi @sprongandre,

You should be able to do this using a CSGBuilder. I have created a simple example where two solids intersect each other. The CSGBuilder will allow you to get the intersect, difference, or union of solid geometries and in this case, it will even combine attributes of the solids. Here, I am inspecting the solids in the same view before the CSGSolidBuilder

 

After passing the solids through the CSGSolidBuilder, you will get 3 outputs: Union, Difference, and Intersection - all three should contain the combined attributes if the attributes have different names. If the attributes have the same name, the attribute value(s) will be kept from the solid that entered in the B port.

Depending on your desired output, you may want to use the Group By parameter of the CSGBuilder and set it to the layer name.

Hope this helps you get started.

Combine_Attributes.fmw

Thanks! that works great for 2 solids, but.... ;-)

If I have multiple solids, for example 3 (see attachment), only solid 2 overlaps with solid 1 and 3.

I would like to get 2 solids, the overlapping parts of solid 1 and 2 (including the merged attributes) and the overlapping parts of solid 2 and 3 (including the merged attributes).

Do you know how I can arrange this?

 

29094-combine-attributes_3solids.fmw


sprongandre
Forum|alt.badge.img
chrisatsafe wrote:

Hi @sprongandre,

You should be able to do this using a CSGBuilder. I have created a simple example where two solids intersect each other. The CSGBuilder will allow you to get the intersect, difference, or union of solid geometries and in this case, it will even combine attributes of the solids. Here, I am inspecting the solids in the same view before the CSGSolidBuilder

 

After passing the solids through the CSGSolidBuilder, you will get 3 outputs: Union, Difference, and Intersection - all three should contain the combined attributes if the attributes have different names. If the attributes have the same name, the attribute value(s) will be kept from the solid that entered in the B port.

Depending on your desired output, you may want to use the Group By parameter of the CSGBuilder and set it to the layer name.

Hope this helps you get started.

Combine_Attributes.fmw

ps. and can I do this automatically, so FME detects which solids overlaps and create automatically solids from the overlapping parts (while merging the attributes).


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings