I still have to wonder why there is a point to building a custom level editor. In HL2, you use Hammer because the geometry it creates has a specific purpose - BSP.
Now DBPro used to support BSP(I don't know if it does now and besides, the use of it comes with various licensing problems) so creating levels and objects in anything other than a 3d program seems to be unnecessary elaboration to work flow, especially when you decide to code it yourself. (Unless you don't have to work, this is literally months of time that could be focused on actually making the game.)
The DBPro limbs give the opportunity to create and plan everything within a single 3d app and export out direct x file.
If your 3d program of choice allows you to name the limbs as you wish then you are already sorted. The limb commands allow you to read the position, names, etc., as well as hide them, and then there's the magic command "Make object from limb".
There is nothing you can add to a custom level editor that you couldn't adapt to use in an existing 3d package.
For example: place a cube called "particles" as a place holder for the location of particles. Or elaborate by pre designing say, 10 different particle systems and name the limbs "part01" to "part10". When loading the level, hide the original limb and use it's name to specify the type, it's position to locate the emitter.
This works just as well for start positions, enemy positions, objects, scenery. If interactions are more complex, such as model that can be broken ar destroyed, create seperate models for the item and use a tiny cube in your level file as a placeholder.
You may end up with slightly bigger files but it will save months of messing around making a level editor when you could have had your game half finished.