Topologic | software | Data Visualization library
kandi X-RAY | Topologic Summary
kandi X-RAY | Topologic Summary
Topologic is a software modelling library enabling hierarchical and topological representations of architectural spaces, buildings and artefacts through non-manifold topology (NMT). Topologic is designed as a core library and additional plugins to visual data flow programming (VDFP) applications and parametric modelling platforms commonly used in architectural design practice. These applications provide workspaces with visual programming nodes and connections for architects to interact with Topologic and perform architectural design and analysis tasks. Topologic is well-suited to create a lightweight representation of a building as an external envelope and the subdivision of the enclosed space into separate spaces and zones using zero-thickness internal surfaces. Because Topologic maintains topological consistency, a user can query these cellular spaces and surfaces regarding their topological data and thus conduct various analyses. For example, this lightweight and consistent representation was found to be well-matched with the input data requirements for energy analysis simulation software. Because Topologic allows entities with mixed dimensionalities and those that are optionally independent (e.g. a line, a surface, a volume) to co-exist, structural models can be represented in a coherent manner where lines can represent columns and beams, surfaces can represent walls and slabs, and volumes can represent solids. In addition, non-building entities, such as structural loads can be efficiently attached to the structure. This creates a lightweight model that is well-matched with the input data requirements for structural analysis simulation software.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of Topologic
Topologic Key Features
Topologic Examples and Code Snippets
sudo apt-get install bzip2 unzip cmake make g++ git libgl-dev libglu-dev libpng-dev libxmu-dev libxi-dev libtbb-dev tcl-dev tk-dev zlib1g-dev libharfbuzz-dev libfreetype-dev libfreeimage-dev libocct-*-dev
sudo dnf install cmake gcc-c++ opencascade-d
C:\OpenCASCADE-7.4.0-vc14-64
cd C:\Users\*homefolder*\topologicbim
git clone https://github.com/wassimj/Topologic.git
cd Topologic
WindowsBuild.bat
conda create --name Blender392 python=3.9.1
conda activate Blender392
conda install pybind11 -c con
def _sort_function_defs(library, function_deps):
"""Return a topologic sort of FunctionDefs in a library."""
edges = collections.defaultdict(list)
in_count = collections.defaultdict(lambda: 0)
for fname, deps in function_deps.items():
fo
Community Discussions
Trending Discussions on Data Visualization
QUESTION
I have the following network graph:
...ANSWER
Answered 2022-Mar-30 at 04:35You could just update relations
using complete
, and than filter out the rows where from
is equal to to
, which gives arrows from a node to itself.
QUESTION
I am working with the R programming language.
I generated the following random data set in R and made a plot of these points:
...ANSWER
Answered 2022-Mar-15 at 17:00You can order your data like so:
QUESTION
I made the following 25 network graphs (all of these graphs are copies for simplicity - in reality, they will all be different):
...ANSWER
Answered 2022-Mar-03 at 21:12While my solution isn't exactly what you describe under Option 2
, it is close. We use combineWidgets()
to create a grid with a single column and a row height where one graph covers most of the screen height. We squeeze in a link between each widget instance that scrolls the browser window down to show the following graph when clicked.
Let me know if this is working for you. It should be possible to automatically adjust the row size according to the browser window size. Currently, this depends on the browser window height being around 1000px.
I modified your code for the graph creation slightly and wrapped it in a function. This allows us to create 25 different-looking graphs easily. This way testing the resulting HTML file is more fun! What follows the function definition is the code to create a list
of HTML objects that we then feed into combineWidgets()
.
QUESTION
I am working with the R programming language. I made the following 3 Dimensional Plot using the "plotly" library:
...ANSWER
Answered 2022-Mar-04 at 17:52You were almost there.
The contours on z
should be defined according to min
-max
values of z
:
QUESTION
I'm trying to build a doughnut chart with rounded edges only on one side. My problem is that I have both sided rounded and not just on the one side. Also can't figure out how to do more foreground arcs not just one.
...ANSWER
Answered 2022-Feb-28 at 08:52The documentation states, that the corner radius is applied to both ends of the arc. Additionally, you want the arcs to overlap, which is also not the case.
You can add the one-sided rounded corners the following way:
- Use arcs
arc
with no corner radius for the data. - Add additional
path
objectscorner
just for the rounded corner. These need to be shifted to the end of eacharc
. - Since
corner
has rounded corners on both sides, add aclipPath
that clips half of this arc. TheclipPath
contains apath
for everycorner
. This is essential for arcs smaller than two times the length of the rounded corners. raise
all elements ofcorner
to the front and thensort
them descending by index, so that they overlap the right way.
QUESTION
Over here (Directly Adding Titles and Labels to Visnetwork), I learned how to directly add titles to graphs made using the "visIgraph()" function:
...ANSWER
Answered 2022-Feb-25 at 10:55Please find below one possible solution.
Reprex
- Your data
QUESTION
In d3
, we may change the order of elements in a selection, for example by using raise
.
Yet, when we rebind the data and use join
, this order is discarded.
This does not happen when we use "the old way" of binding data, using enter
and merge
.
See following fiddle where you can click a circle (for example the blue one) to bring it to front. When you click "redraw", the circles go back to their original z-ordering when using join
, but not when using enter
and merge
.
Can I achive that the circles keep their z-ordering and still use join
?
ANSWER
Answered 2022-Feb-18 at 23:13join
does an implicit order
after merging the enter- and update-selection, see https://github.com/d3/d3-selection/blob/91245ee124ec4dd491e498ecbdc9679d75332b49/src/selection/join.js#L14.
The selection order after the data binding in your example is still red, blue, green even if the document order is changed. So the circles are reordered to the original order using join
.
You can get around that by changing the data binding reflecting the change in the document order. I did that here, by moving the datum of the clicked circle to the end of the data array.
QUESTION
Is there a way to put text along a density line, or for that matter, any path, in ggplot2? By that, I mean either once as a label, in this style of xkcd: 1835, 1950 (middle panel), 1392, or 2234 (middle panel). Alternatively, is there a way to have the line be repeating text, such as this xkcd #930 ? My apologies for all the xkcd, I'm not sure what these styles are called, and it's the only place I can think of that I've seen this before to differentiate areas in this way.
Note: I'm not talking about the hand-drawn xkcd style, nor putting flat labels at the top
I know I can place a straight/flat piece of text, such as via annotate
or geom_text
, but I'm curious about bending such text so it appears to be along the curve of the data.
I'm also curious if there is a name for this style of text-along-line?
Example ggplot2 graph using annotate(...)
:
Above example graph modified with curved text in Inkscape:
Edit: Here's the data for the first two trial runs in March and April, as requested:
...ANSWER
Answered 2021-Nov-08 at 11:31Great question. I have often thought about this. I don't know of any packages that allow it natively, but it's not terribly difficult to do it yourself, since geom_text
accepts angle
as an aesthetic mapping.
Say we have the following plot:
QUESTION
I do realize this has already been addressed here (e.g., matplotlib loop make subplot for each category, Add a subplot within a figure using a for loop and python/matplotlib). Nevertheless, I hope this question was different.
I have customized plot function pretty-print-confusion-matrix
stackoverflow & github. Which generates below plot
I want to add the above-customized plot in for loop to one single plot as subplots.
...ANSWER
Answered 2022-Jan-04 at 09:09Okay so I went through the library's github repository and the issue is that the figure and axes objects are created internally which means that you can't create multiple plots on the same figure. I created a somewhat hacky solution by forking the library. This is the forked library I created to do what you want. And here is a an example piece of code:
QUESTION
I would like to generate a hexagonal lattice heat-map in which each cell represents a group. Likewise, each cell would be a hexagon with a unique color (fill
, set by a column color
in the data-frame) value, and a saturation (alpha
) value corresponding to continuous decimal values from a chemical concentration dateset.
I would like to use a standardized data format which would allow me to quickly construct figures based on standardized datasets containing 25 groups.
For example, a datasheet would look like this:
...ANSWER
Answered 2021-Dec-22 at 01:52If you're open to creating the plot in Python, the following approach would work:
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install Topologic
Install Opencascade 7.4.0
Create a topologicbim working folder: We will assume that your home folder is called homefolder and you will install everything in homefolder/topologicbim
Install Visual Studio Community 2019 with python 3.9 and git
Install Topologic
Go to the Windows Start Menu in the lower left corner
Search for the Visual Studio 2019 Folder and expand it
Choose x64 Native Tools Command Prompt
In the window that appears type:
Set the Environment Variable
In Search, search for and then select: System (Control Panel)
Click the Advanced system settings link.
Click Environment Variables. ...
In the Edit System Variable (or New System Variable) window, add the folder to the PATH environment variable.
Install Python bindings for Topolgic (Optional)
Prerequisite: WindowsBuild.bat have to be run without any errors
Install Anaconda3 personal edition from https://www.anaconda.com/products/individual
Launch Anaconda Navigator and click on the CMD.exe prompt.
Within the window that appears Create a python 3.9 virtual environment. We will call it Blender392 because you can use that with Blender later. The name can be anything you want. Just always remember what you named your environment.
Install pybind11 within conda
Install cmake
Switch to Python-Bindings folder and create a build folder inside
Issue the normal CMake build command from the build folder
To make a distributable library:
TKBO
TKBool
TKBRep
TKCAF
TKCDF
TKernel
TKFillet
TKG2d
TKG3d
TKGeomAlgo
TKGeomBase
TKIGES
TKLCAF
TKMath
TKMesh
TKOffset
TKPrim
TKShHealing
TKTopAlgo
TKXSBase
This projects builds TopologicCore from the C++ sources (available at https://github.com/wassimj/Topologic.git). The instructions below are for Ubuntu (Tested) and Fedors (Untested) Linux. We assume that your account has Adminstrator priviliges. if libocct-*-dev cannot be found while installing the dependencies, replace it with libocct-foundation-dev libocct-data-exchange-dev. At the end of this process, libTopologicCore.so should exist in /usr/local/lib.
Install Opencascade 7.4.0 and dependencies
Create a topologicbim working folder: We will assume that you will install everything in ~/topologicbim
Install Topologic
Install Python bindings for Topolgic (Optional)
Note: If you are planning to use Topologic with Blender and your system's python is different than the one Blender uses, then create a compatible python virtual environment. We will assume that Blender is using python 3.9.7 so the instructions below as you to create a conda virtual environment with python 3.9.7. We will call it py397. The name can be anything you want. Just always remember what you named your environment and match the python version to Blender's.
Switch to Python-Bindings folder and create a build folder inside
Issue the normal CMake build command from the build folder
Install pybind11 within conda
To make a distributable library that can be installed in different locations on a variety of Linux systems:
TKBO
TKBool
TKBRep
TKCAF
TKCDF
TKernel
TKFillet
TKG2d
TKG3d
TKGeomAlgo
TKGeomBase
TKIGES
TKLCAF
TKMath
TKMesh
TKOffset
TKPrim
TKShHealing
TKTopAlgo
TKXSBase
This projects builds TopologicCore from the C++ sources (available at https://github.com/wassimj/Topologic.git) These untested instructions are from Filipe Brandão Filipe_Jorge_Brandao@iscte-iul.pt.
Build OpenCascade from binaries Download Open CASCADE Technology source package, tgz archive (opencascade-7.4.0.tgz) from: https://old.opencascade.com/content/previous-releases Get the needed third party libraries (the minimum requirements are Tcl8.5, Tk8.5 and FreeType2.4.10) You can get a precompiled version of all of them. ActiveTCL 8.5 includes both Tcl and Tk (https://www.activestate.com/products/tcl/) FreeType: https://dev.opencascade.org/resources/download/3rd-party-components Build: I used Cmake to generate the make files you can find detailed instructions here Create a folder for OCCT_Source Create a folder for the build process Optionally create a destination folder Open CMake UI or Ccmake and configure the locations of the source and build directories, and third party binaries (Freetype, TCL and TK) Set the generator to UNIX Makefiles Change CMAKE_OSX_DEPLOYMENT_TARGET to the desired version of macOS (I missed this) (optional) Change the install directories under INSTALL_DIR Configure Generate In the terminal cd into the build directory make sudo make install
Build TopologicCore from binaries create a folder for TopologicBim source files open a terminal and cd into it git clone https://github.com/wassimj/Topologic mkdir BUILD cd BUILD Open Make UI or ccmake from the terminal Provide the locations of the source and build folder (remember to use UNIX Makefiles generator) Configure Set the location of OpenCascade binaries OCC_INCLUDE_DIR and gp_Pnt_hxx Set the CMAKE_OSX_DEPLOYMENT_TARGET to the desired version of macOS (I missed this) Optionally set the install folder of Topologic CMAKE_INSTALL_PREFIX Configure Generate make sudo make install
Build Python bindings Create an environment with Anaconda, set python to the desired version and open a terminal conda activate NAME_OF_ENV cd into Python-Bindings folder mkdir build cd build ccmake configure as previously use t-key to open the advance mode and change CMAKE_CXX_FLAGS to the directory of the opencascade binaries(suppose it is /usr/local/lib) -L/usr/local/lib generate make
Make the files redistributable: In this last step you need to ensure that your executable topologic.cpython-39-darwin.so and all the other libraries are correctly configured
go to the final install dir of topologic where all the OpenCascade and Topologic dylib files and topologic.cpython-39-darwin.so are
install_name_tool -add_rpath @loader_path topologic.cpython-39-darwin.so (we set the LC_RPATH of the executable)
check the which libraries are loaded by topologic.cpython-39-darwin.so using: otool -L topologic.cpython-39-darwin.so
install_name_tool -id @rpath topologic.cpython-39-darwin.so (change the id of the executable)
change all of the libraries OpenCascade and Topologic dylib paths to start with @rpath/... using: install_name_tool -change [old name] [new name] topologic.cpython-39-darwin.so
run renameLib.sh to change all the other libraries ids and paths
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page