[quote user="Len Tillman"]I have had some problems making sure the commands accept only shape or complex shape files[/quote]
I assume that files is a typo.
You've correctly set your CreateLocateCriteria to let the user select only shapes and complex shapes. What problems are you seeing?
Put some Debug.Print "message" lines in your primitive command so you can see what it's doing.
[quote user="Len Tillman"]Public Property Let Points(ByRef Lpoint As Point3d, ByRef Hpoint As Point3d)
Lpoint = pLow
Hpoint = pHigh
End Property[/quote]
A Let Property passes information into your class. You pass one value at a time using the assignment operator '='. That's so you can do something like this...
oMyClass.LowPoint = point
It's not clear how you would assign two values as you want...
oMyClass.Points = point1 ... what goes here?
Write two separate properties, one for the high point and one for the low point. Also, I would expect the assignments to be the other way around...
Public Property Let HighPoint (ByRef Hpoint As Point3d) pHigh = Hpoint End Property Public Property Let LowPoint (ByRef Lpoint As Point3d) pLow = Lpoint End Property
While you're at it, write the Get Property...
Public Property Get HighPoint () As Point3d HighPoint = pHigh End Property Public Property Get LowPoint () As Point3d LowPoint = pLow End Property