Planogrammer rack and item

i'm still evaluating and trying to find functionality which will i need in final product. Planogrammer is my starting-point. I'm trying to make rack and item shaped like #725 below (could be in any direction):
Any suggestions / samples ?
Thank you very much for your time.
Davor P.

Is 725 a rectangle that is behind 724 and 726? Or are you trying to make a non-rectangular 725?

Symbol is not behind other two (none of them is - all full shown) - i’m trying to make it non-rectangular (but straight lines only) …

Is 725 a Rack or an Item?

In the sample Planogram, Item is a GoGroup, and it uses a GoRectangle for a background.
Rack and Shelf are derived from Display, and Display is a GoGroup with a GoGrid background. GoGrid is derived from GoRectangle.
So, the sample pretty much assumes everything is a rectangle.
It wouldn't be too much work, to define a varient of Item that used a GoPolygon as a background, and that would give you irregular shapes. But non-rectangular Racks would be a problem because Grids are fundamentally rectangular.
It should be both - rack and item !

Well, a lot of our customers take one of our samples and grow it into their application. However, our goal for the samples is to demostrate a particular type of diagram or graphics or node/link design or user interaction or specific features (like SubGraphs) in as few lines of codes as possible.

In our Planogram sample: Display, Rack, Shelf and Item are all 100 lines of code, counting comments and blank lines.
Can you say more about your application? I can see an application like floor plan that might need non-rectangular rooms and non-rectangular furniture, but your app appears to be more like fitting puzzle pieces together.
We have developed application for registering and tracking events
(fairs, exhibitons, assessments, ...)... Of course all details of each
exhibitor (hall, booth, equipments, orders, ...) are stored in database.
In next step we will provide graphical overview of hall(s). Each hall is
consisted of exhibiting booths and booths can have
different attachments (water, phone, internet, ...).
Some key aspects which are important to us:
- placing and arranging exhibitors and ordered attachments in booths
- rectangular and non-rectangular booth symbol with grid representing square meters
- grouping symbols (attachments in booth)
- layers (display only one kind of attachments in hall/booths)

OK. All that’s possible with GoDiagram. I’d recommend changing Item to using a GoPolygon instead of a GoRectangle. A quick sample:

In the Item constructor:
//GoRectangle back = new GoRectangle();
//back.Size = new SizeF(UnitSize*2, UnitSize*2);
GoPolygon back = new GoPolygon();
back.AddPoint(4*UnitSize, 0);
back.AddPoint(4*UnitSize, 4*UnitSize);
back.AddPoint(2*UnitSize, 4*UnitSize);
back.AddPoint(2*UnitSize, 2*UnitSize);
back.AddPoint(0, 2*UnitSize);
back.Selectable = false;
and, to get selection correct, add this:
public override bool ContainsPoint(PointF p)
GoShape back = Back;
if (back == null) return false;
return back.ContainsPoint(p);
will get you this:
I also changed all the Brushes in the pallette:
i1.Back.BrushColor = Color.LightBlue;
i1.Back.BrushColor = Color.FromArgb(128,Color.LightBlue);
to make the 50% transparent so you can see the back grid.
now, that's obviously only 1 shape, but it gives you the framework for defining any polygon-shaped booth.
Got to run right now... more later.


For the floor grid. You can implement your own grid which implements a Polygon shape. It would need to implement the IGoDragSnapper interface. Demo1 has the Swimlane class which implements IGoDragSnapper.
But, I think I would just use GoGrid and "block off" the parts of the floor that aren't part of a rectangle. You could use your polygon based Item to do that.
Demo1 has a "Polygon Drawing Tool" under the Edit menu that you can adapt to drawing the polygons for your Item class. You would probably want to constrain it so it only does 90 degree angles.
- grouping symbols (attachments in booth)
sure, not a problem.
- layers (display only one kind of attachments in hall/booths)
We support layers. I would guess you would use these for things like support poles or electrical outlets, right?
Now... you seem to be talking about "attachments" both within groups and in layers, and that won't work... you have to pick one or the other. A whole group must be added to a single layer. It's easy to hide a layer. And, if you want to hide some particular object that is attached within a group, it's easy to iterate the objects and set visible=false on particular objects within the group.
I hope this helps, let me know if you have more questions....