I have a Brep that represent a building stock composed of about 1270 buildings. I obtained that Brep extruding the shp.
I would like to know if there is a way to split that Brep in groups acording to the year of construction of each building. I have tried with sort list and then split list, but i doesn’t worked.
One of the solutions would be to import several shapefile and make the extrusions separetely, but i would like to know if it’s possible to do it dividing just one extrusion.
it is possible to sort the objects. But you need some information to split the list into several other lists.
If you have a list with the construction dates of every objects, you could easily construct a index-tree and use them to sort your objects. It would be easier, if you provide some more information or definition.
If you have related (i.e. building year in this case) building info associated with the extrusion curves used that’s rather easy: that’s a entry level clustering task. Clustering means: make “groups” of objects according some criteria. Clustering could be hard (an item belongs to only one “group”) or soft (an item may belong to more than one “group”).
Plus if your building info data contain other information as well (height, environmental rating, usage/type etc etc) … then that’s a medium level clustering task (also easy to do) done via sequential queries: say … get the buildings done in 60’s and then further subclassify according this type of info … then further subclassify according that type of info … etc etc. This nested clustering is called HAC (H for hierarchy).
The easiest way to do that is to use a List of a custom type (say: a BuildingInfo class) and then perform any query imaginable.
BTW: If you want a simple demo (C# only, not components) on all the above, notify.
OK, I’ll try to remove complex stuff/freaky classes etc and I’ll post the simplest demo (i.e. Flat Hard Clustering) possible soon (Do you speak C#?) using, say, some basic arbitary criteria (randomly assigned to a curve List) as follows: Year, FootprintArea, Height, Usage. This means either cluster by year OR by year AND footprint OR by year AND footprint AND height … blah, blah. Cluster means: get the things into a Brep DataTree.
BTW: I do that sort of stuff every day: I run a practice (AEC market sector) and building design these days … is … er … making queries and asking stupid questions 10000 times per day (is this design ugly enough to qualify as a great thing? is this material OK? is that client rich enough to pay the zillions? are we running out of espresso?)
I have no idea (I do stuff only via coding). Found some time to work on that one (in fact to remove a lot of things in one of my internal C#'s) … but it could be handy if you can provide a wish list for the clustering criteria: otherwise things should been modified after the demo. Shown a test result (on a random collection of curves and a random assignment of year, hight and usage) using a simple year based clustering. Text Dots would been added soon for identifying the buildings that belong in a given cluster.
BTW: While Search is easy to get the gist of it (From all Ducatis, Find the red ones, Then the Panigale ones, Then the ones not crashed, Then the ones that start when it rains => obviously a null collection [due to the latter filter]) … the hierarcy in HAC Clustering requires a full knowledge of DataTrees with many dimensions (where each added classification rule yields another dimension).
So the 1M question is: are you 100% OK with trees? (a kind of Dictionary of Lists) If not I would exclude nested Clustering from the demo.
Tip: Change the thread title ASAP: this case is NOT about splitting anything … is about clustering items according to some criteria.
First of all thank you very much for your help and for the time you are dedicating to solve this doubt!
Then for your last question yes i’m ok with trees, but not very much with coding… but I will try to do my best!
The thing is that i have my data (my data tree is in this moment (1,0,0)) and what i want is to obtain 5 groups from this one correponding to diferent intervals of years and with that obtain 5 breps instead of 1.
Could it be possible to you send me the file with the example that you show me before to see the code inside the clusters?
OK, get the demo … BUT (trust the Lord) HAC Clustering is removed for the moment: as it is the C# does flat clustering with regard ONLY build year (but the Search is using all the options). Reason for that simplification is that I need some specific rules from you with regard nested clustering (for instance clustering by year, then by area then by something else IS NOT the same as clustering by area then by year … etc etc). As I said use resolutionYears to control the N of clusters. If that is 1 (has no meaning: why cluster all things in one cluster ? who does that ?) then the value of 2 is taken instead.
So there’s 2 modes available. Cluster (see Info Panel):