The essence of Arch objects and custom Arch Window

A forum dedicated to the Draft, Arch and BIM workbenches development.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Dragnalith
Posts: 13
Joined: Mon Jul 25, 2022 3:00 am

The essence of Arch objects and custom Arch Window

Post by Dragnalith »

Hello,

I am try to understand the essence of the Arch Workbench and what makes them special compared to a Part or a Body. Is there any documentation explain the core concept of Arch objects?

For instance information I mesh to know:
- What is the concept of "Component"?
- What is the relationship between an Arch object and its 3d representation? Especially when the 3d representation come from your custom object design. Does it influence the Arch object properties?
- Does the 3D representation of Arch object work the same for every object?
- How does sub object creates opening in its parent? Is it an hardcoded concept of Arch Window inside an Arch Wall?
- What makes a wall, different from a pipe, different from a window, different from a structure? Could a "recreate" the notion of wall using raw Arch objects?

Also, I am experimenting in making my own custom window design using Part objects, but even after reading the Arch Window documentation I cannot make it work:
- Just adding my object to a Arch Window should make it work?
- How does it knows the size for the opening on the wall?
- How are "Hole wire" for window elements are derive from the added objects?
- Should I use my custom objects inside window elements?
- What kind of value is expected from the Subvolume property?

Thanks!
paullee
Veteran
Posts: 5098
Joined: Wed May 04, 2016 3:58 pm

Re: The essence of Arch objects and custom Arch Window

Post by paullee »

Suggest your read a few classic tutorials first :)

https://wiki.freecadweb.org/Arch_tutorial
https://wiki.freecadweb.org/Arch_Window
https://wiki.freecadweb.org/Tutorial_for_open_windows

For Arch Window, you may post your file to let people have a look what may be the problem.

- How does it knows the size for the opening on the wall?
> To my understanding, it looks for the biggest wire to punch a hole

- How are "Hole wire" for window elements are derive from the added objects?
> To select particular wire user wish to use to punch a hole, identify in this attribute

- What kind of value is expected from the Subvolume property?
> an object which Arch Window use to 'boolean subtract' it from a WAll


Good luck
User avatar
Palmtree
Posts: 104
Joined: Wed Apr 08, 2020 5:06 am

Re: The essence of Arch objects and custom Arch Window

Post by Palmtree »

Dragnalith wrote: Mon Jul 25, 2022 6:36 am
Also, I am experimenting in making my own custom window design using Part objects, but even after reading the Arch Window documentation I cannot make it work:
- Just adding my object to a Arch Window should make it work?
- How does it knows the size for the opening on the wall?
- How are "Hole wire" for window elements are derive from the added objects?
- Should I use my custom objects inside window elements?
- What kind of value is expected from the Subvolume property?

Thanks!
I have attached one of the good tutorial (step by step - "How to Create Custom Doors and Windows") and I believe it might answer some of your questions.

https://www.youtube.com/watch?v=zXiYCdu ... gTutorials

Cheers
carlopav
Veteran
Posts: 2062
Joined: Mon Dec 31, 2018 1:49 pm
Location: Venice, Italy

Re: The essence of Arch objects and custom Arch Window

Post by carlopav »

Dragnalith wrote: Mon Jul 25, 2022 6:36 am I am try to understand the essence of the Arch Workbench and what makes them special compared to a Part or a Body. Is there any documentation explain the core concept of Arch objects?
Hello! I suggest to explore the code to understad how Arch works, its not difficult to read and It Is Always the best to get the informations from the source.
Arch objects works like Part workbench objects so they are a Little different from what you are used to in Part Design.
What they basically do is to: 1 add IFC properties to another Base object (you can literally encapsulate whatever has a shape and add IFC psets to it) 2 compute an own Shape based on the object properties (basically extruding things).
Note that unlike App::Part or PartDesign::Body, Arch objects, like Part objects do not define their own coordinate system, so every transformation you add to them using another object Will depend on its Base object Placement. So, if you dont want to use hard coded shape generation, the encapsulation with an Arch Object should Always be the last operation, so the Arch Object can contain your custom object.
I never tried to encapsulate a Part or a Part design body object, but that should be feasible, and you get the control over the IFC export.
- What is the concept of "Component"?
Arch uses a kind of composiition pattern, so every object Is derived from a Component. A Component have built in some hard coded shape generation properties like additions and subtraction.

For the other questions i dont Remember at the Moment, and i'm at the beach now, but It wont be difficult to figure out Just playing a bit with them and with IFC export.
follow my experiments on BIM modelling for architecture design
Dragnalith
Posts: 13
Joined: Mon Jul 25, 2022 3:00 am

Re: The essence of Arch objects and custom Arch Window

Post by Dragnalith »

@paullee @Palmtree @carlopav
Thank you for all the information, some concept are a bit more clear.

One thing still puzzle me about Arch Window, is it possible to take a custom object and use it as a Windows. By following the Arch Window doc, if I use a custom object as a window it does not create opening on the wall. I do not understand how the Arch Window system could guess what size should be the opening.

Also can I definie my custom window object once and instantiate several Arch Window out of it?
paullee
Veteran
Posts: 5098
Joined: Wed May 04, 2016 3:58 pm

Re: The essence of Arch objects and custom Arch Window

Post by paullee »

Probably if it is a custom object 'encapsulated' as Arch Window, it just boolean cut its shape out of the host object.

There are several ways to 'instantiate' Arch Window, Arch WB is very flexible, e.g. :

- The 'classic' way is to make a Draft Clone of the Window
- Or make a Link, smaller file size, but currently it needs add-on to support extra features (SketchArch)
- Keep 1 underlying Sketch object, and make several Window objects based on it, can have variation like door swing direction
(just select the Window object, Ctrl-C, deselect the Sketch, OK, Ctrl-V, Ctrl-V, Ctrl-V, Ctrl-V .... :)

Good luck !
User avatar
yorik
Founder
Posts: 13640
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: The essence of Arch objects and custom Arch Window

Post by yorik »

To add a bit more clarification:
  • All arch objects are arch components. An arch component is basically just a wrapper that adds IFC properties to any object, and contains some shared logic used by all other arch objects. But in itself it basically does nothing.
  • All other arch objects are based on the arch components through what is called in programming class inheritance. For ex, a wall object inherits everything a component does, and it has its own logic on top of it. So a wall is basically a component with additional functionality.
  • These specific arch objects such as walls, windows,... basically add some convenience geometry tools so you can build such objects "the way it works in other BIM apps". For example, the wall tool offer ways to conveniently build a wall geometry out of a baseline/polyline. The window tool offers ways to easily buld a window geometry out of a base sketch. And so on.
  • But that's basically all. If you find more convenient to use the wall tool to draw beams, you can. If you prefer to model your windows using PartDesign, you can. Just set the IFC Type to the correct category (wall, window,...) and you are set, you have a proper BIM object. And if your object has no IFC Type property, for ex. it comes from PartDesign, then you just turn it into an arch component and it will gain an IFC Type property.
  • To resume, one can in fact separate the concepts of "a wall object" and "a tool to build wall-like geometry". In FreeCAD they are independent from each other. Actually I have already thought of renaming the wall, windows, etc... to things like "vertical extrusion along a path", "extrusions of different contours" but it seems to me it would confuse people even more... :?
User avatar
thomas-neemann
Veteran
Posts: 11801
Joined: Wed Jan 22, 2020 6:03 pm
Location: Osnabrück DE 🇩🇪
Contact:

Re: The essence of Arch objects and custom Arch Window

Post by thomas-neemann »

yorik wrote: Thu Jul 28, 2022 10:19 am ...
In my opinion, the current situation is wonderful. "everything" is possible.

Thank you Yorik for your great work
Gruß Dipl.-Ing. (FH) Thomas Neemann

https://www.youtube.com/@thomasneemann5 ... ry=freecad
Dragnalith
Posts: 13
Joined: Mon Jul 25, 2022 3:00 am

Re: The essence of Arch objects and custom Arch Window

Post by Dragnalith »

thank you @paullee for the tips
thank you @yorik for clarifying the concept.
Actually I have already thought of renaming the wall, windows, etc... to things like "vertical extrusion along a path", "extrusions of different contours" but it seems to me it would confuse people even more
This explanation makes it very clear to understand the intention behind Arch Workbench tools. I thought the purpose of Arch objects was first the BIM semantic, then some geometry reprensation you were forced to use. But it is actually the opposite: its one way to create geometry related with architecture, and in addition it contains IFC properties than can be completely modified.
Dragnalith
Posts: 13
Joined: Mon Jul 25, 2022 3:00 am

Re: The essence of Arch objects and custom Arch Window

Post by Dragnalith »

I have some other question related to Arch objects:

- I am still unsuccessful created custom Arch Window using PartDesign objects. When I encapsulate the part as a Arch Window and insert the Arch Window inside a wall, the substracted shape is incorrect (cf screenshot and .FCstd file attached). I am not sure of what I am doing wrong.
- Is it possible to keep the high-res coordinate system synchronized with the low-res object one? (so if you move one, it moves the other one)
- When should I prefer "Draft_Move" tool instead of moving the underlying Arch objects in order to move an arch objects?

Thank you!
Attachments
screenshot_freecad.png
screenshot_freecad.png (139.05 KiB) Viewed 913 times
CustomWindowTest.FCStd
(30.89 KiB) Downloaded 16 times
Post Reply