Coder Social home page Coder Social logo

ranjian0 / building_tools Goto Github PK

View Code? Open in Web Editor NEW
1.3K 1.3K 130.0 6.2 MB

Building generation addon for blender

Home Page: https://ranjian0.github.io/building_tools/

License: MIT License

Python 99.92% Makefile 0.08%
blender blender-addon blender-python blender3d building-generator python3

building_tools's People

Contributors

luckykadam avatar marcuselg avatar ranjian0 avatar xananax avatar zmonk91 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

building_tools's Issues

Error installing addon

When I install building_tool-0.9.6 I get
image

and when I install building_tool-0.9.7 (master) I get

image
how can i fix it ?

installation problem 2.8

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...

Improved Fill Types

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.

Window

Imgur
Imgur

Door

Imgur

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:

  • Diamond
  • Cross Panel
  • Full Louver
  • Upper Louver
  • Lower Louver
  • Split Louver
  • Half Glass
  • Half Glass 1 panel
  • Half Glass 2 panel
  • Half Glass 3 panel
  • Half Glass 4 panel
  • Half Glass 2 panel horizontal
  • Half Glass 3 panel horizontal

NoneType error when adding elements to n-gon faces

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.

Railing Improvements

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

  1. Its Ugly. All railings are blocky. My plan is to have some set of profiles that a user can select.

  2. 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.

  3. 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.

  4. The expand walls property. This is a hack solution to a problem closely related to No. 3.
    Again, I don't like it.

feature request: vortex groups

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.

Create Wiki

Add detailed wiki to help users with:

  • Installation.
  • Creating Floorplan.
  • Creating Floors.
  • Creating Windows.
  • Creating Doors.
  • Creating Multigroup
  • Creating Roofs.
  • Creating Stairs.
  • Creating Balconies.
  • Add Fill tool
  • Development.

Not Implemented Yet.

  • Creating roads
  • Using the curved array tool

Balcony Railing Issues

Imgur

  • 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.

Rails and Wall Fill types

Imgur

  • 4. The size of the rails in railing fill and wall width in the wall fill should be clamped to less than or equal to the corner post width.

  • 5. Material face maps have incorrect names and invalid/no selection for post, wall and rail fill.

Crashes Foound!

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:

  • when Slab Thickness is set to 0 CRASHES Blender in its totality.
  • Slab with an offset so it has to be zero out.
  • Adding Floors in different situations crashes Blender in its totality. (also turns the top plane into an n-gon for no reason)
  • Stairs not generated and crashed Blender if intended to be tweaked.
  • Floor plans when Random can not only crash blend but its geometries are n-gons, so no use.

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!

.97 Stable version error

Getting this error in both the stable and dev versions...Master just crashes blender when I get to the roof portion.

image

Port addon to blender 2.8

Plan to port for blender 2.8:
:: Should probably port before working on more features.

  1. Adding objects to scene via collections.
  2. New syntax for defining properties.
  3. Matrix multiplication == @ in new versions of python.
  4. Naming of operators to conform to blender standard.

Installation issue

When I try to install the addon for blender 2.8 I get an error.
img_001

And after that when I restart blender, the addon list is empty.
img_002

I'm on Windows 10 64bit.
I've tried the addon (master branch) also on 2.79, but the same thing happens.

Crash: Slab thickness 0

Steps to reproduce:

  1. Create Floorplan
  2. Go into edit mode
  3. Select a face
  4. Add Floors
  5. In operation properties, set Slab Thickness to 0

Note: This happens only when some faces are selected.

Hip roof outset property causes IndexError if set to a relatively high value

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.

Feature: Multiple door/window module

Proposal for a feature where we can combine doors and windows with a shared arch. This can be very flexible: triple door (just like in offices main entrance), door with a window, etc.

examples:

a4c33dfb967cb044c8377b7983dd089f

UI Improvements

  • Enum Properties should indicate the what they are called and the current value.

The window property for FillType looks as follows:

Imgur

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.

Imgur

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.

Creating arch on already tall face causes geometry distortion

Imgur

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.

Unable to apply textures to the model.

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?

Any plans for roofs?

This addon looks realy great :)
Do you have any plans for expanding roofs? And custom roof types?

New Roof Types

Task List:

  • Flat Roof.
  • Hip Roof.
  • Gable Roof.
  • Mansard Roof.
  • Gambrel Roof.
  • Dutch Hip.
  • Dutch Gable.
  • Rectilinear Roofing.

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.

Imgur
Imgur

Some issues that may need to be addressed first:

  • [SOLVED] Some roof types only work if the building floorplan has a particular shape, gable is a good example of this.
  • Roofs may also contain additional elements, the dormer roof in the first image is an example of this. Should the extra elements belong in the roof module or in another?

Multigroup Crashes

  • Crash 1. Occurs when I add an arch and adjust the arch height too low.
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
  • Crash 2. Occurs when I set frame thickness to 0.
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

UI Papercut #1

  • Toggle properties should not be contained in the UILayout that they show/hide

problem with making several window

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.

patio floorplan layout

Is it possible to have a square layout but with empty squared center?
A layout with a patio.

Workflow : Fill Types

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:
Imgur

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.

Another situation:
Imgur

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.

Imgur

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.

n-gon support

support operations on n-gon with rectangular shape.

Backwards Compatibility for 2.79

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.

Installation Issues

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

Stair Railing Bug

Imgur

Adding more than 6 steps to stairs causes the above behaviour.
Top railing disappears.

Inconsistent Size & Offset behaviour for Balcony and Stairs

Imgur
Imgur

Size and Offset behaviours for both balcony and stairs diverge from the rest of the addon which may be problematic for users.

  • In some cases offsetting to the wrong position causes all geometry to disappear.

In the image below, geometry has been generated in the wrong direction, stairs are now inside the building.

Imgur

  • The balcony created here is larger than the face on which it was made.

Imgur

Given the complexity of both of these elements, a better solution is required to keep the tools consistent and intuitive.

Unexpected property values

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.

  • Floorplan
  • Floors
  • Windows
  • Doors
  • Balcony
  • Roof
  • Stairs

Stair bottom types

Bottom of stairs can be of mainly four types:

  1. filled (current behaviour)

2. slope

3. blocked

4. separated

License ?

Hello, under what license is this project released under ? I would like to learn Blender scripting from it. Thank-you.

Multigroup Crash when adjusting size

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.