Print at Dec 16, 2025, 6:25:46 PM
Posted by enkonyito at Dec 30, 2020, 4:11:54 AM
How to group furniture using a plug-in?
Using a plug-in, I want to group furniture added to the plan for a specific action.
My concern is that a new furniture group can only be defined by at least a furniture list and a name.
----------------------------------------
EnkoNyito

Posted by Puybaret at Dec 31, 2020, 1:33:56 PM
Re: How to group furniture using a plug-in?
What other capabilities would you expect?
Look at FurnitureController class to understand how a furniture group is created and handled. The difficult thing is probably to allow undo / redo on groups, but maybe you won't need that?
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D creator

Posted by enkonyito at Jan 3, 2021, 2:28:18 AM
Re: How to group furniture using a plug-in?
What other capabilities would you expect?
I thought it would be possible to create an empty group and then add the furniture to it separately.

Look at FurnitureController class to understand how a furniture group is created and handled.
It was the addFurnitureToGroup method that caused me problems because it is necessary to have a list of furniture and a group of furniture as a parameter.

The difficult thing is probably to allow undo / redo on groups, but maybe you won't need that?
As it is to add new light sources in the plan, the undo/redo function is not negligible.

Even though it's not very intuitive, I was able to work around the issues by using the methods provided by the FurnitureController class.
getHomeController().getPlanController().setSelectedLevel(lightLevel);
List<HomePieceOfFurniture> singleLightSource = new ArrayList<HomePieceOfFurniture>();
singleLightSource.add(lightSourceClone);
getHomeController().getFurnitureController().addFurniture(singleLightSource);
severalLightSources.add(lightSourceClone);
...
getHomeController().getFurnitureController().setSelectedFurniture(severalLightSources);
getHomeController().getFurnitureController().groupSelectedFurniture();
HomeFurnitureGroup lightSourcesGroup = (HomeFurnitureGroup) getHome().getSelectedItems().get(0);

----------------------------------------
EnkoNyito