Discussion: Arch generators - naming
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
Discussion: Arch generators - naming
As we discussed already in other threads, everybody around here seems to agree it would be a good idea to separate the arch tools from their semantics. That means, the way you build a wall, by giving a thickness to a baseline then extruding it upwards, would not be called a wall anymore. This is because you can use that tool not only to build a wall, but to build just any other BIM object that would be practical to build that way: A beam, for example.
This is exactly how the IFC format is meant to be used (any kind of shape can be any BIM object), and it already works like that in FreeCAD too: After you build a wall, you can change its type to anything else.
So what I'm proposing here is twofold:
1) In Arch workbench: tools that have the same name as a building element, for ex. wall, are renamed to something else that is not a building element.
2) In BIM workbench, we will still have a wall tool, a beam tool, a window tool, etc... This is important so users coming from other classical BIM paradigms don't feel lost. But this would only be a thin layer on top of the Arch tools. Underneath, thr BIM tool would use the corresponding, appropriate arch tool.
So this is the list I'm thinking of, and I'd be glad to get some help to find better names. The idea is that the new names talk only about the geometry, and not about buildings:
Axis -> Axis (no change)
Building -> removed (it's a buildingpart)
BuildingPart -> Container? ArchPart? Stays like that?
Equipment -> Equipment (no change)? Or something else? The word "Equipment" is not part of IFC, so it could stay...
Fence -> ? no idea... Could stay like that, but if we're going to use it for curtain walls too, might be a better name...
Floor -> removed (it's a buildingpart)
Frame -> Frame (no change)
Panel -> Panel (no change)? Or something else? It could be merged with something else, but it has this additional code to produce waves..
Pipe -> Pipe (no change)
Pipe connector -> Pipe connector (no change)
Rebar -> ?? I can't think of anything else...
Roof -> Sloped extrusion?
Site -> ??
Space -> ??
Stairs -> ??
Structure -> Structure (no change)? Profile extrusion?
Wall -> Linear extrusion?
Window -> Embedded? Embeddable?
In the BIM workbench, on the contrary, we should have more and more specific tools, ex:
Wall
Curtain Wall
Column
Beam
Slab
Truss
Beam system
Site
Building
Level/Floor/Storey
Window
Door
Furniture/Appliance
Stairs
Railing
In the future we could think of even wilder things, such as having only one single BIM object class, and be able to change its geometry generator above on-the-fly...
This is exactly how the IFC format is meant to be used (any kind of shape can be any BIM object), and it already works like that in FreeCAD too: After you build a wall, you can change its type to anything else.
So what I'm proposing here is twofold:
1) In Arch workbench: tools that have the same name as a building element, for ex. wall, are renamed to something else that is not a building element.
2) In BIM workbench, we will still have a wall tool, a beam tool, a window tool, etc... This is important so users coming from other classical BIM paradigms don't feel lost. But this would only be a thin layer on top of the Arch tools. Underneath, thr BIM tool would use the corresponding, appropriate arch tool.
So this is the list I'm thinking of, and I'd be glad to get some help to find better names. The idea is that the new names talk only about the geometry, and not about buildings:
Axis -> Axis (no change)
Building -> removed (it's a buildingpart)
BuildingPart -> Container? ArchPart? Stays like that?
Equipment -> Equipment (no change)? Or something else? The word "Equipment" is not part of IFC, so it could stay...
Fence -> ? no idea... Could stay like that, but if we're going to use it for curtain walls too, might be a better name...
Floor -> removed (it's a buildingpart)
Frame -> Frame (no change)
Panel -> Panel (no change)? Or something else? It could be merged with something else, but it has this additional code to produce waves..
Pipe -> Pipe (no change)
Pipe connector -> Pipe connector (no change)
Rebar -> ?? I can't think of anything else...
Roof -> Sloped extrusion?
Site -> ??
Space -> ??
Stairs -> ??
Structure -> Structure (no change)? Profile extrusion?
Wall -> Linear extrusion?
Window -> Embedded? Embeddable?
In the BIM workbench, on the contrary, we should have more and more specific tools, ex:
Wall
Curtain Wall
Column
Beam
Slab
Truss
Beam system
Site
Building
Level/Floor/Storey
Window
Door
Furniture/Appliance
Stairs
Railing
In the future we could think of even wilder things, such as having only one single BIM object class, and be able to change its geometry generator above on-the-fly...
Re: Discussion: Arch generators - naming
My suggestions:
Rebar ->Cylinbar
Roof -> covering
Site -> ?? Area, Sector, square, block
Space -> ?? volume,
Stairs -> ?? zigzag, Patern, waveform, steps
Wall -> Partition, VertPart
Window -> Hole, cavity, gap, outlet
Rebar ->Cylinbar
Roof -> covering
Site -> ?? Area, Sector, square, block
Space -> ?? volume,
Stairs -> ?? zigzag, Patern, waveform, steps
Wall -> Partition, VertPart
Window -> Hole, cavity, gap, outlet
::bitacovir::
==================
One must be absolutely modern.
Arthur Rimbaud (A Season in Hell -1873)
Canal Youtube Grupo Telegram de FreeCAD Español
My personal web site
My GitHub repository
Mini Airflow Tunnel Project
==================
One must be absolutely modern.
Arthur Rimbaud (A Season in Hell -1873)
Canal Youtube Grupo Telegram de FreeCAD Español
My personal web site
My GitHub repository
Mini Airflow Tunnel Project
Re: Discussion: Arch generators - naming
I don't know how abstract the Arch element types can/should be.
If you accept that a fence and a curtain wall share characteristics, then it may make sense to include windows, frames and panels in that same category.
An embeddable part could be an abstract container. It may contain a window, but also a fence (grating) or nothing. It may or may not create a hole in the hosting element.
If you accept that a fence and a curtain wall share characteristics, then it may make sense to include windows, frames and panels in that same category.
An embeddable part could be an abstract container. It may contain a window, but also a fence (grating) or nothing. It may or may not create a hole in the hosting element.
Re: Discussion: Arch generators - naming
This is a complicated question actually. How do you describe a stairs geometry without referring to the concept of a stair... It would take great extent to explain what you are trying to do without saying the word "stairs", when actually saying "stairs" would make everybody immediately understand what you are doing.
Maybe some should actually keep their current word...
Maybe some should actually keep their current word...
Re: Discussion: Arch generators - naming
some spare thoughts from me too:
Drawing aids/Groups/whatever:
Site
Arch Part (or building part, floor, can contain also the site?)
Space
Axis
Creation tools:
EXTRUSION:
Profile extrusion (Wall - what about when more wall are joint? should we add a fusion tool? how do we deal with nested objs)
Face extrusion (Wall from face, like trimex, but only the extrusion part)
Vertical profile extrusion (Pillar (same as path extrusion, but with less options))
Path Profile extrusion (Pipe, beam, frame(?))
Sloped extrusion (Roof, but simpler than the actual roof creation tool, maybe it could just produce an inclined extruded plane from a flat face and inclination)
ARRAYS:
Path Multi Array - Baseline multi array (Fence, curtain wall, maybe if we envision the behaviour of that tool in the future, that would be helpful for the name)
Face array, divide face, divide surface, surface subdivision (Curtain wall on face? a tool that generates rectangular(?) grid on a face, so the grid can be used by profile extrusion(?))
CONVERT Part/PartDesign/sheetmetal object to "arch something"?:
- so we dont have to duplicate part primitive creation (cube, cone, sphere, revolution, subtraction, ), subtraction, etc
- so we can assign ifc properties to other wb created objects, or to arch created ones.
Draft modifiers that could have a special behaviour on arch objects:
Fillet (create parametric curve element on pipes and beams joints)
Trimex (?)
Draft Edit (can be improved to handle more parameters editing, for ex. could improve the rotation of extruded solid along their extrusion axis)
Arch Components (tool that could keep the name because they produce a too peculiar object and first of all they are not used i think to produce other geometry than the one they are expected to generate):
Profile importer (import profiles to be used by the tools)
Stair (stairs)
Window or embedded component (Windows- ?if embeddable/embedded, what is it supposed to be other than a window/door?)
Panel tools (Panel, Automatic Light Gauge Steel Frame Creator And Panelizer, wow!)
Component (Equipment, Furniture, whatever is standalone and cloned inside an arch model)
Drawing aids/Groups/whatever:
Site
Arch Part (or building part, floor, can contain also the site?)
Space
Axis
Creation tools:
EXTRUSION:
Profile extrusion (Wall - what about when more wall are joint? should we add a fusion tool? how do we deal with nested objs)
Face extrusion (Wall from face, like trimex, but only the extrusion part)
Vertical profile extrusion (Pillar (same as path extrusion, but with less options))
Path Profile extrusion (Pipe, beam, frame(?))
Sloped extrusion (Roof, but simpler than the actual roof creation tool, maybe it could just produce an inclined extruded plane from a flat face and inclination)
ARRAYS:
Path Multi Array - Baseline multi array (Fence, curtain wall, maybe if we envision the behaviour of that tool in the future, that would be helpful for the name)
Face array, divide face, divide surface, surface subdivision (Curtain wall on face? a tool that generates rectangular(?) grid on a face, so the grid can be used by profile extrusion(?))
CONVERT Part/PartDesign/sheetmetal object to "arch something"?:
- so we dont have to duplicate part primitive creation (cube, cone, sphere, revolution, subtraction, ), subtraction, etc
- so we can assign ifc properties to other wb created objects, or to arch created ones.
Draft modifiers that could have a special behaviour on arch objects:
Fillet (create parametric curve element on pipes and beams joints)
Trimex (?)
Draft Edit (can be improved to handle more parameters editing, for ex. could improve the rotation of extruded solid along their extrusion axis)
Arch Components (tool that could keep the name because they produce a too peculiar object and first of all they are not used i think to produce other geometry than the one they are expected to generate):
Profile importer (import profiles to be used by the tools)
Stair (stairs)
Window or embedded component (Windows- ?if embeddable/embedded, what is it supposed to be other than a window/door?)
Panel tools (Panel, Automatic Light Gauge Steel Frame Creator And Panelizer, wow!)
Component (Equipment, Furniture, whatever is standalone and cloned inside an arch model)
follow my experiments on BIM modelling for architecture design
Re: Discussion: Arch generators - naming
I'm not a big friend of searching for general names in order to make functions globally usable. In some cases it seems sensible - i can imagine immediately what multi path array does - but in others distinguishability is lost.
Let's take the wall as an example: We have already an Extrude in Part and a Pad in PartDesign and it is not always easy for newbies to distinguish between them. Creating a wall from a line is very intuitive and it doesn't need renaming to be used in other workbenches. It merely needs examples of convincing use cases.
Arch names follow rather describing the result - a wall, a window, a roof - than the process like in other workbenches. There is nothing wrong with keeping this.
Let's take the wall as an example: We have already an Extrude in Part and a Pad in PartDesign and it is not always easy for newbies to distinguish between them. Creating a wall from a line is very intuitive and it doesn't need renaming to be used in other workbenches. It merely needs examples of convincing use cases.
Arch names follow rather describing the result - a wall, a window, a roof - than the process like in other workbenches. There is nothing wrong with keeping this.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
Re: Discussion: Arch generators - naming
That's the main reason why we think it might need to change: You can now use the wall tool to build a window, or a beam, or just anything else. In some other BIM apps, you MUST use the wall tool to build a wall, which brings a lot of problems when importing models from other apps. This is not a problem anymore in FreeCAD, but maybe the naming should change to reflect that and not have people still think only the wall tool can be used to make walls.
But I'm not sure about this either...
Re: Discussion: Arch generators - naming
How about a 'Hybrid Approach' without Renaming anything to confuse / complicate users?yorik wrote: ↑Wed May 08, 2019 4:21 pm As we discussed already in other threads, everybody around here seems to agree it would be a good idea to separate the arch tools from their semantics. That means, the way you build a wall, by giving a thickness to a baseline then extruding it upwards, would not be called a wall anymore. This is because you can use that tool not only to build a wall, but to build just any other BIM object that would be practical to build that way: A beam, for example.
Stairs -> ??
Currently ArchStairs produce a hybrid of objects:-
- A compound of Stairs (flights), 'Multi-Segment' Landing
- A pair of (Part::Feature) Wires Objects representing the Railing path - ArchStairs is already a 'Profile Generator' of some kind
- A pair of ArchPipe based on the Wires Objects
- Default ArchStairs Still produce 'BIM Object' of ArchStairs
- Added StructureProfileOrBimObject property - Then user if desirable can select whether to produce a 'Profile' (Part::Feature) also, a Profile + Stairs BIM Object, or BIM Object (or just 'extrusion')...
- Then, user can use the Profile to do custom extrusion as needed...
- Maybe the 'Icon' in the Model Tree can become a 'Wireframe' / ' Profile' of stairs if only 'Profile' output is selected for the object by user
- Tried to use Draft.MakeSketch for the profile, but find at one occasion the sketch is in right disposition, but another occasion wrong disposition
- Then user can further edit the Sketch profile - the profile generated by the ArchStairs tool - before further extrusion
https://forum.freecadweb.org/viewtopic.php?f=23&t=34106
A 'mock-up':-
- Attachments
-
- ArchStairs.py
- (71.35 KiB) Downloaded 37 times
-
- Test_ ArchStairs_ code revision test_ 18_ SimpleStairs_StructureProfile.fcstd
- (128.11 KiB) Downloaded 32 times
Last edited by paullee on Mon May 20, 2019 6:08 pm, edited 3 times in total.
Re: Discussion: Arch generators - naming
Another test ...
Re: Discussion: Arch generators - naming
My two cents...
I think that there should be "modeling tools" and "information tools".
Modeling tools include:
- Vector drafting & linework (wire, line, arc... names remain the same)
- 3D modeling (edge extrude, face extrude, cut, union, fillet ... names remain the same)
- 2D & 3D modifiers: Move, Rotate, Scale, Copy, Array, Clone, Offset ...
These names are industry standard CAD / 3D names.
Information tools include:
- Project (MapConversion, etc)
- Site, Building, BuildingStorey (spatial containers)
- Element (Wall, Slab, Column ...)
- Relationships
- Material
These names are taken as closely as possible from IFC and bsDD. These information tools do _not_ modify geometry. They only add IFC data and relationships.
Finally, there are "presets": Wall, Stair, Column, Door, Window. The presets are preset parametric 2D profiles or parametric 3D objects that already have their information filled out that is also perhaps semi-parametric (e.g. height dimension can be parametric). These names can be whatever that is most sensible. It is perfectly OK to have a "Wall" preset and an "IfcWall" information button, as long as the icons are different and they are distinguished in the UI. Note that the preset "generates" a geometry and automatically assigns an information type, depending on the preset. E.g. a stair preset will generate a stair profile, extrude it, and then add BIM information of IfcStair.
This approach allows users who want to quickly throw something together to easily click a bunch of presets and get the job done. If they then change their mind, they can change the BIM information type to something else, or they can simply modify the underlying geometry, or swap the geometry out to something else completely.
This adds flexibility of both worlds
Hope it helps
I think that there should be "modeling tools" and "information tools".
Modeling tools include:
- Vector drafting & linework (wire, line, arc... names remain the same)
- 3D modeling (edge extrude, face extrude, cut, union, fillet ... names remain the same)
- 2D & 3D modifiers: Move, Rotate, Scale, Copy, Array, Clone, Offset ...
These names are industry standard CAD / 3D names.
Information tools include:
- Project (MapConversion, etc)
- Site, Building, BuildingStorey (spatial containers)
- Element (Wall, Slab, Column ...)
- Relationships
- Material
These names are taken as closely as possible from IFC and bsDD. These information tools do _not_ modify geometry. They only add IFC data and relationships.
Finally, there are "presets": Wall, Stair, Column, Door, Window. The presets are preset parametric 2D profiles or parametric 3D objects that already have their information filled out that is also perhaps semi-parametric (e.g. height dimension can be parametric). These names can be whatever that is most sensible. It is perfectly OK to have a "Wall" preset and an "IfcWall" information button, as long as the icons are different and they are distinguished in the UI. Note that the preset "generates" a geometry and automatically assigns an information type, depending on the preset. E.g. a stair preset will generate a stair profile, extrude it, and then add BIM information of IfcStair.
This approach allows users who want to quickly throw something together to easily click a bunch of presets and get the job done. If they then change their mind, they can change the BIM information type to something else, or they can simply modify the underlying geometry, or swap the geometry out to something else completely.
This adds flexibility of both worlds
Hope it helps
I also blog about 3D rendering, architecture, software and other on thinkMoult.com. RSS / Atom feed available for your convenience.