-
Notifications
You must be signed in to change notification settings - Fork 0
User Perspective
Before starting to use the RFEM6_toolkit, a little preparation is required.
-
BHoM Installation
-
Prepare RFEM6
At this stage, the RFEM6_Toolkit is only available within the BHoM alpha version, which is only accessible internally at BH. To ensure that the RFEM6_Toolkit is available in your BHoM version, please make sure you are on the BHoM alpha version 231218_BuroHappold_BHoM_v7.0.alpha or later. However, the RFEM6_Toolkit will presumably also be available within the BHoM beta version and will be freely available to those outside of BH by the end of February or beginning of March 2024.
The installation itself is quite straightforward. If open, please close all Excel, Revit or Rhino windows and simply run the installer.
Open RFEM6. Navigate to 'Options' > 'Program Options & Settings'.
![](https://private-user-images.githubusercontent.com/104030973/291344944-4431a35b-9b07-49f4-a211-ab9110b0fb4f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNzkzODksIm5iZiI6MTczOTM3OTA4OSwicGF0aCI6Ii8xMDQwMzA5NzMvMjkxMzQ0OTQ0LTQ0MzFhMzViLTliMDctNDlmNC1hMjExLWFiOTExMGIwZmI0Zi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQxNjUxMjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02NjJhOTkxMTYyOTM5YjIyNWYwMzhlNTIxYTc0YzBjMmI2NGNjZmMyNjBhMTFmNWY4NzllNDVlODNhNWRkZWY0JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.AFquhbApS_fgIAmKczCRkYuUHIPAsdwYgYCWnar3C10)
The following window will appear. Under the 'Options' tab at the very bottom, you will find the 'WebService' section. Please select 'Start the server automatically with the application' and apply the changes.
β οΈ This step might require administrative rights on your machine.β οΈ
![](https://private-user-images.githubusercontent.com/104030973/291345089-12960917-c91b-4ee6-9378-4369dbf0ac1d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNzkzODksIm5iZiI6MTczOTM3OTA4OSwicGF0aCI6Ii8xMDQwMzA5NzMvMjkxMzQ1MDg5LTEyOTYwOTE3LWM5MWItNGVlNi05Mzc4LTQzNjlkYmYwYWMxZC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQxNjUxMjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iYWNhNjA1YTY4YzQ4MTkxMmIxYzg1YmVjM2FlM2JkNGFlMmQxYTE1YjJmNGU5YTQyMzllNmI0ZDdmMGQ5ZjQ4JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.UUrCd_mEHALrA_j2P3eup-InwmuJdjYNpkQ1L5JA_zQ)
This section aims give an overview of the RFEM6_Toolkit's current capabilities, supported objects/types, and limitations, and to potentially share some useful tips and tricks for using the RFEM6_Toolkit π‘. For a brief overview of its current stage of development, please see here.
In the following sections, the objects covered are classified into two different categories. The first category is Geometry, which includes geometrical features such as Nodes, Edges, and Members, along with the Properties necessary for defining these elements (Materials, Sections, Surface Properties), and Constraints (e.g., Nodal Supports, Line Support).
Before you get started please make sure that exactly one RFEM6 project has been opend.
For both actions, an adapter is required; in this case, the RFEM6 Adapter. When performing a push, an additional push component is needed, whereas a pull operation requires a pull component. An example of a setup for both push and pull operations is illustrated below. The geometry intended for pushing should be input into the 'objects' section of the Push component. In contrast, the Pull component requires an additional 'FilterByBHoMType' component, as well as a 'Type' component corresponding to the BHoM Type that is intended to be pulled.
To initiate the process, simply activate both the Adapter and the Push/Pull component.
![](https://private-user-images.githubusercontent.com/104030973/291633868-b72006f4-dfe7-4005-a62e-27e1f7f888f8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNzkzODksIm5iZiI6MTczOTM3OTA4OSwicGF0aCI6Ii8xMDQwMzA5NzMvMjkxNjMzODY4LWI3MjAwNmY0LWRmZTctNDAwNS1hNjJlLTI3ZTFmN2Y4ODhmOC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQxNjUxMjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03MjE5NjU0YWE2ZjkyYTdiNmY1ODc5YWIxZjQ1YjI0ZmNmMmMwZDhmYjE1ZjcyYTJmMjY5NTJkMGJhYzRhZDllJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.bqNirMhl0e7Ul21ZMVr2W_jfCWTH0A-Se5I9uWgGJV0)
When transferring points from BHoM into RFEM6, the appropriate BHoM object to use is 'Nodes.' Nodes in BHoM not only contain attributes that describe geometrical properties but also an attribute for Nodal Support. The input support is received from an object of the type 'Constraint6DOF' (see image below).
![](https://private-user-images.githubusercontent.com/104030973/291629264-0cd90f95-5376-4dc9-ad5d-bdd2932b48b8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNzkzODksIm5iZiI6MTczOTM3OTA4OSwicGF0aCI6Ii8xMDQwMzA5NzMvMjkxNjI5MjY0LTBjZDkwZjk1LTUzNzYtNGRjOS1hZDVkLWJkZDI5MzJiNDhiOC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQxNjUxMjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0xNzNjYjA3NjMyMzY0NjM2NTkzYmViODZhNDEzMGIwYjg3MjE2MDkxNzJkMzkzMzgzNGU0MTY5OGMxN2MyYjMwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.GQJVEn74Jz4zTIdpwaFytYXNdJ3qkPC5jHCtYKWJ0Nw)
The transfer of lines into RFEM6 requires the use of BHoM objects of the type 'Edge.' Similar to Nodes, Edges have an attribute representing a geometrical component, in this case, a Curve, and a support. The process of defining Edges is analogous to that of Nodes. However, it's worth noting that only polylines, circles, or arcs can be pushed into RFEM6. Generally, Lines and Polylines are preferred over other curve types.
![](https://private-user-images.githubusercontent.com/104030973/291632472-a42a2ba3-33d6-4b8d-9e5a-9ae45835d235.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNzkzODksIm5iZiI6MTczOTM3OTA4OSwicGF0aCI6Ii8xMDQwMzA5NzMvMjkxNjMyNDcyLWE0MmEyYmEzLTMzZDYtNGI4ZC05ZTVhLTlhZTQ1ODM1ZDIzNS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQxNjUxMjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jYTlhOGQ3ODQwNzgxMDMyNGQyMjg5ZmM5NTJiZWNlNDAwZGZkMmNlNmIxYjEyYWRlMzM3Njk1NDJiYzM1ODE0JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.sT_W_PtzL8sre6nwswtB1VfVBFo4t9PFjynAmhfRXEs)
When preparing a panel for pushing into RFEM6, this can be achieved by first defining its outlines. The 'property' parameter, which is an object itself, must also be defined. Currently, only properties of the 'ConstantThickness' type are supported. These properties additionally require a numerical value to define the panel thickness, as well as a material. It is possible to use a predefined BHoM dataset of different materials, although currently, only Concrete and Steel of different grades are supported.
In cases where the Panel outlines should be reinforced with Line support, Edges defined by curves matching the Panel outlines need to be established and equipped with the desired support (see here).
![](https://private-user-images.githubusercontent.com/104030973/291639732-7777242e-0283-48d5-8074-ee6c63cb24ae.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNzkzODksIm5iZiI6MTczOTM3OTA4OSwicGF0aCI6Ii8xMDQwMzA5NzMvMjkxNjM5NzMyLTc3NzcyNDJlLTAyODMtNDhkNS04MDc0LWVlNmM2M2NiMjRhZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQxNjUxMjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02MDA0OGI4N2M5MjM4YTBkM2E2MWJiYWM0MjRlNjc5NTBmNzRlNzViN2ZlYzM1Njk0MGM3NmQ4YmNhN2QxZWUwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.2M9TydjJy6QPJSYzkp04HXEvnTZScvtMsldbaJwenUc)
When pushing loads from BHoM into RFEM6, it's important to follow a specific pattern, slightly different from the standard push process, to ensure successful execution. This method can be referred to as a 'two-stage push', meaning that the push process is divided into two distinct stages. The first stage involves pushing geometric features, as discussed above. The second stage deals with pushing various Load Cases and Loads. An example of this two-stage push is illustrated in the image below. It's crucial to ensure that the first push always includes the geometry intended for RFEM6.
![](https://private-user-images.githubusercontent.com/104030973/291869540-a0e2afcb-a5f0-4630-b728-5638b7b8b36b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNzkzODksIm5iZiI6MTczOTM3OTA4OSwicGF0aCI6Ii8xMDQwMzA5NzMvMjkxODY5NTQwLWEwZTJhZmNiLWE1ZjAtNDYzMC1iNzI4LTU2MzhiN2I4YjM2Yi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQxNjUxMjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04MTUzMDcxZmJhZjhiMmNkOTY1Mzk0MGFjYjc0NDEwN2VmNmIxMWExNDYwMzE4ZjcyZjRlMGRhODM3NjRhYTkzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.d7C_oQ6QzcKeZahVUhGSIVxF57V9oF5REVY_TaJfF7w)
When pushing Loads into RFEM6, the ability to push Load Cases is a critical feature. However, it's important to note that the definition of Load Cases in BHoM and the Load Case definition in RFEM do not align perfectly, meaning there isn't a direct one-to-one relationship between them (see images below)
Below is a table showing the corresponding Load Cases between BHoM and RFEM6:
BHoM | RFEM6 | Correspondence |
---|---|---|
Dead | Permanent | Exact match |
SuperDead | Permanent/Imposed | Exact match |
Live | Imposed loads - A | First option |
Wind | Wind | Exact match |
Seismic | Seismic Action | Exact match |
Temperature | Temperature(non Fire) | Exact match |
Snow | Finnland, Iceland... | First option |
Accidental | Accidental Action | Exact match |
Prestress | Prestress | Exact match |
Note: When pushing Load Cases into RFEM, a 'Static Analysis Setting' will be created automatically. This setting is of the type 'Geometrically linear'.
When defining Point Loads for pushing into RFEM6, there are several important considerations. Firstly, RFEM6 does not support Point Loads that apply both forces and moments to the same point. However, it is possible to push both by inputting vectors into the corresponding fields of the 'PointLoad' BHoM component (refer to the image below).
Moreover, the definition of Point Loads requires a 'LoadCase' and a 'BHoMGroup' of the Node type, which hosts the Location(s) of the defined Node. As a practical tip, it can sometimes be beneficial to add only one node to each 'BHoMGroup'. This approach results in numerous 'BHoMGroups', each with a single referenced node, rather than one 'BHoMGroup' containing multiple referenced 'Nodes'. This method is demonstrated in the image below by simply grafting the element input of the 'BHoMGroup'.
![](https://private-user-images.githubusercontent.com/104030973/291903282-ede80d29-bbb9-47b4-9b43-c544d7947cf5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNzkzODksIm5iZiI6MTczOTM3OTA4OSwicGF0aCI6Ii8xMDQwMzA5NzMvMjkxOTAzMjgyLWVkZTgwZDI5LWJiYjktNDdiNC05YjQzLWM1NDRkNzk0N2NmNS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQxNjUxMjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03NTNiNTM1ODI0ZTRlM2Y3ZDM5NTlkYTRkMmFjMmQ1MDE0NDBmZDQxZmQ0M2ZkYTYwZTlkNDViNTFhMGQ0YTJjJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.ksaCAi8zgSZ4Cu9jU-DdHTrEW9-1jlK8cME-xgxRt_o)
The process of defining Bar Loads in BHoM is quite similar to that of Point Loads (refer to the image below and compare with the previous section). However, there are some nuances in the definition of force and moment vectors. Currently, RFEM6 only accepts loads oriented parallel to the X, Y, or Z axis. Therefore, if loads in different directions are required, it would be necessary to deconstruct the force/moment vector into multiple vectors that meet this orientation criterion. Similar to Point Loads, it is also not possible to push Bar Loads that have both forces and moments attached to them. Presently, only uniformly distributed loads can be pushed.
Upon closer examination of the definition of a Bar Load, which in BHoM is called 'BarUniformlyDistributedLoad', it can be observed that, as mentioned earlier, it appears very similar to the Point Load. However, it has additional inputs, of which 'axis' can currently be ignored. In contrast, the 'Projections' input allows the user to apply the load directly on the Bar in its corresponding orientation or in a projected manner (refer to the images below).
![](https://private-user-images.githubusercontent.com/104030973/291921470-108fdaa2-dd3a-486e-8570-e7029d6abf04.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNzkzODksIm5iZiI6MTczOTM3OTA4OSwicGF0aCI6Ii8xMDQwMzA5NzMvMjkxOTIxNDcwLTEwOGZkYWEyLWRkM2EtNDg2ZS04NTcwLWU3MDI5ZDZhYmYwNC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQxNjUxMjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04YzVkMmFkZWJkYmZjYTJiN2E3YTdkYmVlNTg0YTQxMjY5YWQ3MTkyNGIxNDMwMjg0N2VmN2JjODljYTJjMTJmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.S3OarSlKpAv93YXLhuaaMyBwWOKksQudvQ8HWcU8nK0)
![](https://private-user-images.githubusercontent.com/104030973/291918597-f1f382b5-a15c-4959-a576-5c6a4626ae8a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNzkzODksIm5iZiI6MTczOTM3OTA4OSwicGF0aCI6Ii8xMDQwMzA5NzMvMjkxOTE4NTk3LWYxZjM4MmI1LWExNWMtNDk1OS1hNTc2LTVjNmE0NjI2YWU4YS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQxNjUxMjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1kMGFjYWRjNjQ3YzE0YTg4YTIyZTA2MWFjMDdhMDc0ODRhYmYwN2E4ZmRmOTJmODFkMjIxZmY4ODYwY2UzMWFjJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9._sMJQ1p2RooKX2SDfIYnqiyLCd-p531jtxzDgW3AG9E)
In RFEM6, at least two types of Line Loads are defined: 'Line Loads' and 'Free Line Loads'. However, both types are always applied to at least one Panel (or a line of a panel).
The image below illustrates the definition of a Free Line Load. The corresponding BHoM component representing Line Loads (Free or non-Free) is the 'GeometricalLineLoad'. In the case of Line Load, the RFEM6_Toolkit supports trapezoidal-shaped loads (where ForceA and ForceB, or Moments, differ in magnitude). As with the Bar Load, here too, Force or Moment vectors should always be parallel to the X, Y, or Z axis. Also, Moments and Vectors should not be combined in the same 'GeometricalLineLoad'. Note that the 'GeometricalLineLoad' also requires input objects. This is a 'BHoMGroup' of type 'IAreaElement' (Note: Not Type Panel!!!), representing the Panels on which the Load will be placed. This input is not mandatory; if objects are not defined, the load will simply be defined on all panels. In general, it is recommended to always define the corresponding Panels.
![](https://private-user-images.githubusercontent.com/104030973/291954240-a9de9714-357f-4649-a040-801d5a5d7c00.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNzkzODksIm5iZiI6MTczOTM3OTA4OSwicGF0aCI6Ii8xMDQwMzA5NzMvMjkxOTU0MjQwLWE5ZGU5NzE0LTM1N2YtNDY0OS1hMDQwLTgwMWQ1YTVkN2MwMC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQxNjUxMjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lZWZmMDQ0Nzk5OWY0Yzg4YTYwNzZkZWNmMTIxNzk1ZTA1N2MxODNkZjFkNzIxNDQ4ZTc2Yjc0YjFhNTllYWMzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.4V3Zd-mHH-2XhQVSVtp0wfA8WdUQlkxdP-LZBWCNrBU)
![](https://private-user-images.githubusercontent.com/104030973/291953706-f630923d-0ab6-42d1-9db9-f8abc3ec5fc3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNzkzODksIm5iZiI6MTczOTM3OTA4OSwicGF0aCI6Ii8xMDQwMzA5NzMvMjkxOTUzNzA2LWY2MzA5MjNkLTBhYjYtNDJkMS05ZGI5LWY4YWJjM2VjNWZjMy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQxNjUxMjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05OGYzOTY4N2NhNzFmNDE4MjgyZDdjN2U3NWI1Nzc0ODMwNDYxYjk1MTgyNjAxNTI2NDQzMjY5ODVmNDQxYmRmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.l_T3FKBgN45PbMaoBn8ar9oNybzzpJmTCWhCePuULIA)
Note that in order to work with GeometricalLineLoads in combination with the RFEM6_Toolkit, it is necessary to apply a Fragment to the Line Load. Please see here for more information.
The definition of a Line Load works similarly to that of a Free Line Load. The main difference is that it is not necessary to assign any Panel to the 'GeometricalLineLoad', and it is essential that the input of the location is a line located on the outline of a Panel. Except for this, the definition of the Line Load works analogously to that of a Free Line Load, which also includes the addition of a Fragment(see here).
![](https://private-user-images.githubusercontent.com/104030973/292003734-9c3fb167-4428-4dde-98f7-535d1f6e333c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNzkzODksIm5iZiI6MTczOTM3OTA4OSwicGF0aCI6Ii8xMDQwMzA5NzMvMjkyMDAzNzM0LTljM2ZiMTY3LTQ0MjgtNGRkZS05OGY3LTUzNWQxZjZlMzMzYy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQxNjUxMjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05YTBhNTEzYWM2YThkNDRlZTM0OGE0NDQ5ZWJiYWNiNGY2ZGRlNTE5YjEzZGNlYThjZTgxNjFlOTAyNTc0NzRmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.poJ_aUq_hfxZckLLwd5ekUoGv0Jv2mXs-j8mMvhO4NQ)
Below are two examples of pushed Line Loads: one with a trapezoidal load and one without.
![](https://private-user-images.githubusercontent.com/104030973/292002074-ccc1154d-e249-4814-807f-1086cea3be15.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNzkzODksIm5iZiI6MTczOTM3OTA4OSwicGF0aCI6Ii8xMDQwMzA5NzMvMjkyMDAyMDc0LWNjYzExNTRkLWUyNDktNDgxNC04MDdmLTEwODZjZWEzYmUxNS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQxNjUxMjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iOGU2MmQ1NTlhY2I1NDZjYTBlOTg5ZGQwZTIyZDBhNmY1ZjgzNmY2MmQ5OWViMzcwNDA4NGE2OGRjYTliMWNjJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.metmerwO9NEs0Ry3yj-3qLN24MW-d55TKolIDhZbZaU)
![](https://private-user-images.githubusercontent.com/104030973/292002767-bb55074a-c96e-4f48-af8f-7f621a27b5bd.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNzkzODksIm5iZiI6MTczOTM3OTA4OSwicGF0aCI6Ii8xMDQwMzA5NzMvMjkyMDAyNzY3LWJiNTUwNzRhLWM5NmUtNGY0OC1hZjhmLTdmNjIxYTI3YjViZC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQxNjUxMjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT00ZjZiNDg5MDliNDJlNzA1YmZjZGI2OTQ3MmNlZjg3MWE2NzM3ZGVmYWRiMzYzMDEyNDJmM2JiMDg4ZjFjYWFmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.WFUT9qbnwbY7J8TkItIYiHOVEgzeycAuIZ4sgdeOq_Y)
Since BHoM does not inherently have classes that represent the concept of a free line load or distinguish between line loads and free line loads, it was necessary to introduce additional information into the 'GeometricalLineLoad'. This additional information allows for the distinction between the two types of line loads (free and non-free). This distinction has been achieved by defining a Class and Enum, which now must be added to the initial 'GeometricalLineLoad' to enable users to define both types of line loads.
An example of how this can be done is shown in the image below. In addition to the 'GeometricalLineLoad', the user will need three additional BHoM components: an 'AddFragment' component, an 'RFEM6GeometricalLineLoadTypes' component, and an Enum of type 'GeometricalLineLoadTypesEnum'. To locate these components, it is recommended to use the BHoM browsing option (press Shift+Ctrl+B).
After assembling all components as illustrated below, the resulting IBHoMObject represents the modified 'GeometricalLineLoad' and can, if modeled correctly, be pushed into RFEM6.
![](https://private-user-images.githubusercontent.com/104030973/291960479-d9a42583-c0c4-4f7c-9591-8da4c433b1e3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNzkzODksIm5iZiI6MTczOTM3OTA4OSwicGF0aCI6Ii8xMDQwMzA5NzMvMjkxOTYwNDc5LWQ5YTQyNTgzLWMwYzQtNGY3Yy05NTkxLThkYTRjNDMzYjFlMy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQxNjUxMjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0wZDQ0YTk1MzM1Y2JhYjAwOTg2MjA5OWYyNzNlZWRmN2IxNWI3NTVkNjkyMTY3ZTNhZGI4MDM1ODJhM2I2NTI2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.Jk2IDpFKFTpAgeZGvUPGlyaX79ic6IpGEDZKEPVN60c)
The definition of area loads in BHoM is accomplished using the class 'AreaUniformlyDistributedLoad'. As the name suggests, it is currently only possible to push uniformly distributed area loads into RFEM6 using the toolkit.
An example of a setup for an 'AreaUniformlyDistributedLoad' is shown in the image below. The setup appears very similar to previous load definitions. The pressure is a vector (currently, only vectors in the Z direction are supported). Load cases and objects are defined as previously seen, using a BHoMGroup of type 'IAreaElement'. The 'Axis' input can be ignored. The pushing of area loads can be performed as either projected or non-projected loads using a toggle button.
![](https://private-user-images.githubusercontent.com/104030973/292019856-cecc9845-2b7d-4bc1-90dd-ba69e82dbd7e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNzkzODksIm5iZiI6MTczOTM3OTA4OSwicGF0aCI6Ii8xMDQwMzA5NzMvMjkyMDE5ODU2LWNlY2M5ODQ1LTJiN2QtNGJjMS05MGRkLWJhNjllODJkYmQ3ZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQxNjUxMjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05ZTQ3Zjg4NjM4YjYwOTg5Mzc5NjI2NzU5YTJkODM0YTE3MWZkNmMzMjhhZWRhZGFiODljYjNlODRmY2E1NGRkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.Xjt-acYY2yPZn2e3xXghRktpM2IC_MNwv55u0_DiQh0)
![](https://private-user-images.githubusercontent.com/104030973/292018480-515ec6a0-4bc0-41bd-b098-ec1bd9ef28a8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNzkzODksIm5iZiI6MTczOTM3OTA4OSwicGF0aCI6Ii8xMDQwMzA5NzMvMjkyMDE4NDgwLTUxNWVjNmEwLTRiYzAtNDFiZC1iMDk4LWVjMWJkOWVmMjhhOC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQxNjUxMjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05ODAxMmIxOTcxYzhiYjU1YjdkYzAyMTllYTE0ZWUwNzcyYTM1M2RjYTIzMGU1N2Q2MjA3Y2VkMDZkNDcxMzliJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.8lMrDtuVDFcoI_F-jf_cdBRiZRixxEoAM2anDJDcYaw)
Ass it is easy to lose track of the differnt specific features of the differnt Load types here a table with a brief suppery.
Name/Type | M/F Mixed | X,Y,Z Parallel | Trapez. Option | UDL | Uses Fragments |
---|---|---|---|---|---|
Point Load | β | β | β | β | β |
Bar Load | β | β | β | β | β |
Line Load | β | β | β | β | β |
Area Load | β* | ββ | β | β | β |
- * : Area Load only allows Forces and does not support Moments
- β : Area Load only permits force vectors to be parallel to the Z-axis.
Since the naming conventions for different geometry classes can sometimes be confusing, this table here is designed, among other purposes, to help you keep track of them. The 'Semantic' row provides information about the content of each row, while the adjacent cells indicate the BHoM Class used to define each object, or the corresponding RFEM6 Type.
There are usually multiple ways to define objects in BHoM. For example, most objects can typically be created either by using a class constructor or an engine method. It's important to understand that all the definitions discussed here are not the absolute truth. Typically, you will have numerous options for defining different geometrical, load, or any other type of object within BHoM.
An example file, which includes the examples discussed here, will be provided in the near future!
test