Skip to main content
Question

Intersecting 3d walls

  • March 30, 2016
  • 8 replies
  • 91 views

Hey, I have small problem aggregating touching walls to same file. I have sketchup file where is walls seperated from each other in different files. I want to make all walls what are touching eachother to same file. I managed to get 'id' for each side of wall. So there is 'id' of wall on right side and 'id' of wall on left side. Any idea how I could aggregate these walls to each other with these 'id's efficiently?

This post is closed to further activity.
It may be an old question, an answered question, an implemented idea, or a notification-only post.
Please check post dates before relying on any information in a question or answer.
For follow-up or related questions, please post a new question or idea.
If there is a genuine update to be made, please contact us and request that the post is reopened.

8 replies

takashi
Celebrity
  • March 30, 2016

Hi @akituo, means that each wall has three attributes, i.e. left side wall id, self id, right side wall id?


  • Author
  • March 30, 2016

Hi @akituo, means that each wall has three attributes, i.e. left side wall id, self id, right side wall id?

Hi,

Yes, just like that. What I've made in first place was finding from bunch of sketchup files touching elements. Don't know if its possible to make in 3D. But I managed to make it in 2D with 2DForcer and other transformers. With one workbench I made this excel file where is for example these rows:

Wall_ID: "SJK0005"; ID_Left_Right: "SJK0004,SJK0006"

Wall_ID: "SJK0006"; ID_Left_Right: "SJK0005,SJK0007"

Now I would need to connect these files to eachother somehow with second workbench. It sounds so simple task, but just can't figure it now. Don't know if it's just bad day or what. :) It's easy to connect these two walls, but when there comes over 800 walls and there are maybe 100 different buildings what should go to their own file.. Then it comes "funny".

Thank you takashi already from so fast respond and intrest for my case!


takashi
Celebrity
  • March 30, 2016

The ListCombiner (FME Store transformer) might help you.

Create a list containing the 3 ID for each record (e.g. _list{0} =SJK0005 , _list{1} = SJK0004, _list{2} = SJK0006 for the first wall), and then send the records to the ListCombiner (Source List: _list{}).

This transformer will combine all lists which contain common elements with "snowballing", and adds an identical group ID to the features sharing the same combined list. For example, if these 3 features have been input,

  • feature 1 has a list = [1,2,3]
  • feature 2 has a list = [3,4,5]
  • feature 3 has a list = [5,6,7]

the transformer creates a combined list [1,2,3,4,5,6,7] and adds the same group ID to the 3 features. I think you can use the group ID to make wall groups for each building.


takashi
Celebrity
  • March 30, 2016

The ListCombiner (FME Store transformer) might help you.

Create a list containing the 3 ID for each record (e.g. _list{0} =SJK0005 , _list{1} = SJK0004, _list{2} = SJK0006 for the first wall), and then send the records to the ListCombiner (Source List: _list{}).

This transformer will combine all lists which contain common elements with "snowballing", and adds an identical group ID to the features sharing the same combined list. For example, if these 3 features have been input,

  • feature 1 has a list = [1,2,3]
  • feature 2 has a list = [3,4,5]
  • feature 3 has a list = [5,6,7]

the transformer creates a combined list [1,2,3,4,5,6,7] and adds the same group ID to the 3 features. I think you can use the group ID to make wall groups for each building.

oh, the left and right wall ID is a comma separated value. You can use the AttributeSplitter to create a list containing left and right ID. Then, set the resulting list to the "Source List" parameter and set "Wall_ID" to the "Additional Source Attributes" parameter of the ListCombiner. It's a typical use case of the transformer, which I have supposed.


  • Author
  • March 30, 2016

The ListCombiner (FME Store transformer) might help you.

Create a list containing the 3 ID for each record (e.g. _list{0} =SJK0005 , _list{1} = SJK0004, _list{2} = SJK0006 for the first wall), and then send the records to the ListCombiner (Source List: _list{}).

This transformer will combine all lists which contain common elements with "snowballing", and adds an identical group ID to the features sharing the same combined list. For example, if these 3 features have been input,

  • feature 1 has a list = [1,2,3]
  • feature 2 has a list = [3,4,5]
  • feature 3 has a list = [5,6,7]

the transformer creates a combined list [1,2,3,4,5,6,7] and adds the same group ID to the 3 features. I think you can use the group ID to make wall groups for each building.

I will look more on this tomorrow. I got some error code for now. After 'TdCaller' there is no attributes on "__listcombiner.list_attr" for some reason. But thank you for this far. Will come back on this later once I've played little with your transformer.

Thank you once again.


takashi
Celebrity
  • March 30, 2016

I will look more on this tomorrow. I got some error code for now. After 'TdCaller' there is no attributes on "__listcombiner.list_attr" for some reason. But thank you for this far. Will come back on this later once I've played little with your transformer.

Thank you once again.

If you are using FME 2016.0.0, consider upgrading FME to the latest version. The error could be caused by a known bug of 2016.0.0...


  • Author
  • March 30, 2016

The ListCombiner (FME Store transformer) might help you.

Create a list containing the 3 ID for each record (e.g. _list{0} =SJK0005 , _list{1} = SJK0004, _list{2} = SJK0006 for the first wall), and then send the records to the ListCombiner (Source List: _list{}).

This transformer will combine all lists which contain common elements with "snowballing", and adds an identical group ID to the features sharing the same combined list. For example, if these 3 features have been input,

  • feature 1 has a list = [1,2,3]
  • feature 2 has a list = [3,4,5]
  • feature 3 has a list = [5,6,7]

the transformer creates a combined list [1,2,3,4,5,6,7] and adds the same group ID to the 3 features. I think you can use the group ID to make wall groups for each building.

Couldn't handle myself and wait till tmr.. So I manage to get error away.. It works perfectly! Thank you takashi. Needed to make this project for tmr so you just made my day.


  • Author
  • March 30, 2016

If you are using FME 2016.0.0, consider upgrading FME to the latest version. The error could be caused by a known bug of 2016.0.0...

Ah, I gladly had already newest version. Error came from my file naming. Folder containded 'ä' in name what made python give error. After folder name was changed it worked just fine. So just my own mistakes.