ranjian0 / building_tools Goto Github PK
View Code? Open in Web Editor NEWBuilding generation addon for blender
Home Page: https://ranjian0.github.io/building_tools/
License: MIT License
Building generation addon for blender
Home Page: https://ranjian0.github.io/building_tools/
License: MIT License
Tried to install
Modules Installed () from '/home/nafergo/Downloads/building_tool-0.9.2-alpha2.zip' into '/home/nafergo/.config/blender/2.80/scripts/addons'
but but doesn't show in addons list...
This issue is the base for work to begin on improving fill types. We would like to add a couple more fill types and also provide a set of quick presets for common fill types and/or combinations of fill types. The image references below should act as a guide.
While there is no clear cut plan, the above images give a good indication of the direction we should be heading. New issues concerning this should refer here.
Task List:
Adding roof to building with multiface floorplan fails.
Regression from #27
Reported from #24.
Trying to add elements such as windows/doors to faces that are not quads throws NoneType
error.
Ideally, this should fail silently or at least warn the user about the improper context/selection.
The railing module has quite a number of pain points. I have seriously thought about just completely removing it. This issue is a list of things I would like to change/improve in the module but due to time constraints or burnout have not been able to tackle.
These issues are not bugs in and of themselves, but they are tricky to solve, make the module less usable and are usually the source of most bugs
Its Ugly. All railings are blocky. My plan is to have some set of profiles that a user can select.
A lot of z-buffer fighting occurs in the geometry made by railing module. Adding margins everywhere this happens makes the code horrific. Look out for variables such as pad or pinch in the module.
When using the fill type posts, there is a lot of non-uniformity in how the posts are distributed when the face being operated has convex vertices. The reason for this deserves an entire blog post but in short, I don't like it.
The expand walls property. This is a hack solution to a problem closely related to No. 3.
Again, I don't like it.
if it supports creating vortex groups for each component of the building, it could be more convenient for material setting. Creating vortex groups manually is very slow for each component after completion of the building.
Add detailed wiki to help users with:
Not Implemented Yet.
1. When balcony is created on slab face, small gap is left between the railing and building walls.
2.The top rails intersect with the corner posts. May cause z-buffer fighting.
3. The open option for balcony railing does nothing, This option is meant to facilitate creating balconies on the corners of buildings. I suggest removing the option in favour of a better workflow.
Hi! the tool is amazing! is not perfect geometry for games, but can be cleanned, the most stressfull Glitches I've found until now of all are:
adding windows zero them out allows to generate the base for a general layout for later to be filled in. same with the door, that can be spaced in any place and even add windows thanks to the planes it creates: all of that requires cleaning due to the vertex and edges created. but I just wish for this tools to get stabilized so they can be used as a rule of thumb when making generic Buildings.
I Rate this Tools 3/5 CRASHES - I have to save the file every time I want to use one of it features and it only serves for a base for working on top. But I look forward to any improvements done to it!
Plan to port for blender 2.8:
:: Should probably port before working on more features.
Regression from #31
Modifying size and offset property in stairs not working.
And when changing version "version": (1, 0, 0, 0)," then only Create Floorplan is available after creating floorplan.
new feature from the discussion in #24
Steps to reproduce:
Note: This happens only when some faces are selected.
Regression from #31. Absolute values for size offset.
I am yet to investigate this further, but the problem seems to be how we determine edge pairs with the shortest distance between them.
Ideally, I'd rather have the outset property create weird geometry if set too high to warn the user. If this proves to be too tricky, then catch the IndexError are return.
Regression from #31
The window property for FillType
looks as follows:
The user has to click inorder to check what is the current setting as the name only states what the property is called and not what it is set to.
This is however not the case for railing fill types.
In this case, the user only sees what the property is set to, but not what the property is called.
Both cases demonstrate a clear inconsistency in how users interact with the addon, and what expectations they should have when exploring similar tools.
When adding an arch, it should be taken into account the height of the current element (door/window) and the height of the arch in relation to the size of the parent face.
Not really a bug, but a solution is necessary to prevent users having to tweak settings every time they add and arch to an existing element.
I am using Blender 2.81 and when I use this to create the building it works fine. But when I use the inboard Material Tools it messes up. I am in Edit mode, I select the "Walls" from the scroll list, then I click the Select, then it selects the mesh, I then select my texture, THIS is the texture I am using. I select it, then I click assign. But it doesn't assign the texture. This works with color and emission textures but not with image textures??? How can I fix this?
This addon looks realy great :)
Do you have any plans for expanding roofs? And custom roof types?
Any plans for arched windows and doors?
Sorry to submit so manu issues but I'm really liking your addon :) planning to use it :)
Task List:
References:
Straight Skeleton Implementation
Petr Felkel and Stepan Obdrzalek
Automatically Generating Roof Models from Building Footprints
R. G. Laycock | [email protected]
A. M. Day | [email protected]
This issue should track improvements and additions to the roof module and have the following images as guides.
Some issues that may need to be addressed first:
gable
is a good example of this.dormer
roof in the first image is an example of this. Should the extra elements belong in the roof module or in another?location: <unknown location>:-1
Error: Traceback (most recent call last):
File "/media/ranjian0/Backup/Workspace/projects/building_tool/core/multigroup/multigroup_ops.py", line 22, in execute
return Multigroup.build(self.props)
File "/media/ranjian0/Backup/Workspace/projects/building_tool/core/multigroup/multigroup.py", line 16, in build
if create_multigroup(bm, faces, props):
File "/media/ranjian0/Backup/Workspace/projects/building_tool/core/multigroup/multigroup_types.py", line 46, in create_multigroup
doors, windows, arch = create_multigroup_frame(bm, face, prop)
File "/media/ranjian0/Backup/Workspace/projects/building_tool/core/multigroup/multigroup_types.py", line 109, in create_multigroup_frame
add_faces_to_map(bm, frame_faces, FaceMap.FRAME)
File "/media/ranjian0/Backup/Workspace/projects/building_tool/utils/util_material.py", line 89, in add_faces_to_map
face[face_map] = group_index
ReferenceError: BMesh data of type BMFace has been removed
location: <unknown location>:-1
Error: Traceback (most recent call last):
File "/media/ranjian0/Backup/Workspace/projects/building_tool/core/multigroup/multigroup_ops.py", line 22, in execute
return Multigroup.build(self.props)
File "/media/ranjian0/Backup/Workspace/projects/building_tool/core/multigroup/multigroup.py", line 16, in build
if create_multigroup(bm, faces, props):
File "/media/ranjian0/Backup/Workspace/projects/building_tool/core/multigroup/multigroup_types.py", line 46, in create_multigroup
doors, windows, arch = create_multigroup_frame(bm, face, prop)
File "/media/ranjian0/Backup/Workspace/projects/building_tool/core/multigroup/multigroup_types.py", line 78, in create_multigroup_frame
door_faces, window_faces, frame_faces = make_multigroup_insets(bm, face, prop.size_offset.size, prop.frame_thickness, dws)
File "/media/ranjian0/Backup/Workspace/projects/building_tool/core/multigroup/multigroup_types.py", line 162, in make_multigroup_insets
dw_count = count(components)
NameError: name 'components' is not defined
location: <unknown location>:-1
I can't seem to create several windows in the same wall that look the same. It would be great to create several windows like it does for building levels.
Right now, I create one after the other and because the width seems to be defined % it's not easy to get exactly the same width for a bunch of windows.
Is it possible to have a square layout but with empty squared center?
A layout with a patio.
It may be useful to make fill types a separate tool to address certain situations esp. when using the Multigroup
operator.
Consider this first situation:
Adding Panels
as the fill type leaves the window blank with no possibility of the user doing anything further with the help of the addon.
For fill types like Louver
that work on both doors and windows, there is still a clear mismatch of uniformity. While this could be fixed with a density
option, it takes away finer control from the user.
This situation also translates into the Glass Panes
fill type.
Property Values for these two last situations can only be natural for either the door/window but not both.
This issue can be done in conjunction with #39.
support operations on n-gon with rectangular shape.
It seems I overreacted by discontinuing support for 2.79. There was so much hype for 2.80, it did not occur to me that some users would want to remain in 2.79.
Fortunately, I have discovered myself that there are perfectly valid reasons why some users are in 2.79 still, and I feel obligated to provide support for them. The addon thread on Blender Artists has quite a few.
The 2.79 addon will be maintained in a separate branch stable-v2.79
. Although there are plenty of resources on how keep blender python code backwards compatible, I prefer to avoid all that mess and keep the code separate.
The original 2.80 port issue #2, is a nice guide for this.
I downloaded the current and past files and none of them work in 2.80 or 2.79.
I tried importing by going to preferences and importing the .zip, I tried extracting and putting it in the addons folder in the blender files, etc...
I get the same issue as #10 and I tried importing the v0.9.3. release into blender 2.80 but it didnt work
Face maps for door and window frames not consistent after #41
Size and Offset behaviours for both balcony and stairs diverge from the rest of the addon which may be problematic for users.
In the image below, geometry has been generated in the wrong direction, stairs are now inside the building.
Given the complexity of both of these elements, a better solution is required to keep the tools consistent and intuitive.
The addon does not have checks to prevent users from entering invalid property values.
Will need to prevent this with a combination of UI options and code checks.
This is a list of the addon elements and whether the checks have been made.
Hello, under what license is this project released under ? I would like to learn Blender scripting from it. Thank-you.
Traceback (most recent call last):
File "/media/ranjian0/Backup/Workspace/projects/building_tool/core/multigroup/multigroup_ops.py", line 22, in execute
return Multigroup.build(self.props)
File "/media/ranjian0/Backup/Workspace/projects/building_tool/core/multigroup/multigroup.py", line 16, in build
if create_multigroup(bm, faces, props):
File "/media/ranjian0/Backup/Workspace/projects/building_tool/core/multigroup/multigroup_types.py", line 46, in create_multigroup
doors, windows, arch = create_multigroup_frame(bm, face, prop)
File "/media/ranjian0/Backup/Workspace/projects/building_tool/core/multigroup/multigroup_types.py", line 78, in create_multigroup_frame
door_faces, window_faces, frame_faces = make_multigroup_insets(bm, face, prop.size_offset.size, prop.frame_thickness, dws)
File "/media/ranjian0/Backup/Workspace/projects/building_tool/core/multigroup/multigroup_types.py", line 157, in make_multigroup_insets
ws, fs = make_window_insets(bm, f, dw['count'], window_height, dw_width, frame_thickness, i==0, i==len(dws)-1)
File "/media/ranjian0/Backup/Workspace/projects/building_tool/core/multigroup/multigroup_types.py", line 183, in make_window_insets
face = subdivide_face_vertically(bm, face, [face_height - (window_height+2*frame_thickness), window_height+2*frame_thickness])[1]
IndexError: list index out of range
location: <unknown location>:-1
location: <unknown location>:-1
Error: Traceback (most recent call last):
File "/media/ranjian0/Backup/Workspace/projects/building_tool/core/multigroup/multigroup_ops.py", line 22, in execute
return Multigroup.build(self.props)
File "/media/ranjian0/Backup/Workspace/projects/building_tool/core/multigroup/multigroup.py", line 16, in build
if create_multigroup(bm, faces, props):
File "/media/ranjian0/Backup/Workspace/projects/building_tool/core/multigroup/multigroup_types.py", line 46, in create_multigroup
doors, windows, arch = create_multigroup_frame(bm, face, prop)
File "/media/ranjian0/Backup/Workspace/projects/building_tool/core/multigroup/multigroup_types.py", line 78, in create_multigroup_frame
door_faces, window_faces, frame_faces = make_multigroup_insets(bm, face, prop.size_offset.size, prop.frame_thickness, dws)
File "/media/ranjian0/Backup/Workspace/projects/building_tool/core/multigroup/multigroup_types.py", line 157, in make_multigroup_insets
ws, fs = make_window_insets(bm, f, dw['count'], window_height, dw_width, frame_thickness, i==0, i==len(dws)-1)
File "/media/ranjian0/Backup/Workspace/projects/building_tool/core/multigroup/multigroup_types.py", line 183, in make_window_insets
face = subdivide_face_vertically(bm, face, [face_height - (window_height+2*frame_thickness), window_height+2*frame_thickness])[1]
IndexError: list index out of range
location: <unknown location>:-1
Adjusting(minimizing) the size of a multigroup element crashes blender with the above message.
Related to #2 .
Creating hip roof fails due to RuntimeError in straight skeleton utils.
In the above image for door element, an x offset of -0.67
was first made, then the element count increased producing the distorted geometry shown.
Similar to #43
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.