BricsCAD property palette customization

Hello All,

Does anyone know if BricsCAD allows to customize the property palette? I have created some custom objects. I want to show information of my objects in the property panel. I found an AutoCAD ARX sample that uses interfaces IDynamicProperty and IFilterableProperty. The code compiles and runs fine in AutoCAD. But does not compile in BricsCAD.

Following is the output. My sourcecode is attached herewith. Any help is appreciated.

1>------ Build started: Project: simpledynprops (Visual Studio 2010), Configuration: V14_Debug x64 ------
1>Build started 9/8/2015 9:42:53 AM.
1>InitializeBuildStatus:
1>  Touching "x64\V14_Debug\simpledynprops.unsuccessfulbuild".
1>ClCompile:
1>  All outputs are up-to-date.
1>  CategorizedProperty.cpp
1>d:\projects\trunk\sprinkcad\propertydisplay\simpleproperty.h(37): error C2504: 'IFilterableProperty' : base class undefined
1>d:\projects\trunk\sprinkcad\propertydisplay\simpleproperty.h(76): error C2061: syntax error : identifier 'AcFilterablePropertyContext'
1>d:\projects\trunk\sprinkcad\propertydisplay\simpleproperty.h(43): error C2065: 'IID_IFilterableProperty' : undeclared identifier
1>d:\projects\trunk\sprinkcad\propertydisplay\simpleproperty.h(43): error C2061: syntax error : identifier 'IFilterableProperty'
1>d:\projects\trunk\sprinkcad\propertydisplay\simpleproperty.h(43): error C2059: syntax error : ','
1>d:\projects\trunk\sprinkcad\propertydisplay\simpleproperty.h(44): error C2143: syntax error : missing ';' before '{'
1>d:\projects\trunk\sprinkcad\propertydisplay\simpleproperty.h(44): error C2447: '{' : missing function header (old-style formal list?)
1>d:\projects\trunk\sprinkcad\propertydisplay\simpleproperty.h(44): error C2059: syntax error : '}'
1>d:\projects\trunk\sprinkcad\propertydisplay\simpleproperty.h(44): error C2059: syntax error : 'return'
1>d:\projects\trunk\sprinkcad\propertydisplay\simpleproperty.h(44): error C2059: syntax error : '}'
1>d:\projects\trunk\sprinkcad\propertydisplay\CategorizedProperty.h(34): error C2059: syntax error : 'public'
1>d:\projects\trunk\sprinkcad\propertydisplay\CategorizedProperty.h(37): error C2143: syntax error : missing ';' before '{'
1>d:\projects\trunk\sprinkcad\propertydisplay\CategorizedProperty.h(37): error C2447: '{' : missing function header (old-style formal list?)
1>CategorizedProperty.cpp(37): error C2653: 'CCategorizedProperty' : is not a class or namespace name
1>CategorizedProperty.cpp(37): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>CategorizedProperty.cpp(40): error C2550: 'CCategorizedProperty' : constructor initializer lists are only allowed on constructor definitions
1>CategorizedProperty.cpp(41): error C2065: 'm_bstrDisplayName' : undeclared identifier
1>CategorizedProperty.cpp(42): error C2065: 'm_bstrDescription' : undeclared identifier
1>CategorizedProperty.cpp(43): error C2065: 'm_valueType' : undeclared identifier
1>CategorizedProperty.cpp(45): warning C4508: 'CCategorizedProperty' : function should return a value; 'void' return type assumed
1>CategorizedProperty.cpp(48): error C2653: 'CCategorizedProperty' : is not a class or namespace name
1>CategorizedProperty.cpp(54): error C2065: 'm_propCat' : undeclared identifier
1>CategorizedProperty.cpp(58): error C2653: 'CCategorizedProperty' : is not a class or namespace name
1>CategorizedProperty.cpp(67): error C2065: 'm_bstrPropCatName' : undeclared identifier
1>CategorizedProperty.cpp(73): error C2653: 'CCategorizedProperty' : is not a class or namespace name
1>CategorizedProperty.cpp(88): error C2653: 'CCategorizedProperty' : is not a class or namespace name
1>CategorizedProperty.cpp(99): error C2065: 'm_pNotifySink' : undeclared identifier
1>CategorizedProperty.cpp(100): error C2065: 'm_pNotifySink' : undeclared identifier
1>CategorizedProperty.cpp(100): error C2227: left of '->OnChanged' must point to class/struct/union/generic type
1>          type is ''unknown-type''
1>CategorizedProperty.cpp(100): error C2355: 'this' : can only be referenced inside non-static member functions
1>  EnumProperty.cpp
1>d:\projects\trunk\sprinkcad\propertydisplay\simpleproperty.h(37): error C2504: 'IFilterableProperty' : base class undefined
1>d:\projects\trunk\sprinkcad\propertydisplay\simpleproperty.h(76): error C2061: syntax error : identifier 'AcFilterablePropertyContext'
1>d:\projects\trunk\sprinkcad\propertydisplay\simpleproperty.h(43): error C2065: 'IID_IFilterableProperty' : undeclared identifier
1>d:\projects\trunk\sprinkcad\propertydisplay\simpleproperty.h(43): error C2061: syntax error : identifier 'IFilterableProperty'
1>d:\projects\trunk\sprinkcad\propertydisplay\simpleproperty.h(43): error C2059: syntax error : ','
1>d:\projects\trunk\sprinkcad\propertydisplay\simpleproperty.h(44): error C2143: syntax error : missing ';' before '{'
1>d:\projects\trunk\sprinkcad\propertydisplay\simpleproperty.h(44): error C2447: '{' : missing function header (old-style formal list?)
1>d:\projects\trunk\sprinkcad\propertydisplay\simpleproperty.h(44): error C2059: syntax error : '}'
1>d:\projects\trunk\sprinkcad\propertydisplay\simpleproperty.h(44): error C2059: syntax error : 'return'
1>d:\projects\trunk\sprinkcad\propertydisplay\simpleproperty.h(44): error C2059: syntax error : '}'
1>d:\projects\trunk\sprinkcad\propertydisplay\categorizedproperty.h(34): error C2059: syntax error : 'public'
1>d:\projects\trunk\sprinkcad\propertydisplay\categorizedproperty.h(37): error C2143: syntax error : missing ';' before '{'
1>d:\projects\trunk\sprinkcad\propertydisplay\categorizedproperty.h(37): error C2447: '{' : missing function header (old-style formal list?)
1>d:\projects\trunk\sprinkcad\propertydisplay\EnumProperty.h(33): error C2504: 'CCategorizedProperty' : base class undefined
1>d:\projects\trunk\sprinkcad\propertydisplay\EnumProperty.h(39): error C2039: 'Lock' : is not a member of 'CEnumProperty'
1>          d:\projects\trunk\sprinkcad\propertydisplay\EnumProperty.h(32) : see declaration of 'CEnumProperty'
1>d:\projects\trunk\sprinkcad\propertydisplay\EnumProperty.h(39): error C2039: 'Unlock' : is not a member of 'CEnumProperty'
1>          d:\projects\trunk\sprinkcad\propertydisplay\EnumProperty.h(32) : see declaration of 'CEnumProperty'
1>d:\projects\trunk\sprinkcad\propertydisplay\EnumProperty.h(39): error C3861: 'InternalQueryInterface': identifier not found
1>d:\projects\trunk\sprinkcad\propertydisplay\EnumProperty.h(41): error C2065: 'CCategorizedProperty' : undeclared identifier
1>d:\projects\trunk\sprinkcad\propertydisplay\EnumProperty.h(41): error C2955: 'ATL::_CComChainData' : use of class template requires template argument list
1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlcom.h(2139) : see declaration of 'ATL::_CComChainData'
1>d:\projects\trunk\sprinkcad\propertydisplay\EnumProperty.h(41): error C2065: '_Chain' : undeclared identifier
1>EnumProperty.cpp(45): error C2065: 'm_bstrDisplayName' : undeclared identifier
1>EnumProperty.cpp(46): error C2065: 'm_bstrDescription' : undeclared identifier
1>EnumProperty.cpp(47): error C2065: 'm_valueType' : undeclared identifier
1>EnumProperty.cpp(113): error C2065: 'm_pNotifySink' : undeclared identifier
1>EnumProperty.cpp(114): error C2065: 'm_pNotifySink' : undeclared identifier
1>EnumProperty.cpp(114): error C2227: left of '->OnChanged' must point to class/struct/union/generic type
1>          type is ''unknown-type''
1>  SimpleDynProps.cpp
1>d:\projects\trunk\sprinkcad\propertydisplay\SimpleProperty.h(37): error C2504: 'IFilterableProperty' : base class undefined
1>d:\projects\trunk\sprinkcad\propertydisplay\SimpleProperty.h(76): error C2061: syntax error : identifier 'AcFilterablePropertyContext'
1>d:\projects\trunk\sprinkcad\propertydisplay\SimpleProperty.h(43): error C2065: 'IID_IFilterableProperty' : undeclared identifier
1>d:\projects\trunk\sprinkcad\propertydisplay\SimpleProperty.h(43): error C2061: syntax error : identifier 'IFilterableProperty'
1>d:\projects\trunk\sprinkcad\propertydisplay\SimpleProperty.h(43): error C2059: syntax error : ','
1>d:\projects\trunk\sprinkcad\propertydisplay\SimpleProperty.h(44): error C2143: syntax error : missing ';' before '{'
1>d:\projects\trunk\sprinkcad\propertydisplay\SimpleProperty.h(44): error C2447: '{' : missing function header (old-style formal list?)
1>d:\projects\trunk\sprinkcad\propertydisplay\SimpleProperty.h(44): error C2059: syntax error : '}'
1>d:\projects\trunk\sprinkcad\propertydisplay\SimpleProperty.h(44): error C2059: syntax error : 'return'
1>d:\projects\trunk\sprinkcad\propertydisplay\SimpleProperty.h(44): error C2059: syntax error : '}'
1>d:\projects\trunk\third_party\bricsys\brx\v14\inc\AcRx/AcRxDLinkerReactor.h(7): error C2059: syntax error : 'public'
1>d:\projects\trunk\third_party\bricsys\brx\v14\inc\AcRx/AcRxDLinkerReactor.h(8): error C2143: syntax error : missing ';' before '{'
1>d:\projects\trunk\third_party\bricsys\brx\v14\inc\AcRx/AcRxDLinkerReactor.h(8): error C2447: '{' : missing function header (old-style formal list?)
1>  SimpleProperty.cpp
1>d:\projects\trunk\sprinkcad\propertydisplay\SimpleProperty.h(37): error C2504: 'IFilterableProperty' : base class undefined
1>d:\projects\trunk\sprinkcad\propertydisplay\SimpleProperty.h(76): error C2061: syntax error : identifier 'AcFilterablePropertyContext'
1>d:\projects\trunk\sprinkcad\propertydisplay\SimpleProperty.h(43): error C2065: 'IID_IFilterableProperty' : undeclared identifier
1>d:\projects\trunk\sprinkcad\propertydisplay\SimpleProperty.h(43): error C2061: syntax error : identifier 'IFilterableProperty'
1>d:\projects\trunk\sprinkcad\propertydisplay\SimpleProperty.h(43): error C2059: syntax error : ','
1>d:\projects\trunk\sprinkcad\propertydisplay\SimpleProperty.h(44): error C2143: syntax error : missing ';' before '{'
1>d:\projects\trunk\sprinkcad\propertydisplay\SimpleProperty.h(44): error C2447: '{' : missing function header (old-style formal list?)
1>d:\projects\trunk\sprinkcad\propertydisplay\SimpleProperty.h(44): error C2059: syntax error : '}'
1>d:\projects\trunk\sprinkcad\propertydisplay\SimpleProperty.h(44): error C2059: syntax error : 'return'
1>d:\projects\trunk\sprinkcad\propertydisplay\SimpleProperty.h(44): error C2059: syntax error : '}'
1>d:\projects\trunk\third_party\bricsys\brx\v14\inc\AcDb/AcDbHandle.h(10): error C2143: syntax error : missing ';' before '{'
1>d:\projects\trunk\third_party\bricsys\brx\v14\inc\AcDb/AcDbHandle.h(10): error C2447: '{' : missing function header (old-style formal list?)
1>d:\projects\trunk\third_party\bricsys\brx\v14\inc\AcDb/AcDbObjectId.h(26): error C2146: syntax error : missing ';' before identifier 'handle'
1>d:\projects\trunk\third_party\bricsys\brx\v14\inc\AcDb/AcDbObjectId.h(26): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\projects\trunk\third_party\bricsys\brx\v14\inc\AcDb/AcDbObjectId.h(26): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\projects\trunk\third_party\bricsys\brx\v14\inc\AcDb/AcDbObjectId.h(26): warning C4183: 'handle': missing return type; assumed to be a member function returning 'int'
1>d:\projects\trunk\third_party\bricsys\brx\v14\inc\AcDb/AcDbObjectId.h(27): error C2146: syntax error : missing ';' before identifier 'nonForwardedHandle'
1>d:\projects\trunk\third_party\bricsys\brx\v14\inc\AcDb/AcDbObjectId.h(27): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\projects\trunk\third_party\bricsys\brx\v14\inc\AcDb/AcDbObjectId.h(27): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\projects\trunk\third_party\bricsys\brx\v14\inc\AcDb/AcDbObjectId.h(27): warning C4183: 'nonForwardedHandle': missing return type; assumed to be a member function returning 'int'
1>d:\projects\trunk\third_party\bricsys\brx\v14\inc\AcDb/AcDbXrefObjectId.h(10): error C2079: 'AcDbXrefObjectId::m_xrefHandle' uses undefined class 'AcDbHandle'
1>SimpleProperty.cpp(137): error C2061: syntax error : identifier 'AcFilterablePropertyContext'
1>SimpleProperty.cpp(140): error C2065: 'pbShow' : undeclared identifier
1>  Generating Code...
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:05.95
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Comments

  • Indeed, that "IFilterableProperty" interface is not yet supported by BRX ... but all other major interfaces for OPM are already supported, and used by BRX client developers.

    So you might have a look on the web for ARX / BRX samples using OPM, without IFilterableProperty.

    Besides, since V15 BRX also has a pure C++ OPM API - very straigh-tforward + much more powerful than COM based interface (and available under Linux + Mac as well).
    That is in BRX include folder under ./BrxSpecific ... but not yet in V14, so you will need V15 or above.

    Many greetings !
  • Thanks Torsten,

    Do you have any links to BRX examples that use OPM? I would appreciate it.

    Also the V15 API you mentioned. Is that something specific to BRX? Because I am developing application that needs to work in both AutoCAD and BricsCAD.

    Thanks,

  • Hi, Kedar,

    that PropertiesPanel C++ API is BricsCAD-specific ... so you will likely need to split your application code into 2 parts, for ARX + BRX (usually using #ifdef ...).

    But as mentioned, that C++ OPM API is extremely easy to use, and very powerful - both BricsCAD V15 installation, but also BRX V15 SDK contain a sample, demonstrating the full feature set + usage of that API.

    I attached some normal COM-based OPM test code, as we use it in our BRX test application, maybe it is helpful
    (but on the web, there are examples of ARX OPM usage).

    So I would suggest to have a look at our C++ OPM API, using the sample application included in V15
    (you can download + install a trial version).

    Many greetings !

    OPM-COM-Sample.rar

  • Torsten,

    Appreciate your help. I will take a look at the API. But I think we also need things to work on V14. So I won't be able to use that API.

    Thanks again,

    Kedar

  • I did not try ... (and I'm not .NET expert, prefering C++ :-) )

    But as far as I can see, the underlying interfaces are all available from BRX side, so good chances to access them from .NET, as the sample code shows.
    Simply try it :-)

    Many greetings !
This discussion has been closed.