### IGuidCollection Interface Reference Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/interface_i_guid_collection.html Provides methods for interacting with a collection of GUIDs. Includes functions to retrieve GUIDs by index, either as a raw GUID or a string representation, and a property to get the total count of items. ```APIDOC IGuidCollection Interface Reference Represents a GUID collection. Public Member Functions: HRESULT Get ( [in] int index, [out, retval] GUID *pGUID ) Returns the GUID by index. HRESULT GetS ( [in] int index, [out, retval] BSTR *pGUID ) Same as IGuidCollection::Get, but returning GUID as a string. Properties: int Count [get] The number of items. ``` -------------------------------- ### Renga Local Server C++ Example Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/how-to-local-server.html Demonstrates how to initialize COM, create a Renga application instance as a local server, manage its visibility, open a project, and quit the process using RAII. ```cpp CoInitialize(nullptr); auto renga = Renga::CreateApplication(CLSCTX_LOCAL_SERVER); renga->PutVisible(VARIANT_TRUE); renga->OpenProject(bstr_t(argv[1])); ... // use Renga someway renga->CloseProject(VARIANT_TRUE); // Quit explicitly: renga->Quit(); CoUninitialize(); The other way is to use RAII: CoInitialize(nullptr); { auto renga = Renga::CreateApplication(CLSCTX_LOCAL_SERVER); renga->CloseProject(VARIANT_TRUE); renga->OpenProject(bstr_t(argv[1])); ... // use Renga someway renga->CloseProject(VARIANT_TRUE); } CoUninitialize(); ``` -------------------------------- ### IGuidCollection Interface Members Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/interface_i_guid_collection-members.html Lists members of the IGuidCollection interface, including Count, Get, and GetS methods. These methods are used to access GUIDs within a collection. ```APIDOC IGuidCollection Member List This is the complete list of members for [IGuidCollection](interface_i_guid_collection.html), including all inherited members. [Count](interface_i_guid_collection.html#aad462966ed963f892117056de1eba502) [IGuidCollection](interface_i_guid_collection.html) [Get](interface_i_guid_collection.html#af8b675714cfbf85489a80f345f89c5ab)([in] int index, [out, retval] GUID *pGUID) - Retrieves a GUID from the collection by its index. - Parameters: - index: The zero-based index of the GUID to retrieve. - pGUID: Output parameter that will receive the GUID. - Returns: HRESULT indicating success or failure. [IGuidCollection](interface_i_guid_collection.html) [GetS](interface_i_guid_collection.html#a3023416ef273008c0a4b4609408c26a9)([in] int index, [out, retval] BSTR *pGUID) - Retrieves a GUID as a BSTR from the collection by its index. - Parameters: - index: The zero-based index of the GUID to retrieve. - pGUID: Output parameter that will receive the GUID as a BSTR. - Returns: HRESULT indicating success or failure. ``` -------------------------------- ### Renga Local Server C# Example Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/how-to-local-server.html Shows how to instantiate the Renga application, set its visibility, open a project, and manage its lifecycle, including explicit quitting or manual COM reference release. ```csharp var renga = new Renga.Application(); // Same as plugin. .NET COM interop layer manages the difference itself. renga.Visible = true; renga.OpenProject(args[0]); ... // Use Renga someway renga.CloseProject(true); // Quit explicitly: renga.Quit(); // ...or release the COM reference manually: System.Runtime.InteropServices.Marshal.ReleaseComObject(renga); ``` -------------------------------- ### Renga API: How-To Guides Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/how-to.html This section outlines various how-to guides for the Renga API, covering plugin implementation, UI extension, model object interaction, selection mechanisms, visibility and visual style changes, geometry export, IFC/DWG/DXF export, project management, local server usage, and accessing Renga from dynamic languages. ```APIDOC How to implement a plugin: how-to-implement-a-plugin.html How to extend the user interface: how-to-extend-ui.html How to work with model object: how-to-work-with-model-object.html How to work with the selection mechanism: how-to-select.html How to change objects visibility and visual style: how-to-visibility.html How to export geometry of objects: how-to-export-geometry.html How to export to IFC, DWG/DXF: how-to-export-ifc-dwg.html How to manage Renga project: how-to-project-operations.html How to use Renga as a local server: how-to-local-server.html How to access Renga from dynamic languages: how-to-dt-language.html How to access an existing Renga instance: how-to-rot.html ``` -------------------------------- ### Get Control Visibility Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/interface_i_u_i.html Retrieves the visibility state of a control identified by a GUID. This function returns whether a control is currently visible. ```APIDOC HRESULT GetControlVisibility([in] GUID id, [out, retval] VARIANT_BOOL *pVisible) Returns the control visibility state. ``` -------------------------------- ### Renga API How-To Guides Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/pages.html Guides on implementing plugins, extending the user interface, and various aspects of working with model objects in the Renga BIM SDK. ```APIDOC API How-To: - How to implement a plugin. - How to extend the user interface. How to work with model object: - How to create object. - How to obtain object quantities. - How to work with properties. - How to work with parameters. - How to work with object reinforcement. - How to work with object parametric representation. - How to work with the selection mechanism. - How to change objects visibility and visual style. - How to export geometry of objects. - How to export to IFC, DWG/DXF. ``` -------------------------------- ### GetS Methods Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/functions_g.html Methods for retrieving string representations or collections of GUIDs, parameters, properties, and quantities. Associated with IGuidCollection, IParameterContainer, IPropertyContainer, and IQuantityContainer interfaces. ```APIDOC GetS(): IGuidCollection, IParameterContainer, IPropertyContainer, IQuantityContainer Retrieves string representations or collections of GUIDs, parameters, properties, and quantities. ``` -------------------------------- ### GetS Methods Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/functions_func_g.html Methods for retrieving string representations or collections of GUIDs, parameters, properties, and quantities. Associated with IGuidCollection, IParameterContainer, IPropertyContainer, and IQuantityContainer interfaces. ```APIDOC GetS(): IGuidCollection, IParameterContainer, IPropertyContainer, IQuantityContainer Retrieves string representations or collections of GUIDs, parameters, properties, and quantities. ``` -------------------------------- ### Plugin Installation and Dependencies (.NET) Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/how-to-implement-a-plugin.html Details the process of installing a plugin for Renga, including placing description files and necessary assemblies like `Renga.NET.PluginUtility.dll` or `Renga.NET8.PluginUtility.dll`. ```csharp // Deploy Renga.NET.PluginUtility.dll or Renga.NET8.PluginUtility.dll // Place plugin description file in Renga's installation directory. ``` -------------------------------- ### Control Visibility API Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/interface_i_u_i.html Provides methods to get and set the visibility state of controls within the Renga application. Supports both GUID and string identifiers for controls. ```APIDOC GetControlVisibility(id: GUID, pVisible: VARIANT_BOOL*) Returns the control visibility state. Parameters: id: The unique identifier of the control. pVisible: Pointer to a VARIANT_BOOL to store the visibility state. GetControlVisibilityS(id: BSTR, pVisible: VARIANT_BOOL*) Returns the control visibility state for string IDs. Parameters: id: The unique identifier of the control as a string. pVisible: Pointer to a VARIANT_BOOL to store the visibility state. SetControlVisibility(id: GUID, isVisible: VARIANT_BOOL) Allows setting the control visibility state. Parameters: id: The unique identifier of the control. isVisible: The visibility flag. SetControlVisibilityS(id: BSTR, isVisible: VARIANT_BOOL) Allows setting the control visibility state for string IDs. Parameters: id: The unique identifier of the control as a string. isVisible: The visibility flag. ``` -------------------------------- ### Renga API Documentation Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/how-to-implement-a-plugin.html Provides an overview of the Renga API, including requirements for using it and references to essential SDK components. ```APIDOC Renga API Requirements: - Installed Renga software. - Renga Software Development Kit (SDK) downloaded from [https://dl.rengabim.com/SDK/RengaSDK.zip]. - Microsoft Visual Studio 2015 or newer. Key SDK Components: - RengaCOMAPI.tlb: Renga COM Type Library for COM interop. - Renga.NET.PluginUtility.dll: Utility library for .NET Framework plugins. - Renga.NET8.PluginUtility.dll: Utility library for .NET 8 plugins. ``` -------------------------------- ### Get Methods for Collections and Properties Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/functions_g.html Provides access to various collections and properties within the SDK. Includes methods for retrieving curves, drawings, exported objects, grids, GUIDs, layers, materials, parameters, placements, properties, quantities, rebar usage, regions, and reinforcement units. ```APIDOC Get(): ICurve2DCollection, IDrawingCollection, IExportedObject3DCollection, IGridWithMaterialCollection, IGuidCollection, ILayerCollection, IMaterialLayerCollection, IParameterContainer, IPlacement3DCollection, IPropertyContainer, IQuantityContainer, IRebarUsageCollection, IRegion2DCollection, IReinforcementUnitUsageCollection - Retrieves various collections and properties. ``` ```APIDOC GetAction(): IUI#a93495f7dc7562980c07d4de4360a9011 - Retrieves an action associated with the UI. ``` ```APIDOC GetAddress(): IBuildingInfo#a35fb7bf4fea873d3140f781e7172ca91, ILandPlotInfo#a35fb7bf4fea873d3140f781e7172ca91 - Retrieves address information for building or land plot. ``` ```APIDOC GetAffectedObjectIds(): IDoorParams#ae63b42d2cc0d299e4e6279a66a913bb1, IOpeningParams#ae63b42d2cc0d299e4e6279a66a913bb1, IWindowParams#ae63b42d2cc0d299e4e6279a66a913bb1 - Retrieves IDs of affected objects for doors, openings, and windows. ``` ```APIDOC GetAngleValue(): IProperty#a0f902a436cd8a0b6ed0d0c4334c24066 - Retrieves the angle value from a property. ``` ```APIDOC GetAreaValue(): IProperty#ae270e612a1c6b41eecbf3774f0f01c57 - Retrieves the area value from a property. ``` ```APIDOC GetBaseLayer(): ILayeredMaterial#a7ccf60b966039003c043b54c61817d22 - Retrieves the base layer of a layered material. ``` ```APIDOC GetBaseline(): IBaseline2DObject#a02920d5288f607a2c1e38775e850f8a3, IBeamParams#ab50f096f36c489756646df5531b00478, IFlowSegmentPlacement#ab50f096f36c489756646df5531b00478, ILine3DParams#ab50f096f36c489756646df5531b00478, IWallContour#aed1132bf9cd3d3547ea8d56e445a9697 - Retrieves the baseline for various objects. ``` ```APIDOC GetBaselineInCS(): IBaseline2DObject#a3d9074ae92d374be390a9a96f97885de - Retrieves the baseline in a coordinate system. ``` ```APIDOC GetBeamStyle(): IBeamStyleManager#abee50f80437457baafae0ecbba052043 - Retrieves the beam style from the style manager. ``` ```APIDOC GetBeginAngle(): IArc2D#a12e42ce70c9c73529dee109a4f223fb6, IArc3D#a12e42ce70c9c73529dee109a4f223fb6 - Retrieves the starting angle of an arc. ``` ```APIDOC GetBeginCurve(): IWallContour#aefe4ce8a8354554e7934525fda205435 - Retrieves the starting curve of a wall contour. ``` ```APIDOC GetBeginGlobalAngle(): IArc2D#a17fa50dca09275cf410aa811c117dff4 - Retrieves the global starting angle of an arc. ``` ```APIDOC GetBeginPoint(): ICurve2D#a6103e8b6b27d71a73e9a5044d3a320bc, ICurve3D#a7d379674eb8fbcc3262f9593b32ba646 - Retrieves the starting point of a curve. ``` ```APIDOC GetBooleanValue(): IProperty#a0b5fe221dc27c07a1c7d40a1035082ff - Retrieves a boolean value from a property. ``` ```APIDOC GetBoolValue(): IParameter#a5bff51bcf15283671971e2a62a01ad10 - Retrieves a boolean value from a parameter. ``` ```APIDOC GetById(): IEntityCollection#aeb1721b894bd8d588191c06c907a2fba, IModelObjectCollection#a8c5555e567811e2b488e157e9f41c986 - Retrieves an entity or model object by its ID. ``` ```APIDOC GetByIndex(): IEntityCollection#a7d9401413dc65a10e5a831840f6e4d6b, IModelObjectCollection#a132231a50b4563062374b5d1ff004c67, IObjectWithPorts#aa0650275e535546c37039ebb21622343 - Retrieves an entity, model object, or port by its index. ``` ```APIDOC GetByUniqueId(): IEntityCollection#a26d90c4b006d30b134ac3b16f5172737, IModelObjectCollection#a89fbda9bf41bb3a09c98e2ac738f5a12 - Retrieves an entity or model object by its unique ID. ``` ```APIDOC GetByUniqueIdS(): IEntityCollection#a0a5c4bf6e9c76407f4339f27d6f14dd2 - Retrieves entities by their unique IDs. ``` ```APIDOC GetCellValue(): ITitleBlockInstance#a300f69584f72c88385a4453c96b25ac9 - Retrieves the value of a cell in a title block instance. ``` ```APIDOC GetCenter(): IArc2D#ae28723745559e6ca96f6ae432e3c542a, IArc3D#aa54ad2104e04fb41d5837f378b7e7d07 - Retrieves the center point of an arc. ``` -------------------------------- ### Renga Navigation and Resizable Interface Initialization Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/how-to-select.html Initializes the navigation tree for the Renga platform and sets up a resizable interface. This is crucial for the user experience, allowing dynamic content adjustments. ```javascript $(function(){initNavTree('how-to-select.html',''); initResizable(); }); ``` -------------------------------- ### Navigation Tree and Resizable Initialization Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/how-to-implement-a-plugin.html Initializes the navigation tree and resizable elements for the Renga API documentation interface. This ensures the layout is responsive and navigable. ```javascript $(function(){initNavTree('how-to-implement-a-plugin.html',''); initResizable(); }); ``` -------------------------------- ### Renga API: IModelObjectCollection Interface Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/interface_i_model_object_collection.html This section documents the IModelObjectCollection interface, which represents a collection of model objects. It provides methods to retrieve objects by their integer ID, index, or GUID unique ID. It also includes a method to get all object IDs and a property to access the total count of objects in the collection. ```APIDOC IModelObjectCollection Interface Reference Represents a model object collection. Using this interface you can obtain model objects. This interface can be obtained through IModel. Public Member Functions: HRESULT GetById([in] int id, [out, retval] IModelObject **ppModelObject) Gets an object by its identifier. HRESULT GetByIndex([in] int index, [out, retval] IModelObject **ppModelObject) Gets an object by the given index. HRESULT GetByUniqueId([in] GUID id, [out, retval] IModelObject **ppEntity) Gets an object by its unique identifier. HRESULT GetIds([out, retval] SAFEARRAY(int) *pIds) Gets the identifiers of objects in the collection. Properties: int Count [get] The number of objects in the collection. ``` -------------------------------- ### Create Action with Icon and Tooltip (C#) Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/how-to-extend-ui.html Illustrates the process of creating an action, loading an icon, setting the display name, and configuring the tooltip using the Renga API in C#. ```csharp Renga.IImage image = ui.CreateImage(); image.LoadFromFile("Icon path"); Renga.IAction action = ui.CreateAction(); action.DisplayName = "Name"; action.ToolTip = "Tooltip text"; action.Icon = image; ``` -------------------------------- ### UniqueId GUID Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/group__parameter_ids.html Defines the GUID for UniqueId. ```javascript const GUID_UniqueId = "7047e50e-e970-40b2-9b41-9207117d28c1"; ``` -------------------------------- ### TransomHeight GUID Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/group__parameter_ids.html Defines the GUID for TransomHeight. ```javascript const GUID_TransomHeight = "37e5836f-c238-4a83-8797-67ca468b76be"; ``` -------------------------------- ### Create Action with Icon and Tooltip (C++) Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/how-to-extend-ui.html Demonstrates how to create an action, load an icon from a file, set its display name, and define a tooltip using the Renga API in C++. ```cpp Renga::IImagePtr pImage = pUI->CreateImage(); pImage->LoadFromFile(L"Icon path"); Renga::IActionPtr pAction = pUI->CreateAction(); pAction->PutDisplayName(L"Name"); pAction->PutToolTip(L"Tooltip text"); pAction->PutIcon(pImage); ``` -------------------------------- ### SystemsList GUID Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/group__parameter_ids.html Defines the GUID for SystemsList. ```javascript const GUID_SystemsList = "a6f483fc-79c2-445f-9f4a-bb30c7b23b51"; ``` -------------------------------- ### Renga API Documentation Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/how-to-rot.html Provides API documentation for interacting with Renga instances, including details on the IApplication interface and methods for accessing running instances. ```APIDOC IApplication: Top-level Renga API object. Gives access to all the functionality of the API. Marshal.GetActiveObject(progId: string): Retrieves a running instance of an object. For Renga, use "Renga.Application.1" as the progId. Parameters: progId: The programmatic identifier for the Renga application. Returns: An object representing the Renga application instance, or null if no instance is found. Running Object Table (ROT) Monikers: - !Renga Application, ver: 2.6, pid: 1234 - !{C94A380A-02F2-427B-8FD3-7D6572E16556} (CLASS_ID for Renga Application) COM Functions (via DllImport): GetRunningObjectTable(reserved: int, out IRunningObjectTable prot): Retrieves a pointer to the Running Object Table (ROT). CreateBindCtx(reserved: uint, out IBindCtx ppbc): Creates a new bind context, which is needed for moniker operations. IMoniker.GetDisplayName(bindCtx: IBindCtx, pbcReserved: IntPtr, out string displayName): Retrieves the display name of a moniker. IRunningObjectTable.EnumRunning(out IEnumMoniker monikerEnumerator): Enumerates the objects currently registered in the ROT. IRunningObjectTable.GetObject(moniker: IMoniker, out object ppunkObject): Retrieves the COM object associated with a moniker. ``` -------------------------------- ### TreadDepth GUID Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/group__parameter_ids.html Defines the GUID for TreadDepth. ```javascript const GUID_TreadDepth = "4d51c427-7a09-49b9-9a04-3ae9c267d8ca"; ``` -------------------------------- ### Renga Project and Server Operations Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/pages.html Guides on managing Renga projects, using Renga as a local server, and accessing Renga from dynamic languages. ```APIDOC How to manage Renga project: - Operations related to Renga project management. How to use Renga as a local server: - Instructions for running Renga as a local server. How to access Renga from dynamic languages: - Methods for accessing Renga from dynamic programming languages. How to access an existing Renga instance: - Procedures for connecting to an already running Renga instance. ``` -------------------------------- ### UniformScaling GUID Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/group__parameter_ids.html Defines the GUID for UniformScaling. ```javascript const GUID_UniformScaling = "7ab77996-e99c-4002-8d56-959661a5f18f"; ``` -------------------------------- ### Renga API Overview and General Principles Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/pages.html Provides an overview of the Renga API and general principles for its usage. Links to detailed guides for specific functionalities. ```APIDOC Renga API Overview: - General principles of Renga API usage. - Links to detailed 'How-To' guides. General Principles: - Covers fundamental concepts for working with the Renga API. ``` -------------------------------- ### Navigation Tree and Resizable Initialization Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/how-to-extend-ui.html Initializes the navigation tree and resizable elements for the Renga API documentation interface. This ensures a proper layout and user experience. ```javascript $(function(){initNavTree('how-to-extend-ui.html',''); initResizable(); }); ``` -------------------------------- ### TopicId GUID Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/group__parameter_ids.html Defines the GUID for Topic. ```javascript const GUID_TopicId = "3b7fdf99-6c5e-4fed-8a3c-42149fe5d8b4"; ``` -------------------------------- ### ThresholdThickness GUID Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/group__parameter_ids.html Defines the GUID for ThresholdThickness. ```javascript const GUID_ThresholdThickness = "bf912d3e-5e22-44f6-b121-0a81df66aed1"; ``` -------------------------------- ### Renga API Plugin Development Guide Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/index.html Information on how to create custom plugins for Renga. This includes guidance on implementation details and best practices for extending Renga's capabilities through plugins. ```APIDOC Plugin Development: - Refer to the 'How to implement a plugin' page for a comprehensive guide on creating Renga plugins. ``` -------------------------------- ### Renga API Navigation Tree Initialization Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/search.html Initializes the navigation tree for the Renga API documentation. This includes setting up the tree structure and enabling resizable panels. ```javascript $(function(){initNavTree('search.html',''); initResizable(); }); ``` -------------------------------- ### TransomThickness GUID Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/group__parameter_ids.html Defines the GUID for TransomThickness. ```javascript const GUID_TransomThickness = "41656e7b-b6fd-4b57-ab23-59e91d61f44c"; ``` -------------------------------- ### TransomConstruction GUID Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/group__parameter_ids.html Defines the GUID for TransomConstruction. ```javascript const GUID_TransomConstruction = "gac0f7b0659a7f21505a2f7784ebfd5182"; ``` -------------------------------- ### Renga API Initialization and Search Functionality Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/how-to-select.html Initializes the Renga API search functionality and sets up the search box. This script is typically used for client-side search integration within the Renga platform. ```javascript var searchBox = new SearchBox("searchBox", "search/",'.html'); ``` -------------------------------- ### Initialize Search Box Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/how-to-implement-a-plugin.html Initializes the search box functionality for the Renga API documentation. This script is typically used to set up the search interface. ```javascript var searchBox = new SearchBox("searchBox", "search/",".html"); ``` -------------------------------- ### StairThickness GUID Source: https://github.com/jackdainzh/rengabim-sdk/blob/main/Docs/group__parameter_ids.html Defines the GUID for StairThickness. ```javascript const GUID_StairThickness = "b4a21cc1-09fd-48dc-846e-a14ec5c06fdc"; ```