as rapscaLLion said, we cant explain how to do it.. although i can *try* to point you in the right direction
I loved the dungeon seige editor. A joy to map in! Also i was thinking about creating a simular editor, but for the game im currently working on it just wasnt needed. I may do one in the future though.. who knows. Anyway, as for coding it..
This is just what i would do, there may be better ways but:
You'll wan't to store all object models (the .x's) in a directory to start with. If as you are familier with the ds editor, i'm going to refer to objects as nodes from now on ^^ Makes sense then, to make a directory in your project folder called nodes and store all the models in there. When your editor starts (initlises) first thing you will want to do is populate an array with information based on the nodes dir, ie, store all the filenames of the models in an array. You can then use that to load nodes as the user needs them, so you could say make a variable called NodePointer, and bind some keys to increase and decrease the value of that variable, everytime it does so you can delete the old object and load the new object by saying NodeStack(NodePointer) to get the filename. (theres better ways, but these are just ideas!)
The idea behind the ds editor was building around nodes.. as such the lines were very important to know where you were about to place the next node. To calculate your lines you will basically have to get the x/y/z co-ordinates of the parent node (ie, the one you are about to build off) and then start adding/subtracting half its width and height and length to x/y/z values resptivly and you should be able to calculate the 8 points needed to draw lines around it. Just draw a line a different colour to show what side you are about to build off.
You use a simular calculation to place the next node.. so assuming that dbp places all objects using their center point as a placement marker (i think it does?) and you wanted to place the child node (the new one about to be placed) to the RIGHT of the parent node you would use a calculation something like:
childX = (ParentX + (ParentWidth / 2)) + (ChildWidth / 2)
and do simular for the y and z variables. Then just place it!
I hope that all made sense, heh, im kinda tired atm. Im heading to bed now, but in the morning if you are still stuck maybe i will try to knock up a real example for you (not promising mind!

)
Good luck, i would love to see a level editor akin to the dungeon seige editor done in dbp
p4 2.4ghz, 256ddr ram, Geforce4 MX 440
Innovate, redefine, recreate whats in your mind. It isnt fate, you decide, only you can cross that line.